Skip to content
Danny Alfandi
All work

case study · Web App

Natours (travel)

Travel/tour booking app with map-based tour views, secure auth, Stripe checkout, and user reviews.

Timeline
December 2024
Type
Personal Project (UDEMY)
Stack
Node.js · Express · MongoDB · Stripe
Screenshot of Natours (travel)

Overview

Implemented an MVC structure with clean controllers and reusable middleware, JWT authentication with permission based on role (user/admin), and a Stripe checkout process which makes paid bookings and adds user history. Tours feature rich detail pages with map to display locations, as well as a reviews system to enable users to rate and comment after purchase. The app uses central validation and error handling so that both API and pages fail consistently, with security middleware (rate-limit, sanitizing) and performance optimizations (lean queries, caching where appropriate) to guarantee responsiveness and production-ready experience.

What I built

  • Core & Architecture
  • Auth & Security
  • Tours & Catalog
  • Booking & Payments
  • Users & Reviews
  • Quality & Ops

Screens

  • Screen 1
  • Screen 2
  • Screen 3