{"id":25188695,"url":"https://github.com/learnathon-by-geeky-solutions/seagull","last_synced_at":"2025-06-30T23:37:20.824Z","repository":{"id":269690460,"uuid":"908165712","full_name":"Learnathon-By-Geeky-Solutions/seagull","owner":"Learnathon-By-Geeky-Solutions","description":"Repository for team Seagull","archived":false,"fork":false,"pushed_at":"2025-04-24T19:44:41.000Z","size":19049,"stargazers_count":2,"open_issues_count":19,"forks_count":2,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-04-24T20:39:24.670Z","etag":null,"topics":["django","djangorestframework","postgresql","react","simplejwt"],"latest_commit_sha":null,"homepage":"https://seagull-lms.netlify.app/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Learnathon-By-Geeky-Solutions.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-12-25T10:17:17.000Z","updated_at":"2025-04-24T08:28:59.000Z","dependencies_parsed_at":"2025-01-18T14:45:06.694Z","dependency_job_id":"275c8217-7c13-466f-8159-f5b0cf95baae","html_url":"https://github.com/Learnathon-By-Geeky-Solutions/seagull","commit_stats":null,"previous_names":["learnathon-by-geeky-solutions/seagull"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/Learnathon-By-Geeky-Solutions/seagull","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Learnathon-By-Geeky-Solutions%2Fseagull","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Learnathon-By-Geeky-Solutions%2Fseagull/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Learnathon-By-Geeky-Solutions%2Fseagull/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Learnathon-By-Geeky-Solutions%2Fseagull/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Learnathon-By-Geeky-Solutions","download_url":"https://codeload.github.com/Learnathon-By-Geeky-Solutions/seagull/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Learnathon-By-Geeky-Solutions%2Fseagull/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262869372,"owners_count":23377279,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["django","djangorestframework","postgresql","react","simplejwt"],"created_at":"2025-02-09T20:29:48.336Z","updated_at":"2025-06-30T23:37:20.813Z","avatar_url":"https://github.com/Learnathon-By-Geeky-Solutions.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align =\"center\"\u003e\n\u003cimg src=\"assets/logo.png\" alt=\"KUETx\" width=\"150\" /\u003e\n\u003c/div\u003e\n\n**KUETx - Shaping Tomorrow's Mind with Today's Tech**\n\nKUETx 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.\n\n## Tech Stack\n\n[![React](https://img.shields.io/badge/REACT-20232A?style=for-the-badge\u0026logo=react\u0026logoColor=61DAFB)](https://reactjs.org)\n[![Vite](https://img.shields.io/badge/VITE-646CFF?style=for-the-badge\u0026logo=vite\u0026logoColor=white)](https://vitejs.dev)\n[![Tailwind CSS](https://img.shields.io/badge/TAILWIND%20CSS-38B2AC?style=for-the-badge\u0026logo=tailwind-css\u0026logoColor=white)](https://tailwindcss.com)\n[![Django](https://img.shields.io/badge/DJANGO-092E20?style=for-the-badge\u0026logo=django\u0026logoColor=white)](https://www.djangoproject.com)\n[![Python](https://img.shields.io/badge/PYTHON-3776AB?style=for-the-badge\u0026logo=python\u0026logoColor=white)](https://www.python.org)\n[![PostgreSQL](https://img.shields.io/badge/POSTGRESQL-336791?style=for-the-badge\u0026logo=postgresql\u0026logoColor=white)](https://www.postgresql.org)\n[![Git](https://img.shields.io/badge/GIT-F05032?style=for-the-badge\u0026logo=git\u0026logoColor=white)](https://git-scm.com)\n[![Django REST](https://img.shields.io/badge/DJANGO%20REST-092E20?style=for-the-badge\u0026logo=django\u0026logoColor=white)](https://www.django-rest-framework.org)\n[![Hugging Face](https://img.shields.io/badge/HUGGING%20FACE-FF6B00?style=for-the-badge\u0026logo=huggingface\u0026logoColor=white)](https://huggingface.co)\n\n## Code Quality\n\n[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=Learnathon-By-Geeky-Solutions_seagull\u0026metric=alert_status)](https://sonarcloud.io/summary/new_code?id=Learnathon-By-Geeky-Solutions_seagull)\n[![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=Learnathon-By-Geeky-Solutions_seagull\u0026metric=sqale_rating)](https://sonarcloud.io/summary/new_code?id=Learnathon-By-Geeky-Solutions_seagull)\n[![Reliability Rating](https://sonarcloud.io/api/project_badges/measure?project=Learnathon-By-Geeky-Solutions_seagull\u0026metric=reliability_rating)](https://sonarcloud.io/summary/new_code?id=Learnathon-By-Geeky-Solutions_seagull)\n[![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=Learnathon-By-Geeky-Solutions_seagull\u0026metric=security_rating)](https://sonarcloud.io/summary/new_code?id=Learnathon-By-Geeky-Solutions_seagull)\n[![Code Smells](https://sonarcloud.io/api/project_badges/measure?project=Learnathon-By-Geeky-Solutions_seagull\u0026metric=code_smells)](https://sonarcloud.io/summary/new_code?id=Learnathon-By-Geeky-Solutions_seagull)\n[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=Learnathon-By-Geeky-Solutions_seagull\u0026metric=coverage)](https://sonarcloud.io/summary/new_code?id=Learnathon-By-Geeky-Solutions_seagull)\n\n## Project Resources\n\n- [Wiki](https://github.com/Learnathon-By-Geeky-Solutions/seagull/wiki) — Full project documentation\n- [Project Board](https://github.com/orgs/Learnathon-By-Geeky-Solutions/projects/112) — Tasks and progress tracking\n- [API Docs](https://seagull-production.up.railway.app/api/schema/swagger-ui/) — API endpoints and usage (replace with actual link)\n- [Report Issues](https://github.com/Learnathon-By-Geeky-Solutions/seagull/issues) — Bug reports and feature requests\n- [Devlog](https://seagull-production.up.railway.app/#devlog) — Track our development journey.\n\n## Table of Contents\n\n- [Project Resources](#project-resources)\n- [Code Quality](#code-quality)\n- [Live Demo](#live-demo)\n- [API Documentation](#api-documentation)\n- [Team](#team)\n- [Features](#features)\n- [Tech Stack](#tech-stack)\n- [System Architecture](#system-architecture)\n- [Entity-Relationship Diagram](#entity-relationship-diagram)\n- [Project Directory Structure](#project-directory-structure)\n- [Getting Started](#getting-started)\n- [Operational Flow](#operational-flow)\n- [Contributing](#contributing)\n- [License](#license)\n\n## Live Demo\n\n\u003cp\u003e\n  \u003ca href=\"https://seagull-lms.netlify.app/\" target=\"_blank\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Frontend-Live-blue?style=for-the-badge\u0026logo=react\" alt=\"Frontend Live Demo\"/\u003e\n  \u003c/a\u003e\n  \u0026nbsp;\n  \u003ca href=\"https://seagull-production.up.railway.app/\" target=\"_blank\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Backend-Live-green?style=for-the-badge\u0026logo=django\" alt=\"Backend Live Demo\"/\u003e\n  \u003c/a\u003e\n  \n\u003c/p\u003e\n\n## API Documentation\n\nExplore our RESTful API with interactive docs powered by drf-spectacular:\n\n[![KUETx](https://img.shields.io/badge/Swagger-85EA2D?style=for-the-badge\u0026logo=swagger\u0026logoColor=black)](https://seagull-production.up.railway.app/api/schema/swagger-ui/)\n\n## Team\n\nMeet the passionate developers behind **KUETx**:\n\n| Role      | Name \u0026 GitHub Profile                               |\n| --------- | --------------------------------------------------- |\n| Team Lead | \u003ca href=\"https://github.com/ImamIfti056\" target=\"_blank\"\u003eImamul Islam Ifti\u003c/a\u003e |\n| Developer | \u003ca href=\"https://github.com/yuusaif\" target=\"_blank\"\u003eSaif Alvi\u003c/a\u003e |\n| Developer | \u003ca href=\"https://github.com/SyedSadi\" target=\"_blank\"\u003eSyed Nazib Sadi\u003c/a\u003e |\n\n### Our Guide \u0026 Mentor\n\nA heartfelt appreciation to **[Maahad Mahmud](https://github.com/maahad767)**\n\n## Features\n\n### Course Interaction\n\n- **Browse Available Courses**  \n  Students can explore and enroll in courses based on topics, discovering relevant learning paths with ease.\n\n- **OTP Verification for Course Enrollment**  \n  A one-time password (OTP) is generated and shown during enrollment. The user must correctly enter the OTP to enroll in a course.\n\n- **Invoice Download**\n  An invoice pdf file will be downloaded automatically after course enrollment  \n\n- **Watch Lessons**  \n  Access embedded YouTube videos for engaging, high-quality course content delivered directly in the platform.\n\n- **Download Materials**  \n  Get access to PDFs and supplementary resources for offline learning, enhancing study flexibility.\n\n- **Instructor Course Management**  \n  Instructors can create, update, and delete their courses, tailoring content to meet student needs.\n\n- **Course Content Management**  \n  Instructors can manage course materials, including lessons, PDFs, and quizzes, ensuring up-to-date and organized content.\n\n---\n\n### Interactive Quizzes \u0026 Evaluation\n\n- **Timed Quiz Sessions**  \n  Students take quizzes under time constraints, simulating real test conditions.\n\n- **Auto-Graded Scoring**  \n  Quiz submissions are automatically evaluated with instant feedback.\n\n- **Detailed Result Breakdown**  \n  Students receive question-wise analysis, showing correct answers.\n\n- **Progress Tracking**  \n  Quiz performance is recorded and reflected in the student's profile\n\n- **Re-attempts \u0026 Practice**  \n  Instructors can allow multiple attempts for practice and learning reinforcement.\n\n---\n\n### Interactive Discussion Forum\n\n- **Post Creation and Management**  \n  Users can create, edit, and delete their own posts.\n\n- **Toxicity Detection**  \n  Posts are scanned in real-time using Hugging Face’s `unitary/toxic-bert` to prevent harmful or offensive content.\n\n- **Tagging System**  \n  Categorize posts with tags (e.g., \"Python\", \"Django\") for easy discovery and filtering of relevant topics.\n\n- **Nested Comments**  \n  Engage in threaded, hierarchical comment discussions, powered by MPTT for seamless reply chains.\n\n- **Upvote/Downvote System**  \n  Users can upvote or downvote posts to highlight quality content, with a vote score calculated as upvotes minus downvotes.\n\n- **Post Sorting Options**  \n  Filter and sort posts by tags, recent activity, or most voted all-time.\n\n- **User Authentication**  \n  Secure registration and login ensure personalized interactions with posts, comments, and votes.\n\n---\n\n### Dashboards \u0026 Analytics\n\nInsightful data visualization for both learners and instructors to monitor performance and progress.\n\n---\n\n### Admin Dashboard\n\n- **Course and Quiz Management**  \n  Admins can add, edit, and remove courses and quizzes, ensuring high-quality educational content.\n\n- **Platform Analytics**  \n  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).\n\n- **Forum Moderation**  \n  Admins have delete access to all forum posts, maintaining a safe and constructive community environment.\n\n### Secure Authentication\n\nModern JWT-based authentication flow for registration, login, and protected APIs.\n\n## Tech Stack\n\n### Frontend\n\n- **React** ⚛️  \n  Builds a dynamic, component-based UI for seamless course, quiz and forum interactions.\n- **Tailwind CSS** 🎨  \n  Powers the responsive, modern design with a teal/blue aesthetic for a vibrant user experience.\n\n### Backend\n\n- **Django** 🐍  \n  Drives robust server-side logic for course management, quiz analysis, forum features, and secure authentication.\n- **Django REST Framework** 🌐  \n  Provides scalable RESTful APIs for efficient frontend-backend communication.\n- **Hugging Face `unitary/toxic-bert`** 🤖  \n  Enables AI-powered toxicity detection to maintain a safe and respectful forum environment.\n\n### Infrastructure\n\n- **PostgreSQL** 🗄️  \n  Stores course, user, quiz and forum data with reliable, efficient querying.\n- **ImageBB** 🖼️  \n  Host course images for fast, reliable media delivery in learning materials.\n- **CI/CD** 🚀  \n  Automates testing and deployment pipelines for consistent, rapid updates.\n\n## System Architecture\n\n\u003e The Diagram shows how users interact through the front end with DRF APIs for different modules, including courses, quizzes, forums, and authentication.\n\n\u003cimg src=\"assets/system_arch.png\" alt=\"System Architecture\" width=\"600\" /\u003e\n\n## Entity-Relationship Diagram\n\nHere’s an overview of the system’s data structure:\n\n![ER Diagram](assets/graphviz.png)\n\n## Project Directory Structure\n\nHere’s the directory structure of the **Seagull LMS** project:\n\n```\nseagull\n├── frontend\n│   ├── public\n│   │   └── assets\n│   ├── src\n│   │   ├── assets\n│   │   ├── components\n│   │   │   ├── admin\n│   │   │   ├── courses\n│   │   │   ├── forum\n│   │   │   ├── landingpage\n│   │   │   ├── profile\n│   │   │   ├── quiz\n│   │   │   └── shared\n│   │   ├── pages\n│   │   ├── services\n│   │   └── context\n├── server\n│   ├── requirements.txt\n│   └── backend\n│       ├── ai_utils\n│       ├── course\n│       ├── quiz\n│       ├── forum\n│       ├── user\n├── README.md\n├── LICENSE\n└── .github\n    └── workflows\n```\n\n## Getting Started\n\n### 🛠️ Prerequisites\n\n- **Python 3.8+**: [Download here](https://www.python.org/downloads/)\n- **Node.js 14+**: [Download here](https://nodejs.org/)\n- **Git**: [Download here](https://git-scm.com/)\n- **PostgreSQL**: [Download here](https://www.postgresql.org/download/)\n\nMake sure these are installed before proceeding.\n\n**Clone the repository:**\n\n```bash\ngit clone https://github.com/your-username/seagull.git\ncd seagull\n```\n\n### 🧩 Frontend Setup\n\n```bash\ncd frontend\nnpm install       # install dependencies\nnpm run dev       # run the app at localhost\n```\n\n### 🐍 Backend Setup\n\n```bash\ncd server\npython -m venv env       # create virtual environment\nsource env/bin/activate  # activate environment (Linux/macOS)\nenv\\Scripts\\activate     # for Windows\n\npip install -r requirements.txt\ncd backend\npython manage.py migrate\npython manage.py createsuperuser  # follow prompts\npython manage.py runserver\n```\n### 🔑 Environment Setup\n\nYou will need to configure the `.env` files for both the **backend** and **frontend**.\n\n#### Backend (.env) Setup\n\n1. Go to the `server/backend` folder.\n2. Create a `.env` file if it doesn’t exist.\n3. Add your **Django** and **PostgreSQL** environment variables, like so:\n\n```env\nDEBUG=True\nSECRET_KEY=your-secret-key\nDB_NAME=lms\nDB_USER=your-db-username\nDB_PASSWORD=your-db-password\nDB_HOST=localhost\nDB_PORT=5432\n```\n#### Frontend (.env) Setup\n\n1. Go to the `frontend` folder.\n2. Create a `.env` file if it doesn’t exist.\n\n```env\nVITE_IMGBB_API_KEY=your-api-here\n```\n\n### Operational Flow\n\n1. **User Authentication**  \n   - Users can sign up or log in using JWT-based authentication.\n   - Admins have access to manage users and content.\n\n2. **Browse \u0026 Enroll in Courses**  \n   - Students can explore available courses.\n   - They can enroll in courses, view lessons, and participate in quizzes.\n\n3. **Course Management by Instructors**  \n   - Instructors can create, update, and delete their courses.\n   - They can upload lessons, quizzes, and other course materials.\n\n4. **Quiz Participation \u0026 Evaluation**  \n   - Students take quizzes, which are automatically graded.\n   - Quiz results are stored in student profiles.\n\n5. **Discussion Forum**  \n   - Students and instructors can create posts, comment, and engage in discussions.\n   - Posts are monitored for toxic content using AI (Hugging Face).\n\n6. **Admin Dashboard**  \n   - Admins can view platform analytics, manage courses, and moderate content.\n\n\n## Contributing\n\nWe welcome contributions! Here's how you can help:\n\n1. Fork this repository\n2. Create a new branch: `git checkout -b feature-name`\n3. Make your changes and commit: `git commit -m 'Add new feature'`\n4. Push to your fork: `git push origin feature-name`\n5. Submit a Pull Request\n\n\u003e 💡 For major changes, please open an issue first to discuss what you'd like to change.\n\n## License\n\nThis project is licensed under the MIT\n\n[![License](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)\n\n## Contributors\n\n[![Contributors](https://img.shields.io/badge/Contributors-3-green)](https://github.com/Learnathon-By-Geeky-Solutions/seagull/graphs/contributors)\n\n\u003cp align=\"center\"\u003eMade by Team Seagull\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flearnathon-by-geeky-solutions%2Fseagull","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flearnathon-by-geeky-solutions%2Fseagull","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flearnathon-by-geeky-solutions%2Fseagull/lists"}