Study Buddy is your ultimate companion for academic success, combining cutting-edge AI technology with intuitive organization tools. Transform your study materials into structured notes, manage your schedule effortlessly, and get intelligent assistance powered by advanced language models.
A complete productivity suite for students with AI-powered document processing, intelligent note-taking, timetable management, and more.
Quick Start β’ Features β’ Tech Stack β’ API Docs β’ Issues β’ Contributing
- Pen2PDF: Extract text from PDFs, PowerPoints, and images using AI
- Notes Generator: AI-generated structured study notes from documents
- Isabella AI Assistant: Intelligent chatbot with RAG (Retrieval Augmented Generation)
- Multiple AI models supported: Gemini, LongCat, GitHub Models (GPT-4, Claude, Llama, etc.)
- Notes Library: Hierarchical folder system for organizing notes
- Timetable: Weekly schedule management with CSV import
- Todo List: Task management with subtasks, pinning, and completion tracking
- Week Counter: Track current academic week
- Dark theme optimized for extended use
- Clean, minimalistic, aesthetic UI
- Markdown rendering with LaTeX/KaTeX support
- Responsive design for all devices
- Python 3.10+
- Node.js 18+
- MongoDB (local or Atlas)
- Navigate to backend directory:
cd backend- Create virtual environment:
python3 -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate- Install dependencies:
pip install -r requirements.txt
# Install Playwright browsers (required for PDF export)
playwright install chromium- Configure environment variables:
cp .env.example .env
# Edit .env with your API keysRequired API keys:
GEMINI_API_KEY: Google Gemini API keyLONGCAT_API_KEY: LongCat API key (optional)GITHUB_TOKEN: GitHub Personal Access Token for GitHub Models (optional)MONGODB_URL: MongoDB connection string
- Start the backend server:
# From the backend directory
./run.sh
# Or manually:
cd ..
python -m uvicorn backend.main:app --host 0.0.0.0 --port 8003 --reloadServer will be available at: http://localhost:8003
- Navigate to project root:
cd /path/to/StudyBuddy- Install dependencies:
npm install- Start development server:
npm run devFrontend will be available at: http://localhost:5173
- Upload PDF, PowerPoint, or image files
- AI extracts and structures the content
- Edit in the markdown editor
- Export to PDF, DOCX, or Markdown
- Upload study materials
- Select AI model (Gemini, LongCat, etc.)
- Generate structured notes
- Save to a folder in your library
- Ask questions about your notes
- RAG system automatically searches your document library
- Add specific notes as context
- Get answers with source citations
- Add classes manually or import from CSV
- View weekly schedule
- Edit inline
- Track class types (Theory/Lab)
- Create todo cards
- Add subtasks to each card
- Pin important tasks
- Mark as complete
StudyBuddy/
βββ backend/
β βββ app/
β β βββ models/ # Database schemas
β β βββ routes/ # API endpoints
β β βββ services/ # AI & RAG services
β β βββ utils/ # Helper functions
β βββ data/ # RAG document storage
β βββ vector_store/ # FAISS index
β βββ main.py # FastAPI app
βββ src/
β βββ components/ # React components
β βββ pages/ # Page components
β βββ services/ # API client
β βββ types/ # TypeScript types
β βββ styles/ # Global styles
βββ public/
Core Framework:
- FastAPI: Modern, fast web framework for building APIs
- Uvicorn: Lightning-fast ASGI server
- Python-multipart: Form and file upload handling
Database:
- MongoDB: NoSQL database for flexible document storage
- Motor: Async MongoDB driver for Python
- PyMongo: Official MongoDB Python driver
AI & Machine Learning:
- Google Generative AI: Gemini models for text and multimodal processing
- OpenAI: GPT models via GitHub Models
- Anthropic: Claude models via GitHub Models
- LongCat: Fast text generation models
RAG (Retrieval Augmented Generation):
- FAISS: Facebook AI Similarity Search for efficient vector retrieval
- Sentence Transformers: State-of-the-art text embeddings
- LangChain: Framework for developing LLM applications
File Processing:
- PyPDF2 & pypdf: PDF parsing and text extraction
- python-docx: Word document processing
- python-pptx: PowerPoint file handling
- openpyxl: Excel file processing
- Pillow: Image processing and manipulation
Text & Export:
- Markdown: Markdown processing
- BeautifulSoup4: HTML parsing
- ReportLab: PDF generation
- Matplotlib: Chart generation for exports
Core Framework:
- React 19: Latest React with improved performance and features
- TypeScript: Type-safe JavaScript development
- Vite: Next-generation frontend build tool for blazing fast development
Routing & Navigation:
- React Router v7: Declarative routing for React applications
Styling & UI:
- CSS Modules: Component-scoped CSS
- CSS Variables: Dynamic theming support
- Dark Theme: Optimized for extended study sessions
Markdown & Math:
- react-markdown: Render Markdown content in React
- KaTeX: Fast math typesetting for the web
- react-katex: React components for KaTeX
- rehype-katex: Rehype plugin to render math with KaTeX
- remark-gfm: GitHub Flavored Markdown support
- remark-math: Math support in Markdown
HTTP & API:
- Axios: Promise-based HTTP client for API requests
Development Tools:
- ESLint: JavaScript/TypeScript linting
- @vitejs/plugin-react: Official Vite plugin for React
- typescript-eslint: TypeScript support for ESLint
Core Framework & Server:
Database:
File Processing:
AI Models:
RAG & Embeddings:
Text Processing & Export:
Utilities:
Runtime Dependencies:
Development Dependencies:
Once the backend is running, visit:
- Swagger UI:
http://localhost:8003/docs - ReDoc:
http://localhost:8003/redoc
| Endpoint | Method | Description |
|---|---|---|
/api/folders |
GET, POST, PUT, DELETE | Folder management |
/api/notes |
GET, POST, PUT, DELETE | Notes CRUD |
/api/notes/generate |
POST | Generate notes with AI |
/api/timetable |
GET, POST, PUT, DELETE | Timetable management |
/api/timetable/import |
POST | Import from CSV |
/api/todos |
GET, POST, PUT, DELETE | Todo management |
/api/assistant/chat |
POST | Chat with AI assistant |
/api/pen2pdf/extract |
POST | Extract text from documents |
/api/pen2pdf/export |
POST | Export to PDF/DOCX/MD |
The RAG (Retrieval Augmented Generation) system:
- Monitors
backend/data/for documents - Automatically indexes new files on startup
- Saves notes as
.txtfiles for indexing - Uses FAISS for vector search
- Integrates with AI Assistant for context-aware responses
- API keys stored in
.env(not committed) - CORS configured for local development
- Input validation on all endpoints
- MongoDB connection with authentication support
For detailed security information and vulnerability reporting, see SECURITY.md.
npm run build
npm run preview # Test production build# Use production ASGI server
pip install gunicorn
gunicorn backend.main:app -w 4 -k uvicorn.workers.UvicornWorker --bind 0.0.0.0:8003We welcome contributions! Please see our Contributing Guidelines for details on:
- How to fork and set up the project
- Code style guidelines
- Commit message format
- Pull request process
This is a student productivity project. Feel free to fork and customize for your needs!
This project is licensed under the MIT License - see the LICENSE file for details.
For information about reporting security vulnerabilities, please see our Security Policy.
- Large file uploads (>50MB) may timeout
- Some AI models require specific API access
- MongoDB must be running for backend to start
- Use Gemini models for document processing (supports images/PDFs)
- LongCat models are fast for text-only tasks
- Pin frequently used todos for quick access
- Organize notes into subject folders for better RAG results
Made with love by H0NEYP0T-466 β€οΈ