A comprehensive full-stack educational platform combining resource sharing, interactive discussions, AI-powered learning, and structured course/roadmap creation.
Live Demo โข Report Bug โข Request Feature
We're excited to be part of Social Winter of Code 2026! This is a great opportunity for open-source enthusiasts to contribute to a real-world educational platform.
- ๐ท๏ธ Check issues labeled
swoc2026,good first issue,help wanted - ๐ Read CONTRIBUTING.md before starting
- ๐ฌ Join discussions and ask questions in issues
- โญ Star the repo to show your support!
- User Authentication - Local signup/login with OTP verification + Google OAuth
- Resource Sharing - Upload and browse PDFs/ebooks by semester, course, department
- Discussion Forum - Community Q&A with voting, best answers, and @mentions
- Courses - Create structured courses with AI-generated content and progress tracking
- Roadmaps - Generate learning roadmaps with resources, tools, and career guidance
- AI PDF Chatbot - Chat with uploaded PDFs using RAG (Retrieval-Augmented Generation)
- Admin Panel - Manage users, content, feature suggestions, and bug reports
- Real-time Updates - WebSocket support for live notifications
- AI Content Generation - Groq-powered course outlines and chapter content
- Vector Database - Pinecone integration for semantic PDF search
- Caching - Redis caching for improved performance
- Email Notifications - OTP and notification emails via SMTP
- File Storage - Cloudinary and R2 (Backblaze) integration
- SEO Optimization - Sitemap generation and metadata
flowchart TD
Client("๐ฑ React Frontend<br/>(Vercel)")
subgraph Backends ["Backends (Fly.io)"]
NodeAPI("โ๏ธ Node.js Backend<br/>(Express.js, Socket.io)")
FastAPI("๐ง AI Backend<br/>(Python, FastAPI)")
end
subgraph Databases ["Databases & Cache"]
Mongo[("๐ MongoDB Atlas<br/>(Primary DB)")]
Pinecone[("๐ฒ Pinecone<br/>(Vector DB)")]
Redis[("โก Redis Cloud<br/>(Cache & WebSockets)")]
end
subgraph Services ["External APIs & Services"]
Groq("๐ค Groq API<br/>(LLM / Content Gen)")
OpenAI("๐ก OpenAI API<br/>(Embeddings)")
Storage("โ๏ธ Cloud Storage<br/>(Cloudinary / R2)")
Email("โ๏ธ SMTP / NodeMailer<br/>(Emails)")
end
%% Connections
Client <-->|"REST API & WebSockets"| NodeAPI
Client <-->|"PDF Uploads & RAG"| FastAPI
NodeAPI <-->|"CRUD"| Mongo
NodeAPI <-->|"Cache/PubSub"| Redis
NodeAPI --->|"Course Outlines"| Groq
NodeAPI --->|"Uploads"| Storage
NodeAPI --->|"Notifications"| Email
FastAPI <-->|"Vector Search"| Pinecone
FastAPI --->|"Embeddings"| OpenAI
FastAPI --->|"AI Completions"| Groq
| Layer | Technologies |
|---|---|
| Frontend | React 19, TypeScript, Vite, Tailwind CSS 4, Socket.io Client, Axios, Monaco Editor, Framer Motion |
| Backend | Express.js, Prisma ORM, MongoDB, Socket.io, JWT, Passport.js, Groq SDK, Nodemailer, Redis |
| AI Backend | FastAPI, LangChain, Pinecone, OpenAI Embeddings, Groq LLM, PyPDF |
| Deployment | Vercel (Frontend), Fly.io (Backends), MongoDB Atlas, Redis Cloud |
edulume/
โโโ client/ # React frontend
โ โโโ src/
โ โ โโโ components/ # React components
โ โ โโโ hooks/ # Custom hooks
โ โ โโโ utils/ # Utility functions
โ โ โโโ types/ # TypeScript types
โ โโโ public/ # Static assets
โ
โโโ server/ # Express.js backend
โ โโโ routes/ # API routes
โ โโโ middleware/ # Express middleware
โ โโโ config/ # Configuration
โ โโโ socket/ # Socket.io handlers
โ โโโ prisma/ # Prisma schema
โ โโโ utils/ # Utility functions
โ
โโโ python-backend/ # FastAPI AI backend
โโโ fileUpload/ # PDF upload handlers
โโโ RAGresponse/ # RAG implementation
โโโ sessionCleanup/ # Session management
- Node.js v20.12.2+
- Python 3.11+
- MongoDB (local or Atlas)
- Git
# Clone the repository
git clone https://github.com/tarinagarwal/edulume.git
cd edulume
# Frontend setup
cd client
npm install
cp .env.example .env # Configure environment variables
npm run dev
# Backend setup (new terminal)
cd server
npm install
cp .env.example .env # Configure environment variables
npm run db:generate
npm run dev
# Python backend setup (new terminal)
cd python-backend
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
cp .env.example .env # Configure environment variables
uvicorn main:app --reload- Ensure you have Docker and Docker Compose installed.
- Configure
.envfile:cp .env.example .env
- Update
.envwith your API keys and configuration. - Run the application:
docker-compose up --build
- Access the application:
- Client: http://localhost
- Server: http://localhost:3000
- Python Backend: http://localhost:8080
๐ For detailed setup instructions, see INSTALLATION.md
| Module | Endpoints | Description |
|---|---|---|
| Auth | /api/auth/* |
Signup, login, OAuth, OTP, password reset |
| Resources | /api/pdfs/*, /api/ebooks/* |
PDF and ebook management |
| Discussions | /api/discussions/* |
Forum with voting and notifications |
| Courses | /api/courses/* |
Course creation, enrollment, progress |
| Roadmaps | /api/roadmaps/* |
Learning roadmap generation |
| Feedback | /api/feedback/* |
Feature suggestions and bug reports |
| AI Chat | /api/pdf-chat/* |
RAG-based PDF chatbot |
We welcome contributions from everyone! Whether you're fixing bugs, adding features, or improving documentation.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'feat: add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
๐ Read CONTRIBUTING.md for detailed guidelines
Looking for a place to start? Check out issues labeled:
good first issue- Perfect for newcomershelp wanted- We need your help!documentation- Help improve our docsbug- Help us squash bugs
| Model | Description |
|---|---|
| User | Authentication and profiles |
| Discussion, Answer, Reply | Forum system |
| Course, Chapter, Enrollment | Course management |
| Roadmap, RoadmapBookmark | Learning paths |
| Pdf, Ebook | Resource storage |
| Notification | Real-time alerts |
| FeatureSuggestion, BugReport | Feedback system |
Key environment variables needed:
| Variable | Description |
|---|---|
DATABASE_URL |
MongoDB connection string |
JWT_SECRET |
JWT signing secret |
GROQ_API_KEY |
Groq API for AI features |
OPENAI_API_KEY |
OpenAI for embeddings |
PINECONE_API_KEY |
Pinecone vector database |
GOOGLE_CLIENT_ID/SECRET |
Google OAuth credentials |
๐ See INSTALLATION.md for complete environment setup
This project is licensed under the MIT License - see the LICENSE file for details.
- All our amazing contributors
- SWOC 2026 for the opportunity
- Open source community
- ๐ง Create an issue for bugs or feature requests
- ๐ฌ Use in-app feedback system
- โญ Star this repo if you find it helpful!
- contact: tarinagarwal@gmail.com