Skip to content

gnaaruag/lms-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

53 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

lms-project

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.

Installation

To get started with this project

  1. Clone the repository:
https://github.com/gnaaruag/lms-project.git
  1. Navigate to the project directory:
cd lms-project
  1. Install dependencies:
npm install
  1. Set up the Database
npx sequelize-cli db:migrate

  1. Start the Application
npm start

Features

User Authentication:

User registration and login. Differentiation between student and educator accounts. Password hashing for security.

Course Management:

Creation of courses by educators. Display of course details, including name, duration, and description.

Chapter and Module Creation:

Addition of chapters within a course. Creation of modules within each chapter.

Page and Content Management:

Creation of pages for modules. Addition of educational content to pages.

Enrollment and Registration:

Students can enroll in courses. Tracking of course enrollment status.

Dashboard:

Display of relevant information upon user login. Overview of enrolled courses for students. Overview of created courses for educators.

Middleware for Access Control:

Implementation of middleware to check user access levels. Authorization checks for certain routes.

Course Analytics:

View analytics for each course. Display the number of students enrolled in each course.

Password Update:

Ability for users to update their passwords securely.

Student Course Overview:

Presentation of a student's enrolled courses with details. Chapter Overview:

Educator Analytics:

Analytics for educators to track the number of students enrolled in their courses.

Userflow

Below is a userflow diagram I sketched at the start of the project image

Database Schema

Below is the database Schema I have used image

Technologies Used

Frontend

HTML/CSS/JavaScript:
  • The core building blocks for the user interface and interactivity.
Tailwind CSS:
  • A utility-first CSS framework used for styling components.
EJS (Embedded JavaScript):
  • A template engine for rendering dynamic content on the server side.

Backend

Node.js:
  • A JavaScript runtime used for building scalable network applications.
Express.js:
  • A web application framework for Node.js, facilitating the creation of robust APIs and web applications.
Passport.js:
  • A middleware for user authentication.
Sequelize:
  • A promise-based Node.js ORM for PostgreSQL, MySQL, MariaDB, SQLite, and Microsoft SQL Server.

Database

PostgreSQL:

An open-source relational database management system used to store application data.

Testing

Jest:
  • A JavaScript testing framework for unit testing.
Supertest:
  • A library for HTTP assertions and testing HTTP servers.

Application Screenshots

Landing Page Student Dashboard image image image image image