How saurabhthakur-73/elitefullstack works
EliteFinish is a painter-hiring marketplace: users register or log in, browse painters, and create and track bookings. The backend also supports painter profiles, product listings, reviews, admin operations, password recovery, and Razorpay payments. The README describes AI scan/BOQ as a future, separate microservice, so it is not shown as implemented. Some frontend pages and backend controllers were not sampled; their paths and capabilities are supported by the tree and README, but uncertain internal wiring is omitted.
Main entry points: server.js Express API · App.jsx React app · axios.js HTTP client · adminController.js Admin controller
Components 33
Web app
- React app
frontend/src/App.jsx - Auth context
frontend/src/context/AuthContext.jsx - Login and signup
frontend/src/pages/Login.jsx - Browse painters
frontend/src/pages/Painters.jsx - Booking views
frontend/src/pages/BookingForm.jsx - Product views
frontend/src/pages/Products.jsx - Painter tools
frontend/src/pages/PainterDashboard.jsx - Admin dashboard
frontend/src/pages/AdminDashboard.jsx - HTTP client
frontend/src/api/axios.js
API and auth
- Express API
backend/server.js - Auth routes
backend/routes/authRoutes.js - Auth controller
backend/controllers/authController.js - Booking routes
backend/routes/bookingRoutes.js - User records
backend/models/User.js - MongoDB connection
backend/config/db.js
Marketplace
- Booking controller
backend/controllers/bookingController.js - Painter controller
backend/controllers/painterController.js - Product controller
backend/controllers/productController.js - Review routes
backend/routes/reviewRoutes.js - Review controller
backend/controllers/reviewController.js - Booking records
backend/models/Booking.js - Painter records
backend/models/Painter.js - Product records
backend/models/Product.js - Review records
backend/models/Review.js
Platform operations
- Admin routes
backend/routes/adminRoutes.js - Admin controller
backend/controllers/adminController.js
External services
- Payment routes
backend/routes/paymentRoutes.js - Payment controller
backend/controllers/paymentController.js - Email sender
backend/utils/sendEmail.js
Other components
- Customer or painter
- MongoDB
- Razorpay
- Email service
Connections 45
- Customer or painter → React app: uses
- React app → Login and signup: routes to
- React app → Browse painters: routes to
- React app → Booking views: routes to
- React app → Product views: routes to
- React app → Painter tools: routes to
- React app → Admin dashboard: routes to
- React app → Auth context: provides auth
- Login and signup → HTTP client: requests
- Browse painters → HTTP client: requests
- Booking views → HTTP client: requests
- Product views → HTTP client: requests
- Painter tools → HTTP client: requests
- Admin dashboard → HTTP client: requests
- HTTP client → Express API: calls API
- Express API → Auth routes: dispatches
- Express API → Booking routes: dispatches
- Express API → Review routes: dispatches
- Express API → Admin routes: dispatches
- Express API → Payment routes: dispatches
- Express API → Painter controller: dispatches
- Express API → Product controller: dispatches
- Auth routes → Auth controller: dispatches
- Booking routes → Booking controller: dispatches
- Review routes → Review controller: dispatches
- Admin routes → Admin controller: dispatches
- Payment routes → Payment controller: dispatches
- Auth controller → User records: reads and writes
- Auth controller → Email sender: sends reset email
- Email sender → Email service: sends via
- Booking controller → Booking records: reads and writes
- Booking controller → Painter records: reads
- Painter controller → Painter records: reads and writes
- Product controller → Product records: reads and writes
- Review controller → Booking records: reads and updates
- Review controller → Review records: reads and writes
- Review controller → Painter records: updates rating
- Admin controller → Painter records: reads and updates
- Admin controller → Product records: reads and deletes
- Admin controller → Booking records: reads
- Admin controller → User records: counts
- Payment controller → Booking records: reads and updates
- Payment controller → Razorpay: creates order
- Express API → MongoDB connection: connects
- MongoDB connection → MongoDB: opens connection