An advanced, highly interactive, and responsive Learning Management System designed to revolutionize how students and educators manage their academic life.
Welcome to the AI-Powered Learning Management System (LMS). This project goes beyond traditional LMS platforms by integrating modern web technologies with Artificial Intelligence (Google Gemini) and Real-Time Communications (WebSockets).
Whether it's managing assignments, organizing notes, planning daily schedules, or seeking help from an AI Tutor, this system provides a centralized hub for all educational needs.
- 🤖 AI Assistant (Gemini API): A built-in intelligent tutor to help students with their coursework and questions.
- 💬 Real-Time Messaging: Live chat functionality powered by WebSockets to connect with peers and educators instantly.
- 📅 Interactive Calendar & Auto-Scheduling: A fully functional, custom-built calendar that tracks assignments and auto-generates study schedules.
- 🔐 Smart Authentication: Secure JWT-based email/password login alongside Facebook OAuth integration.
- 📊 Intelligent Dashboard: A beautiful centralized overview of notes, pending assignments, upcoming exams, and enrolled subjects.
- 🎨 Modern UI/UX: Stunning, responsive design built with Tailwind CSS, featuring smooth animations and dark/light modes.
This project is built using a modern, scalable, and robust tech stack:
- Framework: React 19 (via Vite)
- Styling: Tailwind CSS (v4)
- Routing: React Router DOM (v7)
- Icons & Markdown: Lucide React, React Icons, React Markdown
- Framework: FastAPI (Python 3.10+)
- Database: MongoDB (Motor AsyncIO for non-blocking DB calls)
- Authentication: PyJWT, Passlib (Bcrypt)
- AI Integration: Google GenAI (Gemini 3.1 Flash Lite)
- Real-time: WebSockets
my-lms-project/
├── Backend/ # FastAPI Server
│ ├── main.py # Application Entry Point & CORS Setup
│ ├── database.py # MongoDB Async Connection
│ ├── models.py # Pydantic Data Models
│ ├── Security.py # JWT Token Generation & Validation
│ ├── messaging.py # WebSocket Real-Time Chat Logic
│ ├── chatbote.py # Google Gemini AI Assistant Logic
│ └── routes/ # Modularized API Endpoints
└── FrontEnd/ # React Vite Application
├── src/
│ ├── components/ # Reusable UI Components
│ ├── auth/ # Login, Registration & Facebook Auth
│ ├── route/ # Application Routing Logic
│ └── assets/ # Images and Static Files
├── package.json # Frontend Dependencies
└── tailwind.config.js # Tailwind Configuration
Follow these steps to set up the project locally on your machine.
- Node.js (v18 or higher)
- Python (v3.10 or higher)
- A MongoDB Atlas Cluster URI
- A Google Gemini API Key
git clone https://github.com/your-username/my-lms-project.git
cd my-lms-projectNavigate to the backend directory and install the required Python packages.
cd Backend
python -m venv venv
source venv/bin/activate # On Windows use: venv\Scripts\activate
pip install -r requirements.txtCreate a .env file in the Backend directory and add your credentials:
DATABASE_URL="mongodb+srv://<username>:<password>@cluster.mongodb.net/?retryWrites=true&w=majority"
GEMINI_API_KEY="your_gemini_api_key_here"
JWT_SECRET="your_super_secret_jwt_key"Start the FastAPI server:
uvicorn main:app --reloadThe backend will run on http://localhost:8000
Open a new terminal, navigate to the frontend directory, and install dependencies.
cd FrontEnd
npm installCreate a .env file in the FrontEnd directory:
VITE_API_BASE_URL="http://localhost:8000"
VITE_FACEBOOK_APP_ID="your_facebook_app_id"Start the Vite development server:
npm run devThe frontend will run on http://localhost:5173
Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Distributed under the MIT License. See LICENSE for more information.