Node, Express,Mongoose – Student Enrollment System

Student Enrollment System ( GitHub-Student Enrollment System )

This is the first project of my intern period at GT Nexus an Infor company. And it is a group project. I am working with a partner name Tharkana Kodagoda. So it is mainly focus about learning new technologies. Our project is basically about student enrollment system for university. It has several functions as well. We got our requirement from our mentor and he explained about it, that what we should actually do. And after that we started to design our project based on UML diagrams. We used Microsoft Visio 2013 to draw those designs. After that we decided to draw UI mockups for the whole system by using online tool call “”. There are three user types those are student, course coordinator and admin. We divided task for particular user type according to the user requirement. And we decide to make this project open source under MIT License.

Project Requirements

These are the requirement for the project. There are few optional requirements in the list. We didn’t design those requirements yet. Because we have to complete this project in 3 weeks of period. If we can finish the project before expected time, we willing to add those requirements as well.

  1. student registration for a course
  2. admin user
    1. view all details and add new users (course coordinators)
  3. course coordinator
    1. enroll a student
    2. view student details
    3. view student reports
    4. add grades
    5. view student attendance (optional)
  4. student
    1. view course schedule
    2. view grades
    3. comment on course module (forum, and optional)

After identify the requirements we started to design our project.


We started to design our project with UML diagrams. because UML diagrams provide better overview of requirement. And also we can design our implementation according to that.

After analyzing the requirement we identified three user types and what are the task for each user types. Then we draw the use case diagram

1.Usecase Diagram

And also we identify the activity work flow of the system. And we drew some activity diagrams for them.

2.Activity Register
3.Activity Enroll

And also we drew the class diagram for the system. Because then we can get clear idea about attributes and functions for relevant user types. And it was really helpful for us to design the database as well.

4.Class Diagram


And after designing the UML diagrams we had to design UI mocups for our system. We used online tool for these drawings call “” ,these are the images of our UI mocups.(if they are not clear follow this link- UI mocups  )


This is a simple login page each and every user types have to enter the system through the login page .


Register new student-


Student Details-

7.Student Overview

Student new enrollment-

8.Enroll New Course

Coordinator add subject-

9.Coordinator Add Subject

Coordinator accept student request-

Coordinator AcceptRequest
10.Coordinator Accept Request

Coordinator add students for particular subject manually –

11.Coordinator Add Student for Subject

Admin view-

12.Admin View


After completing design part we start our implementation part. We had to start our server side first because it will be really helpful for design the client side.And our mentor also told us to develop server first. So we started it.

All the technologies we used are new for us. because this project is just for learning new things.


  • Server side-NoedJS , ExpressJS, Mongoose, Passport
  • Database-MongoDB
  • Client Side- ReactJS, Javascript, Bootstrap

NodeJS-back-end platform / web framework. It is very faster than normal server languages like java EE, c# because it is a scripting language.

ExpressJS– Is a back-end web framework and it is basically does is enables us to create web applications easily  by providing a slightly simpler interface for creating your request endpoints. It provides lots of functions to build a web server, such as……Most of the time ExpressJS work with NodeJS.

$ npm install express --save

Mongoose- Is an object modeling package for Node that essentially works like an ORM (Object Relational Mapping)that you would see in other languages. Mongoose allows us to have access to the MongoDB commands for CRUD simply and easily.

$ npm install mongoose --save

var mongoose = require('mongoose');
var testSchema = new mongoose.Schema({

//add attributes 


MongoDB- Is a non relational database method. So it is easy to work with nodejs because is already has customized packages like mongoose to make easy CRUD operations.

* In next post I’ll discuss about the server side implementation and Database design in this system.