Skip to content

gitsumanmandal/learning-management-system

Repository files navigation

Welcome to LMS by Suman M.

Pre-requisites before you start. You must have in your local machine -

  • node js
  • docker

How to run locally ?


Now you can see 3 folders. One lms-services for API & services, and other one lms-ui for front end, lms-migration for initial migration data.

To start DB server -

  • docker run -d -p 5001:27017 --name=lms_db mongo:latest
  • from learning-management-system folder run cd lms-migration
  • Run npm i
  • Run node index.js

To start lms-service

  • Open a new terminal, from learning-management-system folder run cd lms-services
  • Run npm i
    (.env is already comitted, so don't need to worry about that)
  • Run npm run start
  • Keep the terminal open

The services app is up and running on localhost:3000

To start lms-ui

  • Open a new terminal, from learning-management-system folder run cd lms-ui
  • Run npm i
    (.env variables are already attached to start command, so son't need to worry about that)
  • Run npm run dev
  • Keep the terminal open

The front-end app is up and running on localhost:3001

Now navigate to localhost:3001/sign-in and login with a student (example student credential - user: suman, password: Hello@123). You can check the all courses, enroll courses, you can enroll into course, then mark lessons learned, and see the progress (till this developed).

You can also check localhost:3000/api for OpenAPI Swagger Documentation.

Things covered

  • In Nest JS / Backend services, technical things which are covered -
    • Auth | JWT
    • Login | Bcrypt
    • Authenticated API | Auth Guard
    • Validation
    • Repository Pattern
    • Logger | In Built Logger
    • Exception Handling
    • Interceptor | for Response
    • Decorator | Public decorato written
  • In Next JS / Front End, technical things which are covered -
    • Sign In, Sign Up
    • Session
    • Token
    • Route
    • Lazy Loading
    • MUI (for ux)
    • React concepts like - useState, useContext, useNavigator, useNavigator, useEffect, provider etc

Scope of improvement

In backend mainly (not writting for front-end) -

  • More validation on business layer
  • Log on file level
  • More currated response interceptor
  • Better exception handling and write Exception filters

About

This is a learning management system platform demo

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published