How farhanullah5332/gohavenly-full-stack-pro works
GoHavenly is a lodging-listing web app: visitors browse and filter stays, while signed-in users can manage listings and post reviews. The listing and review request paths are visible in the sampled source; authentication and user route internals are represented only as subsystems because their source was not sampled. MongoDB and Cloudinary are configured integrations.
Main entry points: app.js Express app · listing.js Listing routes · listings.js Listing operations · review.js Review routes
Components 21
Web application
- Express app
app.js - Access checks
middleware.js - Request validation
Schema.js - Shared page layout
views/layouts/boilarplate.ejs
Listings
- Listing routes
routes/listing.js - Listing operations
Controllers/listings.js - Listing model
Models/listings.js - Listing pages
views/listings - Image storage config
cloudConfig.js
Reviews
- Review routes
routes/review.js - Review operations
Controllers/review.js - Review model
Models/review.js - Review display
views/listings/show.ejs
Accounts and sessions
- User routes
routes/user.js - User operations
Controllers/user.js - User model
Models/user.js - Session store
app.js
Other components
- Visitor
- Signed-in user
- MongoDB
- Cloudinary
Connections 28
- Visitor → Express app: requests pages
- Signed-in user → Express app: submits actions
- Express app → Listing routes: mounts /listings
- Express app → Review routes: mounts reviews
- Express app → User routes: mounts account routes
- Listing routes → Access checks: checks access
- Listing routes → Request validation: validates input
- Listing routes → Image storage config: configures uploads
- Listing routes → Listing operations: dispatches requests
- Listing operations → Listing model: reads and writes
- Listing model → MongoDB: persists listings
- Listing operations → Listing pages: renders pages
- Review routes → Access checks: checks access
- Review routes → Request validation: validates input
- Review routes → Review operations: dispatches requests
- Review operations → Listing model: updates listing reviews
- Review operations → Review model: creates and deletes
- Review model → MongoDB: persists reviews
- Listing operations → Review display: renders listing detail
- Review display → Review model: displays populated reviews
- User routes → User operations: dispatches account requests
- User operations → User model: uses account records
- User model → MongoDB: persists accounts
- Express app → Session store: stores sessions
- Session store → MongoDB: uses MongoDB
- Image storage config → Cloudinary: stores listing images
- Listing pages → Shared page layout: uses layout
- Review display → Shared page layout: uses layout