AI-powered smart study assistant that transforms documents into flashcards, quizzes, summaries, analytics, contextual AI chat, and interactive annotations.
MemoraX is a full-stack AI learning platform that helps students study smarter by converting raw study material into structured, interactive learning tools.
Users can upload documents and instantly generate:
- Flashcards
- Quizzes
- Summaries
- AI-powered chat responses
- Performance analytics dashboard
- Interactive PDF annotations
- JWT-based authentication
- Login / Register
- Protected routes
- Profile management
- Profile image upload (Cloudinary integration)
- Password update functionality
- Upload PDF documents (single + multiple upload support)
- Editable document titles before upload
- Duplicate document name prevention (frontend validation)
- Automatic text extraction
- Intelligent chunking
- Cloud storage support
- Document status tracking
- AI flashcard generation
- AI quiz generation (MCQs)
- AI summaries (structured)
- Context-aware chat with documents
- Persistent chat history
- Auto-generated flashcards
- Difficulty tagging
- Star / unstar
- Review tracking
- Centralized flashcard manager (across all documents)
- Multiple-choice questions
- Score calculation
- Attempt tracking
- Result storage
- Performance-based analytics
- Centralized flashcard & quiz manager (across all documents)
- Draw on PDFs (pen tool)
- Highlighter tool
- Eraser functionality
- Undo / Redo support
- Color selection & stroke control
- Collapsible annotation toolbar
- Save annotations (persisted per document)
- User-specific analytics (NOT global)
- Study activity (last 30 days)
- Quiz performance tracking
- Flashcard mastery (donut chart)
- Weekly consistency graph
- Feature usage insights
- Fully responsive
- Dark theme across app
- Recharts-powered analytics
- Clean SaaS-style dashboard layout
- Interactive modals & smooth transitions
- Node.js
- Express.js
- MongoDB + Mongoose
- JWT Authentication
- Multer (file upload)
- Cloudinary (media storage)
- Google Gemini AI
- React.js (Vite)
- Tailwind CSS
- React Router
- Context API
- Recharts (analytics)
- React Hot Toast
- Lucide Icons
- React Konva (PDF annotations)
- gemini-2.5-flash-lite
MEMORAX
│
├── backend
│ ├── config
│ │ ├── cloudinary.js
│ │ ├── db.js
│ │ └── multer.js
│ │
│ ├── controllers
│ │ ├── aiController.js
│ │ ├── annotationController.js
│ │ ├── authController.js
│ │ ├── communityController.js
│ │ ├── documentController.js
│ │ ├── flashcardController.js
│ │ ├── notificationController.js
│ │ ├── progressController.js
│ │ └── quizController.js
│ │
│ ├── middleware
│ │ ├── auth.js
│ │ ├── errorHandler.js
│ │ └── upload.js
│ │
│ ├── models
│ │ ├── annotationModel.js
│ │ ├── chatHistoryModel.js
│ │ ├── commentModel.js
│ │ ├── documentModel.js
│ │ ├── flashcardModel.js
│ │ ├── notificationModel.js
│ │ ├── postModel.js
│ │ ├── quizModel.js
│ │ └── userModel.js
│ │
│ ├── routes
│ │ ├── aiRoutes.js
│ │ ├── annotationRoutes.js
│ │ ├── authRoutes.js
│ │ ├── communityRoutes.js
│ │ ├── documentRoutes.js
│ │ ├── flashcardRoutes.js
│ │ ├── notificationRoutes.js
│ │ ├── progressRoutes.js
│ │ └── quizRoutes.js
│ │
│ ├── utils
│ │ ├── fixShareIds.js
│ │ ├── geminiService.js
│ │ ├── migrateFlashcardReviewed.js
│ │ ├── notificationHelper.js
│ │ ├── pdfParser.js
│ │ └── textChunker.js
│ │
│ ├── server.js
│ ├── .env
│ └── package.json
│
└── frontend/memora-x
├── src
│ ├── assets
│ ├── components
│ │ ├── ai
│ │ ├── annotations
│ │ ├── auth
│ │ ├── chat
│ │ ├── common
│ │ ├── community
│ │ ├── dashboard
│ │ ├── documents
│ │ ├── flashcards
│ │ ├── layout
│ │ └── quizzes
│ │
│ ├── context
│ │ └── AuthContext.jsx
│ │
│ ├── pages
│ │ ├── Auth
│ │ ├── Community
│ │ ├── Dashboard
│ │ ├── Documents
│ │ ├── FlashCards
│ │ ├── Profile
│ │ ├── Quizzes
│ │ ├── LandingPage.jsx
│ │ └── NotFoundPage.jsx
│ │
│ ├── services
│ │ ├── aiService.js
│ │ ├── annotationService.js
│ │ ├── authService.js
│ │ ├── communityService.js
│ │ ├── documentService.js
│ │ ├── flashcardService.js
│ │ ├── notificationService.js
│ │ ├── progressService.js
│ │ └── quizService.js
│ │
│ ├── utils
│ │ ├── apiPaths.js
│ │ ├── axiosInstance.js
│ │ └── timeAgo.js
│ │
│ ├── App.jsx
│ ├── main.jsx
│ └── index.css
│
├── .env
├── tailwind.config.js
├── vite.config.js
└── package.json
PORT=8000
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_secret_key
JWT_EXPIRE=7d
NODE_ENV=development
GEMINI_API_KEY=your_gemini_api_key
MAX_FILE_SIZE=10485760
CLOUDINARY_CLOUD_NAME=your_cloud_name
CLOUDINARY_API_KEY=your_api_key
CLOUDINARY_API_SECRET=your_api_secret
VITE_API_BASE_URL=http://localhost:8000
cd backend
npm install
npm run dev
cd frontend/memora-x
npm install
npm run dev
- Spaced repetition algorithm
- AI study recommendations
- Real-time collaboration
- Advanced analytics (AI insights)
- Mobile app
This project is for educational and development purposes.