How sanikasurade/documind_ai_learning_assistant works
DocuMind turns uploaded study PDFs into saved, interactive learning material. The main workflow is learner → authenticated document upload and parsing → document workspace for chat, summaries, and explanations, or generated flashcards and quizzes. Separate branches handle account verification/profile and subscription upgrades. The backend controller-to-service links shown for AI and authentication are supported by sampled source; broader feature routing and UI-service wiring are represented only where documented, so unsampled call links are omitted.
Main entry points: App.jsx App routes · server.js Express API · aiController.js AI controller · authController.js Auth controller
Components 32
Learning interface
- App routes
frontend/src/App.jsx - Document workspace
frontend/src/pages/DocumentWorkspacePage.jsx - Study dashboard
frontend/src/pages/DashboardPage.jsx - Flashcard study
frontend/src/pages/FlashcardsPage.jsx - Upgrade screen
frontend/src/pages/UpgradePage.jsx - Authentication views
frontend/src/pages - Auth state
frontend/src/context/AuthContext.jsx - Theme state
frontend/src/context/ThemeContext.jsx - HTTP services
frontend/src/services
API and identity
- Express API
backend/server.js - Auth routes
backend/routes/authRoutes.js - Document routes
backend/routes/documentRoutes.js - AI routes
backend/routes/aiRoutes.js - Feature controllers
backend/controllers - Auth controller
backend/controllers/authController.js - Document controller
backend/controllers/documentController.js - AI controller
backend/controllers/aiController.js
Study content
- PDF parsing
backend/services/pdfService.js - Gemini learning service
backend/services/geminiService.js - Study documents
backend/models/Document.js - Flashcard sets
backend/models/Flashcard.js - Quizzes and results
backend/models/Quiz.js - Quiz results
backend/models/QuizResult.js
Accounts and plans
- User accounts
backend/models/User.js - Verification codes
backend/models/OTP.js - Payment controller
backend/controllers/paymentController.js - Email delivery
backend/services/emailService.js
Other components
- Learner
- MongoDB
- Google Gemini
- Razorpay
- Email provider
Connections 35
- Learner → App routes: uses
- App routes → Document workspace: routes to
- App routes → Study dashboard: routes to
- App routes → Flashcard study: routes to
- App routes → Upgrade screen: routes to
- App routes → Authentication views: routes to
- App routes → Auth state: reads state
- App routes → Theme state: uses state
- HTTP services → Express API: calls API
- Express API → Auth routes: mounts routes
- Express API → Document routes: mounts routes
- Express API → AI routes: mounts routes
- Express API → Feature controllers: mounts routes
- Auth routes → Auth controller: dispatches
- Document routes → Document controller: dispatches
- AI routes → AI controller: dispatches
- Auth controller → User accounts: reads/writes
- Auth controller → Email delivery: sends OTP
- Email delivery → Email provider: sends email
- Document controller → PDF parsing: parses PDF
- Document controller → Study documents: reads/writes
- AI controller → Study documents: loads context
- AI controller → Gemini learning service: requests generation
- Gemini learning service → Google Gemini: calls model
- AI controller → Flashcard sets: saves sets
- AI controller → Quizzes and results: saves quizzes
- Learner → Payment controller: requests upgrade
- Payment controller → Razorpay: creates order
- Payment controller → User accounts: updates plan
- User accounts → MongoDB: persists
- Study documents → MongoDB: persists
- Flashcard sets → MongoDB: persists
- Quizzes and results → MongoDB: persists
- Quiz results → MongoDB: persists
- Verification codes → MongoDB: persists