How ri-ya-dutta/safar-travel works
Safar is a travel-destination site with public destination browsing, booking and contact submission, plus an administrator workflow for login and managing submitted data. The browser app routes visitors to pages, whose API service sends requests to the Express backend; backend routes dispatch to controllers that read or mutate MongoDB models. Admin access is guarded in the app and, on sampled routes, by token middleware. Major page and domain modules are represented. Some backend route/controller links and page-to-API usage are supported by the SOURCE INDEX rather than inspected excerpts; unsampled admin behavior is kept limited to documented wiring.
Main entry points: App.jsx Application routes · api.js API client · server.js HTTP server · destinationRoutes.js Destination routes
Components 28
Visitor experience
- Application routes
safar/src/App.jsx - Home
safar/src/pages/Home.jsx - About
safar/src/pages/About.jsx - Destination catalog
safar/src/pages/Destinations/Destinations.jsx - Destination details
safar/src/pages/Destinations/DestinationDetails.jsx - Booking form
safar/src/pages/Bookings.jsx - Contact form
safar/src/pages/Contact.jsx - Admin login
safar/src/pages/Admin/AdminLogin.jsx - Admin dashboard
safar/src/pages/Admin/Dashboard.jsx - Navigation
safar/src/components/Navbar.jsx - Footer
safar/src/components/Footer.jsx
Client services
- Auth context
safar/src/context/AuthContext.jsx - API client
safar/src/services/api.js
Backend routing
- HTTP server
server/server.js - Destination routes
server/routes/destinationRoutes.js - Booking routes
server/routes/bookingRoutes.js - Contact routes
server/routes/contactRoutes.js - Admin routes
server/routes/adminRoutes.js
Domain operations
- Destination operations
server/controllers/destinationController.js - Booking operations
server/controllers/bookingController.js - Contact operations
server/controllers/contactController.js - Admin operations
server/controllers/adminController.js
Persistence and security
- Destination records
server/models/destination.js - Booking records
server/models/booking.js - Contact records
server/models/contact.js - Admin token check
server/middleware/verifyToken.js - MongoDB
Other components
- Visitor / admin
Connections 38
- Visitor / admin → Application routes: uses
safar/src/App.jsx - Application routes → Home: routes to
safar/src/App.jsx - Application routes → About: routes to
safar/src/App.jsx - Application routes → Destination catalog: routes to
safar/src/App.jsx - Application routes → Destination details: routes to
safar/src/App.jsx - Application routes → Booking form: routes to
safar/src/App.jsx - Application routes → Contact form: routes to
safar/src/App.jsx - Application routes → Admin login: routes to
safar/src/App.jsx - Application routes → Admin dashboard: guards route
safar/src/App.jsx - Application routes → Navigation: renders
safar/src/App.jsx - Application routes → Footer: renders
safar/src/App.jsx - Admin login → Auth context: uses login
safar/src/pages/Admin/AdminLogin.jsx - Application routes → Auth context: checks token
safar/src/App.jsx - Auth context → API client: calls login
safar/src/context/AuthContext.jsx - Destination catalog → API client: fetches catalog
safar/src/pages/Destinations/Destinations.jsx - Destination details → API client: fetches details
safar/src/pages/Destinations/DestinationDetails.jsx - Booking form → API client: submits booking
safar/src/pages/Bookings.jsx - Contact form → API client: submits message
safar/src/pages/Contact.jsx - Admin dashboard → API client: loads admin data
safar/src/pages/Admin/Dashboard.jsx - API client → Destination routes: HTTP requests
safar/src/services/api.js - API client → Booking routes: HTTP requests
safar/src/services/api.js - API client → Contact routes: HTTP requests
safar/src/services/api.js - API client → Admin routes: login request
- HTTP server → Destination routes: mounts routes
server/server.js - HTTP server → Booking routes: mounts routes
server/server.js - HTTP server → Contact routes: mounts routes
server/server.js - HTTP server → Admin routes: mounts routes
server/server.js - Destination routes → Destination operations: dispatches
server/routes/destinationRoutes.js - Booking routes → Booking operations: dispatches
server/routes/bookingRoutes.js - Contact routes → Contact operations: dispatches
server/routes/contactRoutes.js - Admin routes → Admin operations: dispatches
server/routes/adminRoutes.js - Destination routes → Admin token check: guards writes
server/routes/destinationRoutes.js - Booking routes → Admin token check: guards admin
server/routes/bookingRoutes.js - Contact routes → Admin token check: guards admin
server/routes/contactRoutes.js - Destination operations → Destination records: reads and writes
server/controllers/destinationController.js - Booking operations → Booking records: reads and writes
server/controllers/bookingController.js - Contact operations → Contact records: reads and writes
server/controllers/contactController.js - HTTP server → MongoDB: connects
server/server.js