How saudeepadhikari/room-finder works
Room Finder is a rental-room marketplace with separate React user and admin applications backed by an Express/MongoDB API. The main user journey is account access, room discovery and listing, booking, eSewa payment, and post-stay reviews; administrators oversee listings, users, bookings, reviews, payments, and analytics. The graph includes the documented Cloudinary image capability and notification subsystem. Some UI-to-API and route-to-controller wiring is unsampled, so those connections are shown only where supported by the README or source index; dashed links indicate unverified integrations.
Main entry points: App.js Client routing · reviewController.js Review moderation · esewaController.js Payment processing · adminService.js Admin analytics
Components 31
User platform
- Client routing
client/src/App.js - Account access
client/src/pages/AuthPage.js - User session
client/src/context/UserContext.js - Room search
client/src/components/AdvancedSearchFilter.js - Room listings
client/src/components/forms/ModernPostRoomForm.js - Booking and payment
client/src/components/EsewaPayment.js - Room reviews
client/src/ReviewForm.js - Notifications
client/src/context/NotificationContext.js
API and domain
- Express API
backend/server.js - Authentication
backend/controllers/authController.js - Room management
backend/routes/rooms.js - Search service
backend/routes/search.js - Bookings
backend/routes/bookings.js - Payment processing
backend/controllers/esewaController.js - Review moderation
backend/controllers/reviewController.js - Notification routes
backend/routes/notifications.js - Admin operations
backend/controllers/adminController.js - Admin analytics
backend/services/adminService.js - User records
backend/models/User.js - Room records
backend/models/Room.js - Booking records
backend/models/Booking.js - Transactions
backend/models/Transaction.js - Review records
backend/models/Review.js - Notifications
backend/models/Notification.js
Admin platform
- Admin routing
admin/src/App.jsx - Admin dashboard
admin/src/admin/AdminDashboardPage.js - Analytics views
admin/src/admin/AdminAnalyticsPage.js - Review management
admin/src/admin/ReviewModeration.js
External services
- eSewa gateway
- Cloudinary
Other components
- Renter / landlord
Connections 40
- Renter / landlord → Client routing: uses
README.md - Client routing → Account access: routes to
client/src/App.js - Account access → User session: authenticates through
client/src/pages/AuthPage.js - User session → Authentication: requests session
client/src/context/UserContext.js - Client routing → Room search: offers discovery
README.md - Room search → Search service: searches
- Client routing → Room listings: offers room posting
README.md - Room listings → Room management: manages listings
- Client routing → Booking and payment: supports transactions
README.md - Booking and payment → Payment processing: initiates payment
- Payment processing → eSewa gateway: verifies payment
- Client routing → Room reviews: offers reviews
README.md - Room reviews → Review moderation: submits reviews
client/src/ReviewForm.js - Client routing → Notifications: shows notifications
client/src/App.js - Notifications → Notification routes: loads notifications
client/src/context/NotificationContext.js - Express API → Room management: mounts routes
backend/server.js - Express API → Authentication: mounts routes
backend/server.js - Express API → Review moderation: mounts routes
backend/server.js - Express API → Payment processing: mounts routes
backend/server.js - Review moderation → Booking records: checks completed stays
backend/controllers/reviewController.js - Review moderation → Review records: creates and updates
backend/controllers/reviewController.js - Review moderation → Notifications: creates alerts
backend/controllers/reviewController.js - Review moderation → User records: looks up users
backend/controllers/reviewController.js - Payment processing → Booking records: updates bookings
backend/controllers/esewaController.js - Payment processing → Transactions: records payments
backend/controllers/esewaController.js - Payment processing → Notifications: creates alerts
backend/controllers/esewaController.js - Authentication → User records: reads and updates
backend/controllers/authController.js - Admin routing → Admin dashboard: routes to
admin/src/App.jsx - Admin routing → Analytics views: routes to
admin/src/App.jsx - Admin routing → Review management: routes to
admin/src/App.jsx - Admin dashboard → Admin operations: loads dashboard data
admin/src/admin/AdminDashboardPage.js - Analytics views → Admin operations: requests analytics
admin/src/admin/AdminAnalyticsPage.js - Review management → Review moderation: moderates reviews
admin/src/admin/ReviewModeration.js - Admin operations → Admin analytics: builds statistics
backend/controllers/adminController.js - Admin analytics → User records: aggregates users
backend/services/adminService.js - Admin analytics → Room records: aggregates rooms
backend/services/adminService.js - Admin analytics → Booking records: aggregates bookings
backend/services/adminService.js - Admin analytics → Transactions: reads transactions
backend/services/adminService.js - Authentication → Cloudinary: stores profile images
- Room management → Cloudinary: stores listing images