How sarfarazahemad9205/classora works
Classora is a learning-resource platform: learners register and verify accounts, browse subjects and chapters, then access chapter materials; administrators manage the catalog and track visits. The React app routes users through these screens and shares authentication state, while Express routes requests to controllers that operate on MongoDB models. PDF resources additionally use Cloudinary. The README documents OTP email delivery; wiring for that and several unsampled controllers is represented only where the tree supports a subsystem, so uncertain internal calls are omitted.
Main entry points: App.jsx App routing · index.js Express API · routes/material.js Material routes · controllers/material.js Material operations
Components 31
Web experience
- App routing
client/src/App.jsx - Auth state
client/src/context/AuthContext.jsx - Account screens
client/src/pages/Login.jsx - OTP verification
client/src/pages/Verify.jsx - Subject browser
client/src/pages/Subjects.jsx - Chapter browser
client/src/pages/Chapters.jsx - Materials viewer
client/src/pages/Materials.jsx - Admin console
client/src/pages/Admin.jsx
Accounts and access
- Account routes
server/routes/user.js - Account operations
server/controllers/user.js - User records
server/models/user.js - OTP email
server/middlewares/sendMail.js - JWT authentication
server/middlewares/auth.js - Admin authorization
server/middlewares/admin.js
Learning catalog
- Subject routes
server/routes/subject.js - Subject operations
server/controllers/subject.js - Subject records
server/models/subject.js - Chapter routes
server/routes/chapter.js - Chapter operations
server/controllers/chapter.js - Chapter records
server/models/chapter.js
Learning materials
- Material routes
server/routes/material.js - Material operations
server/controllers/material.js - Material records
server/models/material.js - Cloudinary files
server/config/cloudinary.js
Persistence and metrics
- Visit routes
server/routes/stats.js - Visit tracking
server/controllers/stats.js - Visit records
server/models/stats.js - Express API
server/index.js - MongoDB connection
server/database/db.js
Other components
- Learner
- Administrator
Connections 39
- Learner → App routing: uses
- Administrator → App routing: uses
- App routing → Account screens: routes
- App routing → OTP verification: routes
- App routing → Subject browser: routes
- App routing → Chapter browser: routes
- App routing → Materials viewer: routes
- App routing → Admin console: routes
- App routing → Visit routes: records visits
- Account screens → Auth state: uses auth
- OTP verification → Auth state: uses auth
- Auth state → Account routes: requests account API
- Express API → Account routes: mounts
- Express API → Subject routes: mounts
- Express API → Chapter routes: mounts
- Express API → Material routes: mounts
- Express API → Visit routes: mounts
- Express API → MongoDB connection: connects
- Account routes → Account operations: dispatches
- Account routes → JWT authentication: checks tokens
- Account operations → User records: reads and writes
- Subject browser → Subject routes: requests subjects
- Subject routes → Subject operations: dispatches
- Subject operations → Subject records: reads and writes
- Chapter browser → Chapter routes: requests chapters
- Chapter routes → Chapter operations: dispatches
- Chapter operations → Chapter records: reads and writes
- Admin console → Chapter routes: creates chapters
- Materials viewer → Material routes: requests materials
- Admin console → Material routes: manages materials
- Material routes → JWT authentication: checks tokens
- Material routes → Admin authorization: checks role
- Material routes → Material operations: dispatches
- Material operations → Material records: reads and writes
- Material operations → Chapter records: checks chapter
- Material operations → Cloudinary files: uploads or deletes PDFs
- Visit routes → Visit tracking: dispatches
- Visit tracking → Visit records: records visits
- Account operations → OTP email: sends OTP email