{"id":29067032,"url":"https://github.com/gnaaruag/lms-app","last_synced_at":"2026-04-12T15:54:17.722Z","repository":{"id":219328373,"uuid":"739308839","full_name":"gnaaruag/lms-app","owner":"gnaaruag","description":"A learning Management System built on Node, Postgres","archived":false,"fork":false,"pushed_at":"2024-02-21T08:20:51.000Z","size":1399,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-27T10:11:25.951Z","etag":null,"topics":["ejs-express","expressjs","jest-test","nodejs","postgresql","sequelize"],"latest_commit_sha":null,"homepage":"https://lms-app-kl6p.onrender.com/","language":"EJS","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/gnaaruag.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,"zenodo":null}},"created_at":"2024-01-05T08:58:06.000Z","updated_at":"2025-06-14T20:32:43.000Z","dependencies_parsed_at":"2024-01-26T19:31:09.036Z","dependency_job_id":"6918ce40-9606-4c80-90aa-fb80dc66fa3a","html_url":"https://github.com/gnaaruag/lms-app","commit_stats":null,"previous_names":["gnaaruag/lms-project","gnaaruag/lms-app"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/gnaaruag/lms-app","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gnaaruag%2Flms-app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gnaaruag%2Flms-app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gnaaruag%2Flms-app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gnaaruag%2Flms-app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gnaaruag","download_url":"https://codeload.github.com/gnaaruag/lms-app/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gnaaruag%2Flms-app/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266237522,"owners_count":23897409,"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":["ejs-express","expressjs","jest-test","nodejs","postgresql","sequelize"],"created_at":"2025-06-27T10:10:11.631Z","updated_at":"2026-04-12T15:54:17.678Z","avatar_url":"https://github.com/gnaaruag.png","language":"EJS","funding_links":[],"categories":[],"sub_categories":[],"readme":"# lms-project\n\nThis is a Learning Management System project\n\nStudents can register for courses, and learn and complete courses.\n\nEducators can create a course and have students enrol in them\n\nEach Course has Chapters\n\nEach Chapter can have multiple Modules(smaller Sections in a Chapter)\n\nEach Module has pages which can be read by the user and marked as complete\n\nEach page can have content in it and along with it have code blocks, blockquotes, images, links etc.\n\n\n- [Installation](#installation)\n- [Features](#features)\n- [User Flow Diagram](#userflow)\n- [Database Schema](#database-schema)\n- [Technologies Used](#technologies-used)\n\n\n## Installation\n\nTo get started with this project\n1. Clone the repository:\n\n```\nhttps://github.com/gnaaruag/lms-project.git\n```\n\n2. Navigate to the project directory:\n\n```\ncd lms-project\n```\n\n3. Install dependencies:\n\n```\nnpm install\n```\n\n4. Set up the Database\n\n```\nnpx sequelize-cli db:migrate\n\n```\n\n5. Start the Application\n```\nnpm start\n```\n\n## Features\n\n#### User Authentication:\nUser registration and login.\nDifferentiation between student and educator accounts.\nPassword hashing for security.\n\n#### Course Management:\nCreation of courses by educators.\nDisplay of course details, including name, duration, and description.\n\n#### Chapter and Module Creation:\nAddition of chapters within a course.\nCreation of modules within each chapter.\n\n#### Page and Content Management:\nCreation of pages for modules.\nAddition of educational content to pages.\n\n#### Enrollment and Registration:\nStudents can enroll in courses.\nTracking of course enrollment status.\n\n#### Dashboard:\nDisplay of relevant information upon user login.\nOverview of enrolled courses for students.\nOverview of created courses for educators.\n\n#### Middleware for Access Control:\nImplementation of middleware to check user access levels.\nAuthorization checks for certain routes.\n\n#### Course Analytics:\nView analytics for each course.\nDisplay the number of students enrolled in each course.\n\n#### Password Update:\nAbility for users to update their passwords securely.\n\n#### Student Course Overview:\nPresentation of a student's enrolled courses with details.\nChapter Overview:\n\n#### Educator Analytics:\nAnalytics for educators to track the number of students enrolled in their courses.\n\n## Userflow\n\nBelow is a userflow diagram I sketched at the start of the project\n![image](https://github.com/gnaaruag/lms-project/assets/68043860/233075ae-6ca8-4cf2-a415-6e13d0cacdb1)\n\n## Database Schema\n\nBelow is the database Schema I have used\n![image](https://github.com/gnaaruag/lms-project/assets/68043860/02d5ac93-cad0-4a31-b250-2f5d63131015)\n\n## Technologies Used\n\n### Frontend\n\n##### HTML/CSS/JavaScript:\n- The core building blocks for the user interface and interactivity.\n\n##### Tailwind CSS:\n- A utility-first CSS framework used for styling components.\n\n##### EJS (Embedded JavaScript):\n- A template engine for rendering dynamic content on the server side.\n\n### Backend\n\n##### Node.js:\n- A JavaScript runtime used for building scalable network applications.\n\n##### Express.js:\n- A web application framework for Node.js, facilitating the creation of robust APIs and web applications.\n\n##### Passport.js:\n- A middleware for user authentication.\n\n##### Sequelize:\n- A promise-based Node.js ORM for PostgreSQL, MySQL, MariaDB, SQLite, and Microsoft SQL Server.\n\n### Database\n\n##### PostgreSQL:\nAn open-source relational database management system used to store application data.\n\n### Testing\n\n##### Jest:\n- A JavaScript testing framework for unit testing.\n\n#####  Supertest:\n- A library for HTTP assertions and testing HTTP servers.\n\n## Application Screenshots\n![Landing Page](https://github.com/gnaaruag/lms-project/assets/68043860/4b281ed0-d46f-4a13-a62b-76188a830583)\n![Student Dashboard](https://github.com/gnaaruag/lms-project/assets/68043860/dd6b5078-4ec8-4427-ab83-37a56c3058c4)\n![image](https://github.com/gnaaruag/lms-project/assets/68043860/cb5a6f92-b932-4eef-8511-6f94db1256f8)\n![image](https://github.com/gnaaruag/lms-project/assets/68043860/0051a823-3ce8-47c6-a151-7b422b906710)\n![image](https://github.com/gnaaruag/lms-project/assets/68043860/a5eb9a8e-0188-41cc-843b-2da027d7d411)\n![image](https://github.com/gnaaruag/lms-project/assets/68043860/2a3fe8cb-6d61-4bf0-925d-cdf064461c8c)\n![image](https://github.com/gnaaruag/lms-project/assets/68043860/6ea754b2-175b-4901-9ceb-1b6844337bfc)\n\n\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgnaaruag%2Flms-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgnaaruag%2Flms-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgnaaruag%2Flms-app/lists"}