Transform your documents into interactive learning experiences with the power of AI
- EduGenie is a modern, full-stack web application that revolutionizes the way students and professionals interact with educational content. Upload any document (PDF, DOCX, TXT) and let our AI-powered system generate summaries, quizzes, flashcards, and Q&A sessions to enhance your learning experience.
- EduGenieβs RAG feature allows context-aware chatting with your documents by chunking files, storing them as vector embeddings, and retrieving the most relevant sections to generate accurate, content-grounded AI responses.
- π Smart Document Analysis - Upload and process multiple document formats
- π€ AI-Powered Insights - Generate summaries, quizzes, and study materials
- π Interactive Learning - Flashcards, Q&A sessions, and progress tracking
- π Secure Authentication - JWT-based user management with protected routes
- π Light/Dark Mode - Seamless theme toggle across all pages and components
- π± Responsive Design - Beautiful UI that works on all devices
- β‘ Real-time Processing - Fast document analysis with progress tracking
- π§ Semantic Search (RAG) - Chat with your documents using advanced vector embeddings and a dedicated Python microservice.
frontend/
βββ src/
β βββ app/ # Next.js App Router pages
β βββ components/ # Reusable UI components
β β βββ auth/ # Authentication components
β β βββ dashboard/ # Dashboard components
β β βββ documents/ # Document management
β β βββ analysis/ # Analysis, quiz, flashcard, summary components
β β βββ ui/ # shadcn/ui components
β βββ lib/ # Utilities & API clients
β βββ store/ # Zustand state management
β βββ types/ # TypeScript definitions
backend/
βββ controllers/ # Route handlers & business logic
βββ models/ # MongoDB schemas
βββ routes/ # API route definitions
βββ middleware/ # Authentication & validation
βββ utils/ # Helper functions
βββ config/ # Database configuration
Handles vector embedding, semantic search, and LLM interaction.
ai_service/
βββ main.py # FastAPI entry point & endpoints
βββ requirements.txt # Python dependencies
βββ .env # AI-specific configuration
- Framework: Next.js 15 with App Router
- Language: TypeScript
- Styling: Tailwind CSS + shadcn/ui
- State Management: Zustand + React Query
- Forms: React Hook Form + Zod validation
- Icons: Lucide React
- Notifications: Sonner
- Animations: Framer Motion
- Theme: next-themes (light/dark mode toggle)
- Runtime: Node.js 18+
- Framework: Express.js
- Database: MongoDB Atlas
- Authentication: JWT with httpOnly cookies
- AI Integration: Google Gemini 2.5 Flash
- File Processing: Multer, pdf-parse, mammoth
- Security: bcryptjs, CORS, helmet
- Package Manager: npm
- Linting: ESLint
- Git Hooks: Husky (planned)
- Deployment: Vercel (frontend), Railway (backend)
- Runtime: Python 3.9+
- Framework: FastAPI
- AI Orchestration: LangChain
- LLM: Google Gemini 1.5 Flash / Gemini Pro
- Vector Database: MongoDB Atlas Vector Search
- Node.js 18 or higher
- npm or yarn
- Python 3.9 or higher
- MongoDB Atlas account (with Vector Search enabled)
- Google Gemini API key
git clone https://github.com/Flames004/Edu-Genie.git
cd Edu-Geniecd backend
npm install
# Create .env file
cp .env.example .env
# Edit .env with your configuration:
# - MONGO_URI=your_mongodb_connection_string
# - JWT_SECRET=your_jwt_secret
# - GEMINI_API_KEY=your_gemini_api_key
# - FRONTEND_ORIGIN=http://localhost:3000
# Start the backend server
npm startcd frontend
npm install
# Create .env.local file
echo "NEXT_PUBLIC_API_BASE_URL=http://localhost:5000/api" > .env.local
# Start the development server
npm run devcd ai_service
# Create virtual environment
python -m venv venv
# Activate it (Windows: .\venv\Scripts\activate | Mac/Linux: source venv/bin/activate)
pip install -r requirements.txt
# Create .env file
# Required vars: GEMINI_API_KEY, MONGO_URI
uvicorn main:app --reload --port 8000- Frontend: http://localhost:3000
- Backend API: http://localhost:5000/api
POST /api/auth/register # Create new user account
POST /api/auth/login # Authenticate user
POST /api/auth/logout # End user session
GET /api/auth/profile # Get current user infoPOST /api/study/upload # Upload document
GET /api/study/documents # Get user documents
GET /api/study/documents/:id # Get specific document
DELETE /api/study/documents/:id # Delete documentPOST /api/study/analyze/:id # Generate custom analysis
POST /api/study/summary/:id # Generate summary
POST /api/study/quiz/:id # Generate quiz
POST /api/study/flashcards/:id # Generate flashcards
POST /api/study/questions/:id # Generate Q&APOST /ingest # Chunk & Embed document (Internal)
POST /chat # Context-aware chat with document (Internal)
POST /api/study/analyze/:id # Generate custom analysis
POST /api/study/quiz/:id # Generate quizWe welcome contributions from the community! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Use TypeScript for type safety
- Follow the existing code style
- Write meaningful commit messages
- Test your changes thoroughly
- Update documentation as needed





