How diyanshu-anand/sangeetalaya works
Sangeetalaya is a music-course platform with a React client and Express/MongoDB backend. The visible user journey includes browsing course pages, signing up or logging in, and a backend flow for creating payment orders and granting course access after QR verification or manual review. The graph preserves the documented authentication, course, payment, and password-reset stages. Backend route and model links are supported by sampled source; frontend payment-to-API wiring is not established by the excerpts, so it is omitted.
Main entry points: payments.js Payment routes · auth.js Authentication routes · App.js Application router · server.js HTTP server
Components 23
Web client
- Application router
frontend/src/App.js - Landing page
frontend/src/components/LandingPage.js - Login and signup
frontend/src/components/AuthModal.js - Forgot password
frontend/src/pages/ForgetPassowrd.js - Dashboard
frontend/src/components/Dashboard.js - Course page
frontend/src/components/CourseIntro.js - Checkout modal
frontend/src/components/checkoutmodal.js
Backend API
- HTTP server
backend/server.js
Identity
- Authentication routes
backend/routes/auth.js - Token protection
backend/middleware/auth.js - User records
backend/models/User.js - Input validation
backend/utils/validators.js - Reset token generation
backend/utils/generators.js
Course and payments
- Course routes
backend/routes/courses.js - Course operations
backend/controllers/courseControllers.js - Course records
backend/models/Course.js - Payment routes
backend/routes/payments.js - Payment orders
backend/models/PaymentOrder.js - Payload security
backend/utils/crypto.js - QR generation
backend/utils/qr.js - Course access records
backend/models/Usercourse.js
Other components
- Learner
- MongoDB
Connections 27
- Learner → Application router: uses
frontend/src/App.js - Application router → Landing page: routes to
frontend/src/App.js - Application router → Forgot password: routes to
frontend/src/App.js - Application router → Dashboard: routes to
frontend/src/App.js - Application router → Course page: routes to
frontend/src/App.js - Landing page → Login and signup: opens
frontend/src/components/LandingPage.js - Course page → Checkout modal: opens
frontend/src/components/CourseIntro.js - Login and signup → Authentication routes: requests login and signup
frontend/src/components/AuthModal.js - Forgot password → Authentication routes: requests reset link
frontend/src/pages/ForgetPassowrd.js - HTTP server → Authentication routes: mounts
backend/server.js - HTTP server → Course routes: mounts
backend/server.js - HTTP server → Payment routes: mounts
backend/server.js - HTTP server → MongoDB: connects
backend/server.js - Authentication routes → User records: reads and updates
backend/routes/auth.js - Authentication routes → Input validation: validates with
backend/routes/auth.js - Authentication routes → Reset token generation: generates reset token
backend/routes/auth.js - Authentication routes → Token protection: uses rate limiting
backend/routes/auth.js - Token protection → User records: loads user
backend/middleware/auth.js - Course routes → Token protection: protects routes
backend/routes/courses.js - Course routes → Course operations: dispatches to
backend/routes/courses.js - Course operations → Course records: reads and writes
backend/controllers/courseControllers.js - Payment routes → Token protection: protects selected routes
backend/routes/payments.js - Payment routes → Payment orders: creates and updates
backend/routes/payments.js - Payment routes → Course records: loads course
backend/routes/payments.js - Payment routes → Payload security: encrypts and verifies
backend/routes/payments.js - Payment routes → QR generation: generates QR
backend/routes/payments.js - Payment routes → Course access records: grants and checks access
backend/routes/payments.js