An open API service indexing awesome lists of open source software.

https://github.com/learnathon-by-geeky-solutions/seagull

Repository for team Seagull
https://github.com/learnathon-by-geeky-solutions/seagull

django djangorestframework postgresql react simplejwt

Last synced: 12 months ago
JSON representation

Repository for team Seagull

Awesome Lists containing this project

README

          


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](https://img.shields.io/badge/REACT-20232A?style=for-the-badge&logo=react&logoColor=61DAFB)](https://reactjs.org)
[![Vite](https://img.shields.io/badge/VITE-646CFF?style=for-the-badge&logo=vite&logoColor=white)](https://vitejs.dev)
[![Tailwind CSS](https://img.shields.io/badge/TAILWIND%20CSS-38B2AC?style=for-the-badge&logo=tailwind-css&logoColor=white)](https://tailwindcss.com)
[![Django](https://img.shields.io/badge/DJANGO-092E20?style=for-the-badge&logo=django&logoColor=white)](https://www.djangoproject.com)
[![Python](https://img.shields.io/badge/PYTHON-3776AB?style=for-the-badge&logo=python&logoColor=white)](https://www.python.org)
[![PostgreSQL](https://img.shields.io/badge/POSTGRESQL-336791?style=for-the-badge&logo=postgresql&logoColor=white)](https://www.postgresql.org)
[![Git](https://img.shields.io/badge/GIT-F05032?style=for-the-badge&logo=git&logoColor=white)](https://git-scm.com)
[![Django REST](https://img.shields.io/badge/DJANGO%20REST-092E20?style=for-the-badge&logo=django&logoColor=white)](https://www.django-rest-framework.org)
[![Hugging Face](https://img.shields.io/badge/HUGGING%20FACE-FF6B00?style=for-the-badge&logo=huggingface&logoColor=white)](https://huggingface.co)

## Code Quality

[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=Learnathon-By-Geeky-Solutions_seagull&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=Learnathon-By-Geeky-Solutions_seagull)
[![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=Learnathon-By-Geeky-Solutions_seagull&metric=sqale_rating)](https://sonarcloud.io/summary/new_code?id=Learnathon-By-Geeky-Solutions_seagull)
[![Reliability Rating](https://sonarcloud.io/api/project_badges/measure?project=Learnathon-By-Geeky-Solutions_seagull&metric=reliability_rating)](https://sonarcloud.io/summary/new_code?id=Learnathon-By-Geeky-Solutions_seagull)
[![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=Learnathon-By-Geeky-Solutions_seagull&metric=security_rating)](https://sonarcloud.io/summary/new_code?id=Learnathon-By-Geeky-Solutions_seagull)
[![Code Smells](https://sonarcloud.io/api/project_badges/measure?project=Learnathon-By-Geeky-Solutions_seagull&metric=code_smells)](https://sonarcloud.io/summary/new_code?id=Learnathon-By-Geeky-Solutions_seagull)
[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=Learnathon-By-Geeky-Solutions_seagull&metric=coverage)](https://sonarcloud.io/summary/new_code?id=Learnathon-By-Geeky-Solutions_seagull)

## Project Resources

- [Wiki](https://github.com/Learnathon-By-Geeky-Solutions/seagull/wiki) — Full project documentation
- [Project Board](https://github.com/orgs/Learnathon-By-Geeky-Solutions/projects/112) — Tasks and progress tracking
- [API Docs](https://seagull-production.up.railway.app/api/schema/swagger-ui/) — API endpoints and usage (replace with actual link)
- [Report Issues](https://github.com/Learnathon-By-Geeky-Solutions/seagull/issues) — Bug reports and feature requests
- [Devlog](https://seagull-production.up.railway.app/#devlog) — Track our development journey.

## Table of Contents

- [Project Resources](#project-resources)
- [Code Quality](#code-quality)
- [Live Demo](#live-demo)
- [API Documentation](#api-documentation)
- [Team](#team)
- [Features](#features)
- [Tech Stack](#tech-stack)
- [System Architecture](#system-architecture)
- [Entity-Relationship Diagram](#entity-relationship-diagram)
- [Project Directory Structure](#project-directory-structure)
- [Getting Started](#getting-started)
- [Operational Flow](#operational-flow)
- [Contributing](#contributing)
- [License](#license)

## Live Demo



Frontend Live Demo

 

Backend Live Demo


## API Documentation

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

[![KUETx](https://img.shields.io/badge/Swagger-85EA2D?style=for-the-badge&logo=swagger&logoColor=black)](https://seagull-production.up.railway.app/api/schema/swagger-ui/)

## 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](https://github.com/maahad767)**

## 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](assets/graphviz.png)

## 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

- **Python 3.8+**: [Download here](https://www.python.org/downloads/)
- **Node.js 14+**: [Download here](https://nodejs.org/)
- **Git**: [Download here](https://git-scm.com/)
- **PostgreSQL**: [Download here](https://www.postgresql.org/download/)

Make sure these are installed before proceeding.

**Clone the repository:**

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

### 🧩 Frontend Setup

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

### 🐍 Backend Setup

```bash
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:

```env
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.

```env
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](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)

## Contributors

[![Contributors](https://img.shields.io/badge/Contributors-3-green)](https://github.com/Learnathon-By-Geeky-Solutions/seagull/graphs/contributors)

Made by Team Seagull