EduLense is an intelligent educational platform that transforms your study materials into personalized learning experiences. Upload PDFs and videos, and let AI create study topics, generate practice questions, and help you learn more effectively.
- π PDF Processing: Extract and analyze text from PDF documents
- π₯ Video Analysis: Convert video content to text using speech recognition
- π§ AI-Powered Topics: Automatically generate study topics from your content
- β Smart Questions: Create practice questions tailored to your material
- π Study Dashboard: Interactive learning interface with progress tracking
- π― Personalized Learning: Adaptive study sessions based on your content
- Node.js with Express and TypeScript
- SQLite database (easily upgradable to PostgreSQL)
- OpenAI API for AI-powered features
- LangChain for RAG (Retrieval-Augmented Generation)
- FFmpeg for video processing
- PDF-parse for document processing
- Next.js 14 with TypeScript
- Tailwind CSS for styling
- React Dropzone for file uploads
- Lucide React for icons
- Framer Motion for animations
- Node.js 18+ and npm
- FFmpeg installed on your system
- OpenAI API key
macOS:
brew install ffmpegUbuntu/Debian:
sudo apt update
sudo apt install ffmpegWindows: Download from FFmpeg official website
-
Clone the repository
git clone <repository-url> cd EduLense
-
Install dependencies
# Install root dependencies npm install # Install backend dependencies cd backend npm install # Install frontend dependencies cd ../frontend npm install
-
Set up environment variables
# Copy backend environment example cd backend cp env.example .env # Edit .env and add your OpenAI API key OPENAI_API_KEY=your_openai_api_key_here
-
Start the development servers
# From the root directory npm run devThis will start:
- Backend server on http://localhost:3001
- Frontend server on http://localhost:3000
- Upload Files: Drag and drop PDF or video files onto the upload area
- Wait for Processing: The system will extract text and generate topics
- Study: Click on any topic to generate practice questions
- Practice: Answer questions and track your progress
- Review: Get detailed explanations and study recommendations
POST /api/files/upload- Upload and process filesGET /api/files/files- Get all uploaded filesGET /api/files/files/:id- Get specific file detailsDELETE /api/files/files/:id- Delete a file
GET /api/study/topics/:fileId- Get topics for a filePOST /api/study/topics/:topicId/questions- Generate questions for a topicGET /api/study/topics/:topicId/questions- Get questions for a topicPOST /api/study/sessions- Create a study sessionGET /api/study/sessions/:fileId- Get study sessions for a file
POST /api/ai/ask- Ask questions about your contentPOST /api/ai/recommendations- Get study recommendationsPOST /api/ai/flashcards- Generate flashcardsPOST /api/ai/summarize- Summarize content
EduLense/
βββ backend/ # Backend API server
β βββ src/
β β βββ routes/ # API route handlers
β β βββ services/ # Business logic services
β β βββ database/ # Database initialization
β β βββ index.ts # Server entry point
β βββ data/ # SQLite database files
β βββ uploads/ # Uploaded files storage
β βββ package.json
βββ frontend/ # Next.js frontend
β βββ app/ # Next.js app directory
β βββ components/ # React components
β βββ package.json
βββ package.json # Root package.json (workspaces)
βββ README.md
PORT=3001
NODE_ENV=development
FRONTEND_URL=http://localhost:3000
OPENAI_API_KEY=your_openai_api_key_here
DATABASE_URL=./data/edulense.db
MAX_FILE_SIZE=104857600
UPLOAD_DIR=./uploads
CORS_ORIGIN=http://localhost:3000# Backend tests
cd backend
npm test
# Frontend tests
cd frontend
npm test# Build both frontend and backend
npm run build
# Start production servers
npm start- 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
This project is licensed under the MIT License - see the LICENSE file for details.
- OpenAI for providing the AI capabilities
- LangChain for the RAG framework
- Next.js team for the amazing React framework
- Tailwind CSS for the utility-first CSS framework
If you encounter any issues or have questions:
- Check the Issues page
- Create a new issue with detailed information
- Include your environment details and error logs
Happy Learning! π