How darshikapande/hotel-booking-system works
GrandStay is a hotel booking and operations application: guests discover rooms, authenticate, reserve a stay, and manage reservations and profiles; administrators manage inventory, reservations, customers, and performance metrics. The React client calls an Express API backed by MongoDB. The graph preserves the documented customer and admin capabilities, while some page-to-service wiring is documented rather than directly sampled; those links are shown at subsystem level where exact handlers were not available.
Main entry points: App.jsx React App · server.js Express Server · api.js HTTP Client · adminService.js Admin Service
Components 33
Guest Experience
- React App
client/src/App.jsx - Session Context
client/src/context/AuthContext.jsx - Room Discovery
client/src/pages/Rooms.jsx - Room Details
client/src/pages/RoomDetails.jsx - Reservation Form
client/src/components/BookingForm.jsx - Booking Receipt
client/src/pages/BookingConfirmation.jsx - My Reservations
client/src/pages/MyBookings.jsx - Guest Profile
client/src/pages/Profile.jsx - Sign In / Up
client/src/pages/Login.jsx - HTTP Client
client/src/services/api.js - Authentication Service
client/src/services/authService.js - Room Service
client/src/services/roomService.js - Booking Service
client/src/services/bookingService.js - Admin Service
client/src/services/adminService.js
Hotel Operations
- Admin Dashboard
client/src/pages/admin/AdminDashboard.jsx - Manage Rooms
client/src/pages/admin/ManageRooms.jsx - Manage Bookings
client/src/pages/admin/ManageBookings.jsx - Manage Customers
client/src/pages/admin/ManageCustomers.jsx
REST API
- Express Server
server/server.js - Auth Routes
server/routes/authRoutes.js - Room Routes
server/routes/roomRoutes.js - Booking Routes
server/routes/bookingRoutes.js - Admin Routes
server/routes/adminRoutes.js
Booking Domain
- Identity Logic
server/controllers/authController.js - Room Logic
server/controllers/roomController.js - Reservation Logic
server/controllers/bookingController.js - Operations Logic
server/controllers/adminController.js - User Records
server/models/User.js - Room Records
server/models/Room.js - Booking Records
server/models/Booking.js
Other components
- Guest
- Administrator
- MongoDB
Connections 47
- Guest → React App: uses
- Administrator → React App: uses
- React App → Room Discovery: routes to
- React App → Sign In / Up: routes to
- React App → Session Context: provides session
- React App → Admin Dashboard: routes to
- React App → Manage Rooms: routes to
- React App → Manage Bookings: routes to
- React App → Manage Customers: routes to
- Room Discovery → Room Service: requests rooms
- Room Details → Room Service: requests details
- Room Details → Reservation Form: starts reservation
- Reservation Form → Booking Service: submits stay
- Booking Service → Booking Receipt: returns receipt
- My Reservations → Booking Service: loads / cancels
- Guest Profile → Authentication Service: updates account
- Sign In / Up → Authentication Service: authenticates
- Admin Dashboard → Admin Service: loads metrics
- Manage Rooms → Admin Service: loads inventory
- Manage Rooms → Room Service: changes rooms
- Manage Bookings → Admin Service: manages stays
- Manage Customers → Admin Service: manages guests
- Authentication Service → HTTP Client: sends requests
- Room Service → HTTP Client: sends requests
- Booking Service → HTTP Client: sends requests
- Admin Service → HTTP Client: sends requests
- HTTP Client → Express Server: HTTP requests
- Express Server → Auth Routes: dispatches
- Express Server → Room Routes: dispatches
- Express Server → Booking Routes: dispatches
- Express Server → Admin Routes: dispatches
- Auth Routes → Identity Logic: dispatches
- Room Routes → Room Logic: dispatches
- Booking Routes → Reservation Logic: dispatches
- Admin Routes → Operations Logic: dispatches
- Room Logic → Booking Records: checks overlaps
- Room Logic → Room Records: reads / writes
- Reservation Logic → Room Records: checks room
- Reservation Logic → Booking Records: checks / saves
- Operations Logic → User Records: reads / deletes
- Operations Logic → Room Records: reads inventory
- Operations Logic → Booking Records: reads / updates
- Identity Logic → User Records: manages accounts
- Express Server → MongoDB: connects
- User Records → MongoDB: persists users
- Room Records → MongoDB: persists rooms
- Booking Records → MongoDB: persists bookings