How mehedi-hasan-raju/mhr-travel-website works
MHR is a vacation-rental marketplace: visitors browse and map listings, then proceed toward booking/payment; hosts manage listings, and users can register, maintain profiles, and review stays. The Express app mounts separate listing, review, booking, host, and user routes, with MongoDB-backed models and sessions. Mapping and Cloudinary uploads are visible capabilities. Booking and host implementations, and most listing-controller behavior, were not sampled, so their internal calls are left unspecified.
Main entry points: app.js Express application · listing.js Listing routes · users.js Account operations · listings.js Listing operations
Components 22
Web application
- Express application
app.js - Listing routes
routes/listing.js - Listing pages
views/listings - Listing map
public/js/map.js - Booking pages
views/bookings - Host dashboard
views/host/dashboard.ejs - Account pages
views/users
Stays and bookings
- Listing operations
controllers/listings.js - Listing records
models/listing.js - Booking routes
routes/booking.js - Booking records
models/booking.js - Host routes
routes/host.js
Accounts and reviews
- User routes
routes/user.js - Account operations
controllers/users.js - User records
models/user.js - Review routes
routes/review.js - Review operations
controllers/reviews.js - Review records
models/review.js
External services
- MongoDB
- Cloudinary media
- Mapbox maps
Other components
- Traveler or host
Connections 23
- Traveler or host → Express application: sends requests
- Express application → Listing routes: mounts
- Express application → Booking routes: mounts
- Express application → Host routes: mounts
- Express application → User routes: mounts
- Express application → Review routes: mounts
- Listing routes → Listing operations: dispatches
- Listing routes → Listing records: loads payment listing
- Listing routes → Listing pages: renders payment page
- Listing operations → Listing records: operates on
- Listing operations → Cloudinary media: uploads media
- Listing map → Mapbox maps: renders map
- Booking routes → Booking records: booking operations
- Booking routes → Booking pages: serves booking pages
- Host routes → Host dashboard: serves dashboard
- User routes → Account operations: dispatches
- Account operations → User records: reads and updates
- Account operations → Booking records: loads trip bookings
- Account operations → Account pages: renders account pages
- Review routes → Review operations: dispatches
- Review operations → Listing records: updates listing reviews
- Review operations → Review records: creates and deletes
- Express application → MongoDB: connects and stores sessions