Skip to content

Latest commit

 

History

40 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎓 AI-Powered Learning Management System (LMS) 🚀

License: MIT React FastAPI MongoDB AI

An advanced, highly interactive, and responsive Learning Management System designed to revolutionize how students and educators manage their academic life.

🌐 Live Demo: Experience the App Here

FeaturesTech StackInstallationContributing


🌟 About The Project

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.

✨ Key Features

  • 🤖 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.

🛠️ Technology Stack

This project is built using a modern, scalable, and robust tech stack:

🎨 Frontend

  • Framework: React 19 (via Vite)
  • Styling: Tailwind CSS (v4)
  • Routing: React Router DOM (v7)
  • Icons & Markdown: Lucide React, React Icons, React Markdown

⚙️ Backend

  • 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

📁 Project Structure

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

🚀 Getting Started

Follow these steps to set up the project locally on your machine.

Prerequisites

1. Clone the repository

git clone https://github.com/your-username/my-lms-project.git
cd my-lms-project

2. Backend Setup

Navigate 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.txt

Create 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 --reload

The backend will run on http://localhost:8000

3. Frontend Setup

Open a new terminal, navigate to the frontend directory, and install dependencies.

cd FrontEnd
npm install

Create 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 dev

The frontend will run on http://localhost:5173


🤝 Contributing

Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

📄 License

Distributed under the MIT License. See LICENSE for more information.


Built with ❤️ by Haritha Induwara.

Releases

Packages

Contributors

Languages