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
- Host: GitHub
- URL: https://github.com/learnathon-by-geeky-solutions/seagull
- Owner: Learnathon-By-Geeky-Solutions
- License: mit
- Created: 2024-12-25T10:17:17.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-04-24T19:44:41.000Z (about 1 year ago)
- Last Synced: 2025-04-24T20:39:24.670Z (about 1 year ago)
- Topics: django, djangorestframework, postgresql, react, simplejwt
- Language: JavaScript
- Homepage: https://seagull-lms.netlify.app/
- Size: 18.2 MB
- Stars: 2
- Watchers: 0
- Forks: 2
- Open Issues: 19
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
**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
[](https://reactjs.org)
[](https://vitejs.dev)
[](https://tailwindcss.com)
[](https://www.djangoproject.com)
[](https://www.python.org)
[](https://www.postgresql.org)
[](https://git-scm.com)
[](https://www.django-rest-framework.org)
[](https://huggingface.co)
## Code Quality
[](https://sonarcloud.io/summary/new_code?id=Learnathon-By-Geeky-Solutions_seagull)
[](https://sonarcloud.io/summary/new_code?id=Learnathon-By-Geeky-Solutions_seagull)
[](https://sonarcloud.io/summary/new_code?id=Learnathon-By-Geeky-Solutions_seagull)
[](https://sonarcloud.io/summary/new_code?id=Learnathon-By-Geeky-Solutions_seagull)
[](https://sonarcloud.io/summary/new_code?id=Learnathon-By-Geeky-Solutions_seagull)
[](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
## API Documentation
Explore our RESTful API with interactive docs powered by drf-spectacular:
[](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.

## Entity-Relationship Diagram
Here’s an overview of the system’s data structure:

## 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)
## Contributors
[](https://github.com/Learnathon-By-Geeky-Solutions/seagull/graphs/contributors)
Made by Team Seagull