How aksh0411/note_university works
Noteversity is a university academic portal for student accounts, course notes, previous-year papers, and an AI study mentor. The main workflow runs from the browser through the API: students authenticate, browse or download notes and PYQs, and ask subject-focused questions answered using relevant PDF material and an AI provider. Admins can upload academic files. The backend also supports real-time room chat and persists application data through MongoDB with JSON-backed recovery. The README and sampled source support the AI and authentication flows; some route internals are unsampled, so their detailed links are omitted.
Main entry points: server.js HTTP and socket server · seeder.js Startup data restore · chat.js AI chat routes · aiService.js Academic RAG service
Components 22
Student experience
- Web application
noteversity-prototype.html
API workflows
- HTTP and socket server
noteversity-backend/server.js - Authentication routes
noteversity-backend/routes/auth.js - JWT auth guard
noteversity-backend/middleware/auth.js - Notes library routes
noteversity-backend/routes/notes.js - PYQ library routes
noteversity-backend/routes/pyqs.js - Student dashboard
noteversity-backend/routes/dashboard.js - AI chat routes
noteversity-backend/routes/chat.js - File upload handler
noteversity-backend/middleware/upload.js
Academic content
- Academic RAG service
noteversity-backend/services/aiService.js - Course PDF catalog
noteversity-backend/config/libraryCatalog.js - Uploaded academic PDFs
noteversity-backend/uploads
Data persistence
- User records
noteversity-backend/models/User.js - Notes records
noteversity-backend/models/Note.js - PYQ records
noteversity-backend/models/Pyq.js - Room messages
noteversity-backend/models/Message.js - MongoDB
noteversity-backend/config/db.js - JSON persistence
noteversity-backend/services/jsonStore.js - Startup data restore
noteversity-backend/config/seeder.js
External services
- Google Gemini
- Email delivery
noteversity-backend/config/mailer.js
Other components
- Student or admin
Connections 37
- Student or admin → Web application: uses
- Web application → HTTP and socket server: sends API requests
- HTTP and socket server → Authentication routes: mounts auth
- HTTP and socket server → Notes library routes: mounts notes
- HTTP and socket server → PYQ library routes: mounts PYQs
- HTTP and socket server → Student dashboard: mounts dashboard
- HTTP and socket server → AI chat routes: mounts chat
- Authentication routes → User records: reads and writes
- Authentication routes → JWT auth guard: uses
- Authentication routes → Email delivery: sends OTP
- Notes library routes → File upload handler: handles uploads
- Notes library routes → Notes records: manages notes
- PYQ library routes → File upload handler: handles uploads
- PYQ library routes → PYQ records: manages papers
- Student dashboard → User records: reads student data
- Student dashboard → Notes records: reads note stats
- Student dashboard → PYQ records: reads paper stats
- File upload handler → Uploaded academic PDFs: writes files
- AI chat routes → JWT auth guard: protects endpoints
- AI chat routes → Academic RAG service: requests answers
- AI chat routes → JSON persistence: persists history
- AI chat routes → Room messages: loads room messages
- Academic RAG service → Notes records: retrieves notes
- Academic RAG service → PYQ records: retrieves papers
- Academic RAG service → Uploaded academic PDFs: extracts PDF text
- Academic RAG service → Google Gemini: generates answer
- HTTP and socket server → Room messages: stores socket messages
- HTTP and socket server → User records: checks socket identity
- HTTP and socket server → MongoDB: connects on startup
- Startup data restore → JSON persistence: restores records
- Startup data restore → User records: seeds users
- Startup data restore → Notes records: seeds notes
- Startup data restore → PYQ records: seeds papers
- Startup data restore → Room messages: seeds chat
- Startup data restore → Course PDF catalog: loads catalog
- Startup data restore → Uploaded academic PDFs: imports matching files
- JSON persistence → MongoDB: backs up collections