{"id":19599168,"url":"https://github.com/ragab0/learning-management-system-api","last_synced_at":"2026-04-09T18:12:22.988Z","repository":{"id":259029054,"uuid":"859485457","full_name":"ragab0/learning-management-system-api","owner":"ragab0","description":"A back-end API for learning-management-system built with nodejs and expressjs.","archived":false,"fork":false,"pushed_at":"2024-11-26T08:15:06.000Z","size":1441,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-09T07:50:38.656Z","etag":null,"topics":["expressjs","jwt","lms","lms-website","mongodb","mongoose","node","swag","tokens","web-based-application"],"latest_commit_sha":null,"homepage":"https://learning-management-system-api-9zyn.onrender.com/api/v1/documentation","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ragab0.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2024-09-18T18:35:33.000Z","updated_at":"2024-11-26T08:15:10.000Z","dependencies_parsed_at":"2024-11-19T07:22:37.569Z","dependency_job_id":"385e84ac-0e80-44f0-a41d-308ce60eb8dc","html_url":"https://github.com/ragab0/learning-management-system-api","commit_stats":null,"previous_names":["ragab0/learning-management-system-api"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ragab0%2Flearning-management-system-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ragab0%2Flearning-management-system-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ragab0%2Flearning-management-system-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ragab0%2Flearning-management-system-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ragab0","download_url":"https://codeload.github.com/ragab0/learning-management-system-api/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240876854,"owners_count":19871903,"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":["expressjs","jwt","lms","lms-website","mongodb","mongoose","node","swag","tokens","web-based-application"],"created_at":"2024-11-11T09:09:10.247Z","updated_at":"2026-04-09T18:12:22.945Z","avatar_url":"https://github.com/ragab0.png","language":"JavaScript","readme":"# 🎓 Learning Management System API\n\nA robust backend API for a Learning Management System built with Node.js and Express.js. The system facilitates online education by managing courses, students, mentors, and their interactions.\n\n## 📊 System Architecture\n\n### 🔄 Use Case Diagram\n\n![Use Case Diagram](./private/lms-use-cases-diagram-V02.svg)\n\n### 🔄 ER Diagram for Database Schema\n\n![ERD Diagram](./private/lms-class-V07.svg)\n\n## 🌟 Key Features\n\n### 👥 User Management\n\n- Multi-role authentication system (Students, Mentors, Admins)\n- JWT-based authentication with secure cookie handling\n- Role-based access control (RBAC)\n- Profile management for all user types\n\n### 📚 Course Management\n\n- Course creation and management by mentors\n- Course content organization with modules and lessons\n- Course status tracking (active, archived)\n\n### 👨‍🎓 Student Features\n\n- Course enrollment system\n- Progress tracking for enrolled courses\n- Course wishlist and cart functionality\n- Course archiving capabilities\n- Review and rating system\n\n### 👨‍🏫 Mentor Features\n\n- Course creation and management\n- Course analytics\n- YouTube playlist integration\n\n### 💬 Communication\n\n- Real-time chat functionality\n- Course-specific chat rooms between students and mentors\n- Comment threading for lessons\n\n## 🛠️ Technical Stack\n\n### 💻 Core Technologies\n\n- **Node.js \u0026 Express.js**: Server framework and runtime\n\n  - Route handling and middleware architecture\n  - Request/response processing\n  - Error handling middleware\n  - Async operations management\n\n- **MongoDB \u0026 Mongoose**: Database layer\n\n  - Schema validation and modeling\n  - Relationship management\n  - Query optimization\n  - Virtual fields and middleware\n\n- **Socket.IO**: Real-time communication\n\n### 🔒 Security Implementation\n\n- **bcryptjs**: Password hashing\n- **CORS**: Cross-origin security\n- **Cookie-parser**: Secure cookie handling\n- **Role-based middleware**: Access control\n- **Request rate limiting**: DDoS protection\n\n### 📂 Compression tools\n\n- **compression**\n\n## 🎥 YouTube Integration\n\nThe system features a robust YouTube playlist integration that allows mentors to:\n\n- Extract complete playlists or specific video ranges\n- Auto-generate course modules from playlists\n- Import video metadata (duration, thumbnails, titles)\n- Maintain playlist structure in course format\n\n## 📚 API Documentation\n\n### OpenAPI/Swagger Specification\n\n- **YAML-Based Documentation**\n  - Comprehensive endpoint documentation\n  - Request/response schemas\n  - Authentication specifications\n  - API versioning\n\n### Postman\n\n- Collection-based API testing\n- Environment management\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fragab0%2Flearning-management-system-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fragab0%2Flearning-management-system-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fragab0%2Flearning-management-system-api/lists"}