Skip to content

Edulume is a next-gen learning hub that blends AI, design, and community into one powerful platform. Built for college students, it lets you discover resources, generate courses, explore roadmaps, chat with PDFs, and learn faster than ever.

License

Notifications You must be signed in to change notification settings

tarinagarwal/Edulume

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

99 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Edulume - AI-Powered Educational Platform

Edulume Banner

SWOC 2026 License: MIT PRs Welcome

React TypeScript Express.js FastAPI MongoDB Prisma

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


πŸŽ‰ SWOC 2026 - Social Winter of Code

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.

For SWOC Participants

  • 🏷️ 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!

🌟 Features

Core Features

  • 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

Advanced Features

  • 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

πŸ—οΈ Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    Frontend (Client)                         β”‚
β”‚         React 19 + TypeScript + Tailwind CSS + Vite         β”‚
β”‚                    Deployed on Vercel                        β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                              ↓
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                  Backend (Node.js Server)                    β”‚
β”‚          Express.js + Prisma + MongoDB + Socket.io          β”‚
β”‚                    Deployed on Fly.io                        β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                              ↓
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚               AI Backend (Python FastAPI)                    β”‚
β”‚          FastAPI + LangChain + Pinecone + Groq              β”‚
β”‚                    Deployed on Fly.io                        β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ› οΈ Tech Stack

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

πŸ“ Project Structure

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

πŸš€ Quick Start

Prerequisites

  • Node.js v20.12.2+
  • Python 3.11+
  • MongoDB (local or Atlas)
  • Git

Installation

# 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

Running with Docker

  1. Ensure you have Docker and Docker Compose installed.
  2. Configure .env file:
    cp .env.example .env
  3. Update .env with your API keys and configuration.
  4. Run the application:
    docker-compose up --build
  5. Access the application:

πŸ“– For detailed setup instructions, see INSTALLATION.md


πŸ”Œ API Overview

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

🀝 Contributing

We welcome contributions from everyone! Whether you're fixing bugs, adding features, or improving documentation.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'feat: add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

πŸ“– Read CONTRIBUTING.md for detailed guidelines

Good First Issues

Looking for a place to start? Check out issues labeled:

  • good first issue - Perfect for newcomers
  • help wanted - We need your help!
  • documentation - Help improve our docs
  • bug - Help us squash bugs

πŸ“Š Database Models

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

πŸ” Environment Variables

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


πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.


πŸ™ Acknowledgments

  • All our amazing contributors
  • SWOC 2026 for the opportunity
  • Open source community

πŸ“ž Support

  • πŸ“§ Create an issue for bugs or feature requests
  • πŸ’¬ Use in-app feedback system
  • ⭐ Star this repo if you find it helpful!

Built with ❀️ for educators and learners

GitHub stars GitHub forks

About

Edulume is a next-gen learning hub that blends AI, design, and community into one powerful platform. Built for college students, it lets you discover resources, generate courses, explore roadmaps, chat with PDFs, and learn faster than ever.

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 16