How aaryan-sharmaa/wanderlust works
Wanderlust is an Express/MongoDB travel-listing web app. Visitors browse listing pages; signed-in users can create and manage listings, upload listing images, and post or delete reviews. Listing creation geocodes its location for the detail-page map. The graph follows the visible app/router/controller/model flow and documented capabilities; user-route internals and some integrations are represented at their supported directory or configuration path because their implementations were not sampled.
Main entry points: app.js Express app · listing.js Listing routes · listings.js Listing controller · review.js Review routes
Components 23
Web entry and views
- Express app
app.js - Browser behavior
public/js/script.js - Error page
views/error.ejs
Listing discovery
- Listing routes
routes/listing.js - Listing controller
controllers/listings.js - Listing pages
views/listings
Accounts and reviews
- Review routes
routes/review.js - Review controller
controllers/reviews.js - Account routes
routes/user.js - Account controller
controllers/users.js - Account pages
views/users - Auth and validation
middleware.js
External services
- Image upload config
cloudConfig.js - Cloudinary
- Mapbox geocoding
- Map display
public/js/map.js - Mapbox maps
Data models
- Listing model
models/listing.js - Review model
models/reviews.js - User model
models/user.js - MongoDB
- Session store
app.js
Other components
- Visitor
Connections 28
- Visitor → Express app: sends requests
- Express app → Listing routes: dispatches listings
- Express app → Review routes: dispatches reviews
- Express app → Account routes: dispatches accounts
- Express app → Session store: stores sessions
- Session store → MongoDB: persists sessions
- Express app → User model: configures auth
- Listing routes → Auth and validation: checks access
- Listing routes → Listing controller: dispatches actions
- Listing controller → Listing model: reads and writes
- Listing controller → Listing pages: renders pages
- Listing controller → Mapbox geocoding: geocodes location
- Listing routes → Image upload config: uploads image
- Image upload config → Cloudinary: stores image
- Review routes → Auth and validation: checks access
- Review routes → Review controller: dispatches actions
- Review controller → Listing model: updates listing
- Review controller → Review model: creates or deletes
- Account routes → Auth and validation: checks access
- Account routes → Account controller: dispatches actions
- Account controller → User model: authenticates users
- Account controller → Account pages: renders pages
- Listing model → MongoDB: stores listings
- Review model → MongoDB: stores reviews
- User model → MongoDB: stores users
- Express app → Error page: renders errors
- Map display → Mapbox maps: renders map
- Browser behavior → Visitor: validates forms