Skip to content

Learnathon-By-Geeky-Solutions/seagull

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

KUETx

KUETx - Shaping Tomorrow's Mind with Today's Tech

KUETx is a Learning Management System (LMS) designed to revolutionize the way students and instructors interact with educational content. Offering a seamless platform for course browsing, engaging lessons, quizzes, and interactive forums, KUETx brings together the best of technology and education. Whether you're a student eager to learn or an instructor looking to share your knowledge, KUETx provides all the tools to create, manage, and enjoy a rich learning experience.

Tech Stack

React Vite Tailwind CSS Django Python PostgreSQL Git Django REST Hugging Face

Code Quality

Quality Gate Status Maintainability Rating Reliability Rating Security Rating Code Smells Coverage

Project Resources

  • Wiki β€” Full project documentation
  • Project Board β€” Tasks and progress tracking
  • API Docs β€” API endpoints and usage (replace with actual link)
  • Report Issues β€” Bug reports and feature requests
  • Devlog β€” Track our development journey.

Table of Contents

Live Demo

Frontend Live Demo Β  Backend Live Demo

API Documentation

Explore our RESTful API with interactive docs powered by drf-spectacular:

KUETx

Team

Meet the passionate developers behind KUETx:

Role Name & GitHub Profile
Team Lead Imamul Islam Ifti
Developer Saif Alvi
Developer Syed Nazib Sadi

Our Guide & Mentor

A heartfelt appreciation to Maahad Mahmud

Features

Course Interaction

  • Browse Available Courses
    Students can explore and enroll in courses based on topics, discovering relevant learning paths with ease.

  • OTP Verification for Course Enrollment
    A one-time password (OTP) is generated and shown during enrollment. The user must correctly enter the OTP to enroll in a course.

  • Invoice Download An invoice pdf file will be downloaded automatically after course enrollment

  • Watch Lessons
    Access embedded YouTube videos for engaging, high-quality course content delivered directly in the platform.

  • Download Materials
    Get access to PDFs and supplementary resources for offline learning, enhancing study flexibility.

  • Instructor Course Management
    Instructors can create, update, and delete their courses, tailoring content to meet student needs.

  • Course Content Management
    Instructors can manage course materials, including lessons, PDFs, and quizzes, ensuring up-to-date and organized content.


Interactive Quizzes & Evaluation

  • Timed Quiz Sessions
    Students take quizzes under time constraints, simulating real test conditions.

  • Auto-Graded Scoring
    Quiz submissions are automatically evaluated with instant feedback.

  • Detailed Result Breakdown
    Students receive question-wise analysis, showing correct answers.

  • Progress Tracking
    Quiz performance is recorded and reflected in the student's profile

  • Re-attempts & Practice
    Instructors can allow multiple attempts for practice and learning reinforcement.


Interactive Discussion Forum

  • Post Creation and Management
    Users can create, edit, and delete their own posts.

  • Toxicity Detection
    Posts are scanned in real-time using Hugging Face’s unitary/toxic-bert to prevent harmful or offensive content.

  • Tagging System
    Categorize posts with tags (e.g., "Python", "Django") for easy discovery and filtering of relevant topics.

  • Nested Comments
    Engage in threaded, hierarchical comment discussions, powered by MPTT for seamless reply chains.

  • Upvote/Downvote System
    Users can upvote or downvote posts to highlight quality content, with a vote score calculated as upvotes minus downvotes.

  • Post Sorting Options
    Filter and sort posts by tags, recent activity, or most voted all-time.

  • User Authentication
    Secure registration and login ensure personalized interactions with posts, comments, and votes.


Dashboards & Analytics

Insightful data visualization for both learners and instructors to monitor performance and progress.


Admin Dashboard

  • Course and Quiz Management
    Admins can add, edit, and remove courses and quizzes, ensuring high-quality educational content.

  • Platform Analytics
    View key metrics, including active users in the last 7 days, total users, students, instructors, courses, and content count, with detailed user information (names and emails).

  • Forum Moderation
    Admins have delete access to all forum posts, maintaining a safe and constructive community environment.

Secure Authentication

Modern JWT-based authentication flow for registration, login, and protected APIs.

Tech Stack

Frontend

  • React βš›οΈ
    Builds a dynamic, component-based UI for seamless course, quiz and forum interactions.
  • Tailwind CSS 🎨
    Powers the responsive, modern design with a teal/blue aesthetic for a vibrant user experience.

Backend

  • Django 🐍
    Drives robust server-side logic for course management, quiz analysis, forum features, and secure authentication.
  • Django REST Framework 🌐
    Provides scalable RESTful APIs for efficient frontend-backend communication.
  • Hugging Face unitary/toxic-bert πŸ€–
    Enables AI-powered toxicity detection to maintain a safe and respectful forum environment.

Infrastructure

  • PostgreSQL πŸ—„οΈ
    Stores course, user, quiz and forum data with reliable, efficient querying.
  • ImageBB πŸ–ΌοΈ
    Host course images for fast, reliable media delivery in learning materials.
  • CI/CD πŸš€
    Automates testing and deployment pipelines for consistent, rapid updates.

System Architecture

The Diagram shows how users interact through the front end with DRF APIs for different modules, including courses, quizzes, forums, and authentication.

System Architecture

Entity-Relationship Diagram

Here’s an overview of the system’s data structure:

ER Diagram

Project Directory Structure

Here’s the directory structure of the Seagull LMS project:

seagull
β”œβ”€β”€ frontend
β”‚   β”œβ”€β”€ public
β”‚   β”‚   └── assets
β”‚   β”œβ”€β”€ src
β”‚   β”‚   β”œβ”€β”€ assets
β”‚   β”‚   β”œβ”€β”€ components
β”‚   β”‚   β”‚   β”œβ”€β”€ admin
β”‚   β”‚   β”‚   β”œβ”€β”€ courses
β”‚   β”‚   β”‚   β”œβ”€β”€ forum
β”‚   β”‚   β”‚   β”œβ”€β”€ landingpage
β”‚   β”‚   β”‚   β”œβ”€β”€ profile
β”‚   β”‚   β”‚   β”œβ”€β”€ quiz
β”‚   β”‚   β”‚   └── shared
β”‚   β”‚   β”œβ”€β”€ pages
β”‚   β”‚   β”œβ”€β”€ services
β”‚   β”‚   └── context
β”œβ”€β”€ server
β”‚   β”œβ”€β”€ requirements.txt
β”‚   └── backend
β”‚       β”œβ”€β”€ ai_utils
β”‚       β”œβ”€β”€ course
β”‚       β”œβ”€β”€ quiz
β”‚       β”œβ”€β”€ forum
β”‚       β”œβ”€β”€ user
β”œβ”€β”€ README.md
β”œβ”€β”€ LICENSE
└── .github
    └── workflows

Getting Started

πŸ› οΈ Prerequisites

Make sure these are installed before proceeding.

Clone the repository:

git clone https://github.com/your-username/seagull.git
cd seagull

🧩 Frontend Setup

cd frontend
npm install       # install dependencies
npm run dev       # run the app at localhost

🐍 Backend Setup

cd server
python -m venv env       # create virtual environment
source env/bin/activate  # activate environment (Linux/macOS)
env\Scripts\activate     # for Windows

pip install -r requirements.txt
cd backend
python manage.py migrate
python manage.py createsuperuser  # follow prompts
python manage.py runserver

πŸ”‘ Environment Setup

You will need to configure the .env files for both the backend and frontend.

Backend (.env) Setup

  1. Go to the server/backend folder.
  2. Create a .env file if it doesn’t exist.
  3. Add your Django and PostgreSQL environment variables, like so:
DEBUG=True
SECRET_KEY=your-secret-key
DB_NAME=lms
DB_USER=your-db-username
DB_PASSWORD=your-db-password
DB_HOST=localhost
DB_PORT=5432

Frontend (.env) Setup

  1. Go to the frontend folder.
  2. Create a .env file if it doesn’t exist.
VITE_IMGBB_API_KEY=your-api-here

Operational Flow

  1. User Authentication

    • Users can sign up or log in using JWT-based authentication.
    • Admins have access to manage users and content.
  2. Browse & Enroll in Courses

    • Students can explore available courses.
    • They can enroll in courses, view lessons, and participate in quizzes.
  3. Course Management by Instructors

    • Instructors can create, update, and delete their courses.
    • They can upload lessons, quizzes, and other course materials.
  4. Quiz Participation & Evaluation

    • Students take quizzes, which are automatically graded.
    • Quiz results are stored in student profiles.
  5. Discussion Forum

    • Students and instructors can create posts, comment, and engage in discussions.
    • Posts are monitored for toxic content using AI (Hugging Face).
  6. Admin Dashboard

    • Admins can view platform analytics, manage courses, and moderate content.

Contributing

We welcome contributions! Here's how you can help:

  1. Fork this repository
  2. Create a new branch: git checkout -b feature-name
  3. Make your changes and commit: git commit -m 'Add new feature'
  4. Push to your fork: git push origin feature-name
  5. Submit a Pull Request

πŸ’‘ For major changes, please open an issue first to discuss what you'd like to change.

License

This project is licensed under the MIT

License

Contributors

Contributors

Made by Team Seagull