How yrpyash22/wonderlist-project works
Wanderlust is an accommodation-listing web app: visitors browse or search category-filtered stays, view listing details and map coordinates, while signed-in users create, edit, and delete listings and post reviews. The Express entry point mounts listing, review, and user routes, and controllers render EJS pages using Mongo-backed models. Listing creation also geocodes locations and accepts Cloudinary-backed image uploads. User routes and their implementation were not sampled, so account flows are represented from the route wiring and README/configuration evidence only.
Main entry points: app.js Express app · listings.js Listing controller · reviews.js Review controller · user.js User model
Components 18
Web application
- Express app
app.js - Listing routes
routes/listing.js - Review routes
routes/review.js - User routes
routes/user.js
Stay listings
- Listing controller
controllers/listings.js - Listing model
models/listing.js - Listing pages
views/listings - Listing map
public/js/map.js
Accounts and reviews
- Review controller
controllers/reviews.js - Review model
models/review.js - User controller
controllers/users.js - User model
models/user.js - Account pages
views/users
External services
- Geocoding helper
utils/geocode.js - MongoDB
- Cloudinary storage
cloudConfig.js - Nominatim
Other components
- Traveler
Connections 23
- Traveler → Express app: sends requests
- Express app → Listing routes: mounts routes
- Express app → Review routes: mounts routes
- Express app → User routes: mounts routes
- Express app → MongoDB: connects
- Express app → User model: authenticates with
- Listing routes → Listing controller: dispatches
- Listing controller → Listing model: queries and saves
- Listing controller → Listing pages: renders
- Listing controller → Geocoding helper: requests coordinates
- Geocoding helper → Nominatim: looks up places
- Listing routes → Cloudinary storage: uploads images
- Listing controller → Listing map: renders coordinates
- Review routes → Review controller: dispatches
- Review controller → Listing model: updates listing reviews
- Review controller → Review model: creates and deletes
- Review controller → User model: uses author identity
- User routes → User controller: dispatches
- User controller → User model: manages accounts
- User controller → Account pages: renders
- Listing model → MongoDB: persists listings
- Review model → MongoDB: persists reviews
- User model → MongoDB: persists accounts