NeuroMap is an AI-powered learning assistant that converts messy study notes into an interactive knowledge graph. Students upload lecture notes (PDF or text), and the system automatically extracts key concepts, maps relationships between them, and generates a structured visualization of the topic.
Instead of reading notes line-by-line, students can explore the concept network, identify weak areas through quizzes, and receive a personalized revision roadmap.
The goal of NeuroMap is to transform passive reading into visual, concept-driven learning.
NeuroMap helps students understand complex material faster by:
- Parsing study notes
-
Accepts uploaded lecture notes (PDF/text).
-
Extracts readable text from documents.
- AI Concept Extraction
-
Uses an LLM to detect important concepts.
-
Identifies relationships between them.
- Concept Graph Generation
-
Constructs a knowledge graph from extracted concepts.
-
Displays it visually using an interactive node graph.
- Interactive Concept Exploration
- Clicking a concept reveals explanation and quiz questions.
- Weak Concept Detection
- Incorrect quiz answers mark concepts as weak.
- Personalized Revision Plan
- Generates a roadmap based on weak concepts.
- Personalized Revision Roadmap
- recommend study order, which topics require review
- Learning Progress Track
- The system tracks concept mastery and displays overall learning progress to the user.
Students often struggle with:
-
Large volumes of lecture notes
-
Identifying the most important concepts
-
Understanding relationships between topics
-
Knowing what to revise
NeuroMap solves this by converting notes into a visual knowledge map, allowing students to:
-
Understand topic structure quickly
-
Identify dependencies between concepts
-
Focus revision on weak areas
-
Learn interactively instead of passively reading notes
- React
- TypeScript
- Vite
- TailwindCSS
- ReactFlow (concept graph visualization)
- Axios
- Node.js
- Express.js
- Prisma ORM
- PostgreSQL
- Groq API (LLM)
- Prompt-based concept extraction
- Retrieval Augmented Generation (RAG)
- pdf2json (PDF text extraction)
- Azure Blob Storage - file storage for uploaded notes
- Azure Redis Cache - caching AI-generated quiz and explaination responses
- Backend: Render
- Frontend: Vercel
AIStudyBuddy
│
├── backend
│ ├── routes
│ │ ├── analyzeNote.js
│ │ ├── generateQuiz.js
│ │ ├── revisionRoadmap.js
│ │ └── studySession.js
│ │
│ ├── services
│ │ ├── conceptExtractor.js
│ │ ├── llmClient.js
│ │ ├── retrieval.js
│ │ ├── chunker.js
│ │ ├── blobStorage.js
│ │ └── cache.js
│ │
│ ├── db
│ │ └── prisma.js
│ │
│ └── server.js
│
├── frontend
│ ├── src
│ │ ├── components
│ │ │ ├── ConceptGraph.tsx
│ │ │ ├── ConceptPanel.tsx
│ │ │ └── RevisionPlan.tsx
│ │ │
│ │ ├── pages
│ │ │ └── UploadPage.tsx
│ │ │
│ │ └── App.tsx
│ │
│ └── api
│ └── api.ts
│
└── README.md
User
│
▼
React Frontend (Vercel)
│
▼
Express Backend API (Render)
│
├── Document Processing
│ └─ PDF Parsing (pdf2json)
│
├── AI Layer
│ ├─ Concept Extraction
│ └─ Explanation + Quiz Generation
│
├── Retrieval Layer
│ └─ Relevant Note Chunk Retrieval
│
├── Cache Layer
│ └─ Redis (Azure Cache for Redis)
│
├── Storage Layer
│ └─ Azure Blob Storage
│
▼
PostgreSQL Database
│
├── Notes
├── Concepts
├── Relationships
└── Quiz Results
│
▼
Knowledge Graph returned to frontend
│
▼
ReactFlow Visualization
- Clone Repository
git clone https://github.com/<your-username>/AIStudyBuddy.git
cd AIStudyBuddy- Backend Setup
Navigate to backend:
cd backendInstall dependencies:
npm installCreate .env
DATABASE_URL=your_postgres_connection
GROQ_API_KEY=your_groq_api_key
AZURE_STORAGE_CONNECTION_STRING=your_blob_connection
AZURE_STORAGE_CONTAINER=notes
REDIS_URL=your_redis_connection
PORT=5000Run server:
npm run devBackend runs on:
http://localhost:5000- Frontend Setup
Navigate to frontend:
cd frontendInstall dependencies:
npm installCreate .env
VITE_API_URL=http://localhost:5000Start frontend:
npm run devFrontend runs on:
http://localhost:5173| Method | Endpoint | Description |
|---|---|---|
| POST | /api/analyze |
Uploads PDF/Text, returns nodes and edges. |
| POST | /api/quiz |
Returns explanation and MCQs for a concept. |
| POST | /api/quiz/result |
Saves score and updates concept strength. |
| GET | /api/roadmap/:noteId |
Returns a personalized revision plan based on weak concepts. |
| GET | /api/study-session/:noteId |
Returns the next concept the student should study. |
During development several technical challenges emerged:
- PDF Parsing Issues
Many PDFs contain irregular encodings, which caused text extraction errors. These were mitigated using safe decoding and text cleaning.
- AI Rate Limits
Gemini free-tier API limits caused request failures during testing. Fallback logic was implemented to prevent crashes when AI responses fail.
- Noisy Note Content
Lecture PDFs often include formatting artifacts that degrade concept extraction accuracy.
- Graph Layout
Automatically organizing concept graphs in a readable layout required custom positioning logic.
Future improvements planned for NeuroMap include:
- Better AI Knowledge Graph Extraction
Use structured extraction pipelines (RAG / embeddings) for higher concept accuracy.
- Semantic Search
Allow students to search concepts directly inside notes using embeddings.
- Multi-Document Knowledge Graphs
Merge multiple lectures into one connected knowledge map.
- Smart Study Scheduling
Integrate spaced repetition to optimize revision timing.
- Advanced Graph Visualization
Cluster related concepts and highlight core topics automatically.
- Collaborative Learning
Allow students to share concept maps and annotations.
NeuroMap demonstrates how AI can transform traditional notes into an interactive learning experience. By combining document parsing, LLM-based concept extraction, and graph visualization, the system provides a powerful way for students to explore and revise complex subjects efficiently.
The current prototype validates the concept and lays the foundation for a scalable AI-driven learning platform.