How gouravdev246/room-shifting-lpu works
Room Shifting LPU is a hostel-room listing and discovery application: users browse and filter rooms, inspect details and owner contact, and authenticated users can register, log in, upload listing photos, create listings, or delete their own listings. The client routes users through the home, room-add, registration, and login views; the server dispatches API routes to domain handlers and persistence or upload services. Redis optionally caches room searches. Edges reflect the supplied excerpts and source-index references; no README was supplied, and client-to-server API wiring was not evidenced in the excerpts.
Main entry points: App.tsx Client router · app.js HTTP application · room.routes.js Room routes · authMiddleware.js Token verification
Components 26
Web client
- Client router
client/src/App.tsx - Room discovery
client/src/components/HomePage.tsx - Hostel listings
client/src/components/HostelDetailsCard.tsx - Room details
client/src/components/RoomDetail.tsx - Create listing
client/src/components/RoomAdd.tsx - Login
client/src/components/Login.tsx - Registration
client/src/components/Register.tsx - Navigation
client/src/components/Navbar.tsx - Auth state
client/src/context/AuthContext.tsx - API client
client/src/lib/api.ts
API routing
- HTTP application
server/src/app.js - Auth routes
server/src/modules/auth/auth.routes.js - Room routes
server/src/modules/room/room.routes.js - Upload route
server/src/modules/upload/upload.routes.js
Listing and identity
- Auth operations
server/src/modules/auth/auth.controller.js - User records
server/src/modules/auth/auth.model.js - Room operations
server/src/modules/room/room.controller.js - Room records
server/src/modules/room/room.model.js - Token verification
server/src/common/middlewares/authMiddleware.js - Optional identity
server/src/common/middlewares/optionalAuth.js - Photo upload
server/src/modules/upload/upload.service.js
Persistence and media
- PostgreSQL
server/src/common/config/db.js - Redis cache
server/src/common/config/redis.js - Cloudinary config
server/src/common/config/cloudinary.js - Server startup
server/src/server.js
Other components
- Visitor or member
Connections 30
- Visitor or member → Client router: uses
- Client router → Room discovery: routes to
client/src/App.tsx - Client router → Create listing: routes to
client/src/App.tsx - Client router → Registration: routes to
client/src/App.tsx - Client router → Login: routes to
client/src/App.tsx - Client router → Navigation: renders
client/src/App.tsx - Client router → Auth state: provides
client/src/App.tsx - Room discovery → Hostel listings: renders
client/src/components/HomePage.tsx - Hostel listings → Room details: opens
client/src/components/HostelDetailsCard.tsx - Visitor or member → HTTP application: sends requests
- HTTP application → Auth routes: mounts
server/src/app.js - HTTP application → Room routes: mounts
server/src/app.js - HTTP application → Upload route: mounts
server/src/app.js - Auth routes → Auth operations: dispatches
server/src/modules/auth/auth.routes.js - Room routes → Room operations: dispatches
server/src/modules/room/room.routes.js - Upload route → Photo upload: calls
server/src/modules/upload/upload.routes.js - Auth routes → Token verification: guards
server/src/modules/auth/auth.routes.js - Room routes → Token verification: guards
server/src/modules/room/room.routes.js - Room routes → Optional identity: applies
server/src/modules/room/room.routes.js - Upload route → Token verification: guards
server/src/modules/upload/upload.routes.js - Auth operations → User records: queries
server/src/modules/auth/auth.controller.js - Room operations → Room records: queries
server/src/modules/room/room.controller.js - Room operations → Redis cache: caches listings
server/src/modules/room/room.controller.js - User records → PostgreSQL: queries
server/src/modules/auth/auth.model.js - Room records → PostgreSQL: queries
server/src/modules/room/room.model.js - Token verification → PostgreSQL: loads user
server/src/common/middlewares/authMiddleware.js - Photo upload → Cloudinary config: uploads to
server/src/modules/upload/upload.service.js - Server startup → HTTP application: starts
server/src/server.js - Server startup → PostgreSQL: connects
server/src/server.js - Server startup → Redis cache: connects
server/src/server.js