Learning Management System

Learning Management System

This project works as a learning management system where you can have below options, at the end of this post I have attached the GIT location for the source code.

  1. Creating a Student / Teacher
  2. Create exams
  3. Creating Quizzes and assign to Exams
  4. Assigning Exams to Students
  5. Managing Profile
  6. Facing Examinations

High Level Architecture of this

Above is the high level architecture of the system. Simple it deployed in tomcat, and the project is an executable jar file.

Technology selection of the project

I can give a brief technical background on what I used to develop this project.

  1. Spring boot / Java
  2. Bootstrap
  3. Javascript
  4. JQuery for Ajax calls
  5. MongoDB
  6. Thymeleaf

Diagrams for the project

Use Case for Teacher

Use Case for Student

Sequence Diagram

Database Design for the project

User Interfaces

UI for the Teacher
  • Login – Used Spring Security for authenticating the user and also authorization part is also handling by the database and Spring basic security mechanism.

  • Home

  • My Profile

  • Creating a user

  • Create Exam

  • Creating Quiz

  • Assign Exam

  • View Exams

UI for the Student
  • Login

  • My Profile

  • Access exams

  • View Result

Configuration Steps

Firstly you have to install Java 8 on your computer and set up MongoDB locally. After that, you can create a database called “lms_db” in MongoDB.

  1. use lms_db;
  2. db.createUser({user : “root”, pwd : “12345”, roles : [{role : “readWrite”, db : “lms_db”}]});
  3. ./mongod –auth –dbpath ~/Mongodata/
  4. ./mongo localhost/lms_db -u ‘root’ -p ‘12345’;
  5. Then insert a teacher to db creating a user collection.  – db.User.insert({“email” : “rajithabhanuka1@gmail.com”, “password”: “123”, “role”: “TEACHER”, “regdate” : “2020-06-05”});
  6. After that you can create new users and exams and assign them to students.


  • With the given time frame I could not be able to handle the errors.
  • Maximum answer selection count is 5 (e.g your question only has  5 answers and student should select only one option)

Reference from my site


Location for GIT