How sanjay-sahoo-0804/project works
Wanderlust is an Express/Mongoose vacation-rental listing app. Visitors browse listings; signed-in users can create, edit, and delete their own listings, upload images, and add or remove reviews. The sampled code shows the app mounting route modules, routes applying authentication/ownership and validation middleware before controllers, and controllers reading or writing MongoDB models and rendering EJS pages. The tree indicates signup/login support; user-route details were not sampled, so those links are limited to the app’s router mount. Image storage is configured separately.
Main entry points: app.js Express app · routes/listing.js Listing routes · reviews.js Review controller · controllers/listing.js Listing controller
Components 21
Web entry and views
- Express app
app.js - Shared page layout
views/layouts/boilerplate.ejs
Listing management
- Listing routes
routes/listing.js - Listing controller
controllers/listing.js - Listing pages
views/listings
Reviews
- Review routes
routes/review.js - Review controller
controllers/reviews.js - Listing detail
views/listings/show.ejs
Accounts and sessions
- User routes
routes/user.js - User controller
controllers/users.js - Account pages
views/users - Access checks
middleware.js - Mongo session store
app.js
Persistence and uploads
- Listing model
models/listing.js - Review model
models/review.js - User model
models/user.js - Image storage config
cloudConfig.js
Other components
- Visitor
- MongoDB
- Cloudinary
- Browser
Connections 30
- Visitor → Express app: sends requests
- Express app → Listing routes: mounts routes
- Express app → Review routes: mounts routes
- Express app → User routes: mounts routes
- Listing routes → Access checks: checks access
- Listing routes → Listing controller: dispatches
- Listing controller → Listing model: reads/writes
- Listing controller → Listing pages: renders
- Review routes → Access checks: checks access
- Review routes → Review controller: dispatches
- Review controller → Listing model: reads/writes
- Review controller → Review model: reads/writes
- Review controller → Listing detail: redirects to
- User routes → User controller: dispatches
- User controller → User model: uses account model
- User controller → Account pages: renders
- Express app → User model: configures Passport
- Express app → Mongo session store: configures sessions
- Express app → MongoDB: connects
- Mongo session store → MongoDB: stores sessions
- Listing model → MongoDB: persists listings
- Review model → MongoDB: persists reviews
- User model → MongoDB: persists users
- Listing routes → Image storage config: uses upload storage
- Image storage config → Cloudinary: stores images
- Express app → Shared page layout: sets page engine
- Listing pages → Shared page layout: uses layout
- Account pages → Shared page layout: uses layout
- Browser → Express app: requests pages
- Express app → Browser: serves responses