This is a Learning Management System project
Students can register for courses, and learn and complete courses.
Educators can create a course and have students enrol in them
Each Course has Chapters
Each Chapter can have multiple Modules(smaller Sections in a Chapter)
Each Module has pages which can be read by the user and marked as complete
Each page can have content in it and along with it have code blocks, blockquotes, images, links etc.
To get started with this project
- Clone the repository:
https://github.com/gnaaruag/lms-project.git
- Navigate to the project directory:
cd lms-project
- Install dependencies:
npm install
- Set up the Database
npx sequelize-cli db:migrate
- Start the Application
npm start
User registration and login. Differentiation between student and educator accounts. Password hashing for security.
Creation of courses by educators. Display of course details, including name, duration, and description.
Addition of chapters within a course. Creation of modules within each chapter.
Creation of pages for modules. Addition of educational content to pages.
Students can enroll in courses. Tracking of course enrollment status.
Display of relevant information upon user login. Overview of enrolled courses for students. Overview of created courses for educators.
Implementation of middleware to check user access levels. Authorization checks for certain routes.
View analytics for each course. Display the number of students enrolled in each course.
Ability for users to update their passwords securely.
Presentation of a student's enrolled courses with details. Chapter Overview:
Analytics for educators to track the number of students enrolled in their courses.
Below is a userflow diagram I sketched at the start of the project
Below is the database Schema I have used
- The core building blocks for the user interface and interactivity.
- A utility-first CSS framework used for styling components.
- A template engine for rendering dynamic content on the server side.
- A JavaScript runtime used for building scalable network applications.
- A web application framework for Node.js, facilitating the creation of robust APIs and web applications.
- A middleware for user authentication.
- A promise-based Node.js ORM for PostgreSQL, MySQL, MariaDB, SQLite, and Microsoft SQL Server.
An open-source relational database management system used to store application data.
- A JavaScript testing framework for unit testing.
- A library for HTTP assertions and testing HTTP servers.