How nourchene-hamrita/bookingapp works
This is a hotel-booking application with a public customer client, an administrative dashboard, and an Express/Mongoose API. Customers can browse listings and hotel details and access login/registration; administrators manage users, hotels, and rooms behind a login gate. The API exposes authentication, user, hotel, and room route groups, while sampled controllers show credential handling and model access. The route and page implementations were not sampled, so uncertain page-to-fetch and route-to-controller wiring is omitted.
Main entry points: src/App.js Admin router · index.js API server · src/App.js Client router · User.js User model
Components 30
Booking client
- Client router
client/src/App.js - Home browse
client/src/pages/home/Home.jsx - Hotel search
client/src/pages/list/List.jsx - Hotel details
client/src/pages/hotel/Hotel.jsx - Login/register
client/src/pages/login/login.jsx - Search state
client/src/context/SearchContext.js - Client fetch hook
client/src/hooks/useFetch.js
Admin dashboard
- Admin router
admin/src/App.js - Admin login
admin/src/pages/login/Login.jsx - Admin overview
admin/src/pages/home/Home.jsx - Manage records
admin/src/pages/list/List.jsx - Create hotel
admin/src/pages/newHotel/NewHotel.jsx - Create room
admin/src/pages/newRoom/NewRoom.jsx - Admin fetch hook
admin/src/hooks/useFetch.js - Admin auth state
admin/src/context/AuthContext.js
Backend API
- API server
api/index.js - Auth routes
api/routes/auth.js - User routes
api/routes/users.js - Hotel routes
api/routes/hotels.js - Room routes
api/routes/rooms.js - Auth controller
api/controllers/auth.js - User controller
api/controllers/user.js - Hotel controller
api/controllers/hotel.js - Room controller
api/controllers/room.js
MongoDB models
- User model
api/models/User.js - Hotel model
api/models/Hotel.js - Room model
api/models/Room.js
Other components
- Customer
- Administrator
- MongoDB
Connections 24
- Customer → Client router: uses
- Client router → Home browse: routes
- Client router → Hotel search: routes
- Client router → Hotel details: routes
- Client router → Login/register: routes
- Administrator → Admin router: uses
- Admin router → Admin login: routes
- Admin router → Admin overview: routes
- Admin router → Manage records: routes
- Admin router → Create hotel: routes
- Admin router → Create room: routes
- Admin router → Admin auth state: checks access
- API server → Auth routes: mounts
- API server → User routes: mounts
- API server → Hotel routes: mounts
- API server → Room routes: mounts
- API server → MongoDB: connects
- Auth controller → User model: reads/writes
- User controller → User model: accesses
- Hotel controller → Hotel model: accesses
- Room controller → Room model: accesses
- User model → MongoDB: persists
- Hotel model → MongoDB: persists
- Room model → MongoDB: persists