0% found this document useful (0 votes)
141 views

Faculty of Graduate Studies and Research Master of Science in Information Technology

The document provides details about a final report submitted for a Master's of Science in Information Technology program. It includes: - A table listing the names, registration numbers, and responsibilities of 5 students on the project team. - An introduction outlining the objective of creating a website to help students find suitable master's programs in Sri Lankan universities. - Software requirements including functional requirements like registration, user sign-in, data entry, and filtering. - Project management details like workload distribution among team members and tools used. - A sprint plan evaluating risks, contingency planning, and capacity for Sprint 2.

Uploaded by

Ayola Jayamaha
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
141 views

Faculty of Graduate Studies and Research Master of Science in Information Technology

The document provides details about a final report submitted for a Master's of Science in Information Technology program. It includes: - A table listing the names, registration numbers, and responsibilities of 5 students on the project team. - An introduction outlining the objective of creating a website to help students find suitable master's programs in Sri Lankan universities. - Software requirements including functional requirements like registration, user sign-in, data entry, and filtering. - Project management details like workload distribution among team members and tools used. - A sprint plan evaluating risks, contingency planning, and capacity for Sprint 2.

Uploaded by

Ayola Jayamaha
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 31

Faculty of Graduate Studies and Research

Master of Science in Information Technology


Final Report

Prepared For: Master’s Finder 2021

Prepared by: Group IT-B

Registration Number Name Responsibilities

MS21900754 Ayola Jayamaha Product Owner - Documentation,


Backlog

MS21914850 Tharaka Scrum Master - Documentation


Diyaguarachchi

MS21901676 Prabodha Manamperi Developer - Front End Developing

MS21914300 Dulanji Wijekoon Developer- Backend Developing


and DB Creating

MS20924478 S.M.Suhath Developer - REST API

Software Engineering Practices -IT5030 1


Table of Content

Introduction 2
Objective 2
Goals 2
Solution 3
Project Outline 3
Methodology 3
Software Requirements 4
Functional Requirements 4

Introduction

Objective

Our Objective is to cater for prospective Master’s Students to find their Best Fitted Master’s
Program to follow from the Government University Master’s Programs in Sri Lanka.

Goals

We need to provide a high secure, high efficient, Less Expensive, Highly Extensive, Modular
solution.

Software Engineering Practices -IT5030 2


Solution

A website that delivers Information about Masters Programs in Government Universities in Sri
Lanka. The Students can filter the Master’s Programs according to University, Subject Area, Cost,
Duration, Starting Date... etc. It facilitates the decision of selecting a suitable Master’s Program.

Project Outline

Our project is to facilitate easy searching and viewing of basic details of Masters Degree
Programs in Government Universities. In private Universities courses are well publicised. There
is ample advertising done by Private Universities. But Government Masters Degree Programs
are not that much given publicity. Some of the websites are not updated frequently. Therefore
Students tend to select the private sector over the government sector for Degree Programs. If
we could suggest a mechanism to Easily View / Filter / Select Master’s Programs of Government
Universities the number of students that choose Government Masters Degree Programs would
rise. Our aim is to come up with a web based solution to cater for easily selecting a suitable
Master’s Degree Program from the available Programs with filtering.

Methodology

We use the Agile Methodology for implementing the system.

We had a Scrum Team consisting of a Scrum Master, Product Owner and 3 Developers
comprising the Development Team.

We develop the system in sprints.

Software Engineering Practices -IT5030 3


Software Requirements

Functional Requirements

Primary Requirements

1. Registration

The Registration of Users of the system is needed and essential to the product. Here the
username will be the email and a password is also created.

2. User Sign in

User Sign in module is considered here. Users (University Administrators and Professors) need
to fill in their username and password. Also other details like email, contact number, Full name
needs to be entered to the system.

3. Data Entry

Entering data (Degree Programs Information) is done in this section. Universities and Professors
fill these details in the system. The data is saved in the database and retrieved when needed.
The title, content of the course, time duration, starting date, University and course fees are
given to the users. The Information on Degree Programs are filtered as required by the user. As
per the users preferences filtering is done and the specific degree program is chosen
accordingly.

4. Filtration

The Information on Degree Programs are filtered as required by the user. As per the users
preferences filtering is done and the specific degree program is chosen accordingly.

Software Engineering Practices -IT5030 4


Secondary Requirements

1. Provide emailing facility to Professors of the relevant Research Interest

There should be an option to email the respective Professor of a specific research area. The
student should be given the facility to contact the Professor through email.

2. Session Timeouts

There needs to be a time out for the sessions. If inactive for a period of time the session needs
to be signed out for security reasons.

3. RESTful Web Service

A RESTful Web Service provides the data from the database to the UI. Also the data is provided
for third party web applications and mobile applications that use this data to make useful
applications regarding Degree Programs. There is a Payment Scheme that the user needs to go
through in order to use the web services. The payment gateway will be a future addition to the
system.

Non-Functional Requirements

1. Efficiency

The product needs to be efficient. It needs to cater for the user's actions fast. The time delays
need to be minimum.

2. Reliability

The product needs to be reliable. The functionality of the system needs to be well defined and
well addressed in the product. The results of the system need to be correct at all times.

3. Usability

Software Engineering Practices -IT5030 5


The Usability of the system needs to be high. Even the users with minimum knowledge in IT
need to be able to use the system well.

Project Management

Workload Distribution

1. Ayola Jayamaha -Product Owner

Project Proposal, Backlog, Final Report

2. Prabodha Manamperi -Developer UI

Course Details, Home Page, Search, Filtering

3. Tharaka Diyaguarachchi -Scrum Master

Holding Project Meetings, Sprint Reports, Documentation

4. Dulangi Wijekoon - Developer BackEnd

Software Engineering Practices -IT5030 6


ER Diagram, MySQL Database, Configuration and Integration

5. S.M.Suhath - Developer REST API

REST API(Filter Course Details by University ID,User ID,Course Fees),GET, POST, DELETE

Configuration with MySQL Database.

Postman API Platform

Project Management Tools

1. Jira

Software Engineering Practices -IT5030 7


2. Microsoft Project Management

We have used Microsoft Project Management Software for our project management needs. As
mentioned in [1], Microsoft Project (MSP) is a project management software made for project
managers so they can control their projects. Depending on your plan, Microsoft Project lets you
plan projects, assign tasks, manage resources, make reports and more. It offers a full plate of
services and was quick to dominate the project management software field when it was first
introduced.
Microsoft Project is part of the larger suite of Microsoft Office products, yet it is not packaged
with other Office software, such as Word, Excel and Outlook. There are two editions available,
the standard and professional versions. Both share a unique file format, called MPP.
It was first commercially available in 1984. The first version for Windows was released in 1990.
The next year, Microsoft created a Mac version of Project, but it was quickly discontinued and
by 1994 was no longer being sold to the public.

Software Engineering Practices -IT5030 8


Sprint Plan

Below is given a diagram of the Sprint Plan in Sprint 2.There we have evaluated the risks and
done contingency planning. The Sprint Planning Checklist is given. The potential risks have
been identified and tackled. The Capacity Planning was also estimated.

Sprint 2 Plan Document

Sprint 1
In the first sprint we planned 7 items and at the end of the sprint we were unable to complete 1 item.
Our expected project timeline didn’t go as per the plan we created. Because of that we had to move one
task to the next sprint.
Writing the Product Backlog DONE

ER diagram DONE

Creating the Database DONE

Project setup DONE

Sign up UI IN PROGRESS

Sign in UI DONE

Creating a demo REST API DONE

Writing the Sprint Report 1 DONE

Software Engineering Practices -IT5030 9


Sprint 2
In the second sprint we put extra effort to complete our items. Here we had 8 items and we were able to
complete the all 8 items within the sprint 2. In Sprint 1 we had to reduce the number of tasks to fit the
time schedule. But with undertaking extra work, we get back on track with all the tasks assigned to
Sprint 2 and the additional task from Sprint 1.

Updating the Product Backlog DONE

Sign Up DONE

Sign In DONE

Updating database DONE

Sign up UI DONE

Main page DONE

Test REST API method DONE

Writing the Sprint Report 2 DONE

Sprint 3
In Sprint 3, some tasks were held blocked due to the dependency of them on the REST Service.
Therefore the tasks were not completed on time.Instead, we put in extra effort to complete the tasks.

Updating the Product Backlog DONE

Documentation DONE

Filtration (Backend) In progress

Filtration (Frontend) in progress

Form functionality in progress

Registration DONE

DB Connection DONE

Configure API DB using API DONE

Making API Connection IN progress

Writing the Sprint Report 3 DONE

Software Engineering Practices -IT5030 10


Designing Methodology - Agile methodology

SoftwareArchitecture Diagram
Above is given the Software Architectural Diagram of Master’s Finders Web Application. It has
the GUI, Controller, DB and the REST API.

The Client can be a University Professor, Prospective Master’s Student or the University
Administration. They need to Register first to use the System.

After Sign-up they can use the details to login to the system. University administration or the
professors can enter their Master’s Program details to the system. For Registration a payment
gateway can be implemented and a payment can be done(out of our scope).

The Prospective Master’s Students can view the Master's degrees details and filter them
accordingly. They can use these details to easily select a Degree of their choice.

The RESTful Web service provides a client (mobile app or web app) application the details of
Master’s Degree Programs. A payment can be done prior to getting these details. A Payment
Gateway is included to facilitate this.

This can be extended to other Post Graduate Courses like pHDs. Since our product is modular
this can be easily done.

Software Engineering Practices -IT5030 11


Masters Finders Web project is developed according to agile methodology. In this developing
time period, we developed our web project into three sprint parts. In the first part, we
developed our project Database and Sign in and Sign Up front end development and showed to
our group members, according to their suggestion about the development, start furthermore
developing the second sprint. In the second sprint, we decided to plan our frontend homepages
development and course registration and it also showed our group members and gathered their
feedback as the first sprint. Then next we start the sprint three development. In the last sprint,
we developed our backend and front end side filtration part.

Frontend Developing
On the front end, the basic structure was done by using HTML and CSS, via a Bootstrap
framework.

HTML (HyperText Markup Language): HTML is the standard markup language for creating Web
pages. It describes the structure of a Web page and it consists of a series of elements. Its
elements tell the browser how to display the content.

CSS (Cascading Style Sheets): describes how HTML elements are to be displayed on the screen
And also It can control the layout of multiple web pages all at once. Also, external stylesheets
are stored in CSS files

Bootstrap: is the most popular CSS framework for developing responsive and mobile-first
websites.

SCSS(Syntactically Awesome Stylesheet): is the superset of CSS. SCSS is the more advanced
version of CSS.SCSS has a file extension of .scss.

Software Engineering Practices -IT5030 12


One of SCSS desifning

Software Engineering Practices -IT5030 13


Also JSTL core tag library was used for session management in the front end

Software Engineering Practices -IT5030 14


Frontend design using HTML and CSS

Front end backend connection was made by using the JSON object and the data was shown by
javaScript.

JSON (JavaScript Object Notation): is a lightweight format for storing and transporting data.
And also it is often used when data is sent from a server to a web page.

JavaScript is the Programming Language to update and change both HTML and CSS. Also, it can
calculate, manipulate and validate data.

Software Engineering Practices -IT5030 15


One of Javascript part for backed data hading

Backend Developing
The backend was developed by using java language and the database connection was created
by using HIbernate and POJOS classes. Backed do not use query language for data retrieval or
saving in the database. All are done by using Hibernate mapping as object-oriented. The final
output of backend data retrieving save into JSON object and sent to the front and also frontend
data come as request bind using parameters. Jsp and servlet formats are used for the data show
and data retrieving in the front end. The form data comes as the request binding data and its
accesses in the servlet using request.getparameter method.

JSON (JavaScript Object Notation): is a syntax for storing and exchanging data. It is text, written
with JavaScript object notation.

Software Engineering Practices -IT5030 16


Hibernate Framework
Hibernate is a Java framework that simplifies the development of Java application to interact
with the database. It is an open-source, lightweight, ORM (Object Relational Mapping) tool.
Hibernate implements the specifications of JPA (Java Persistence API) for data persistence.

ORM Tool
An ORM tool simplifies the data creation, data manipulation and data access. It is a
programming technique that maps the object to the data stored in the database.

The ORM tool internally uses the JDBC API to interact with the database.

Java Persistence API (JPA) is a Java specification that provides certain functionality and standard
to ORM tools. The javax. persistence package contains the JPA classes and interfaces.

Software Engineering Practices -IT5030 17


Hibernate Session use for data save and create a session

JSON object making

Masters finders Web Application was developed using netbeans IDE.

Software Engineering Practices -IT5030 18


Database Structure
Masters finders database was created by using MySQL workbench as follows. After creating DB
using the forward-engineer process the MySQL DB was made as SQL DB

Used Design Pattern - Singleton Design Pattern


To make the connection between the database and front end make the DB connection class and
its class was designed by using a singleton pattern.

Concept of Design Pattern Usage: For the whole project have one Database and all component
and users can access that DB only. It processes the same singleton Design pattern behaviour.

Singleton Pattern: This type of design pattern comes under creational patterns as this pattern
provides one of the best ways to create an object. This pattern involves a single class that is
responsible to create an object while making sure that only a single object gets created. This

Software Engineering Practices -IT5030 19


class provides a way to access its only object which can be accessed directly without the need to
instantiate the object of the class.

Masters finders Database connection java class (Singleton pattern implemented) is shown as
follows

Software Engineering Practices -IT5030 20


Technology Stack middle tier(REST API)
Programming Language Frameworks
Java Spring Boot(Spring Web),MySQL Driver,Spring
Data JPA

Figure 01 : functional diagram of CRUD Application in Spring boot

MVC Design pattern in Spring Boot REST API Application

The following diagram shows Architecture flow of Spring Boot REST API Application.

Software Engineering Practices -IT5030 21


Figure 02 : Spring Boot REST API MVC design Pattern architecture

Generally MVC Design pattern consists of Data Model, Presentation information and control information.
But in Spring Boot applications it’s slightly different. Additionally, a service layer is included in this
process. This service layer interconnects with the Java interface repository with extensions to the
JpaRepository. Consider in our application CourseDetails is one of the Entity or Data Model. All the
attributes in our database are defined in course_details table columns .The controller class gets all
course_deatils data in List data type format.The CourseDetailsService class contains all the operations
methods. The CourseDetailsRepository defined the custom queries and operations functions.

Software Engineering Practices -IT5030 22


REST Controller

Software Engineering Practices -IT5030 23


REST Entity

Course Details Entity

Software Engineering Practices -IT5030 24


REST Repository

Chrome extension Postman API for testing

REST API Source code : https://github.com/smsuhath/getCallRest.git

Software Engineering Practices -IT5030 25


Testing
We have done Developer Testing. We also used peer to peer testing methodology.

A Sample bug from the jira dashboard of the project

Unit Tests Assigned to Status

SignIn in UI Prabodha In Progress

POST call in REST Suhath Completed


The Sample status in Unit Testing

Above is a sample of the Unit Tests that were done in this project. Since we used the peer to
peer testing framework most of the existing bugs were caught. The bugs were caught in the Application
because two people did the testing for the same component.

Software Engineering Practices -IT5030 26


Deployment
Our Web Application is currently hosted on the local machine only. As a future work it could be
hosted on a server and accessed online. The REST API and the Database is run on the local machine. The
UI accesses the database and the REST API to view the data.

Steps for Installing the Web Application Master’s Finder

Step 1: Download Zip File of The Masters_Finder_Local_SetUp Step

2: UnZip the file

Step 3: Install Netbeans.(This project Runs only in netbeans)

Step 4: Open this project on netbeans

Step 5: Install MySQL and import Mysql DB Backup

Step 6: DB backup link as follows


https://drive.google.com/drive/folders/1DUALNMFUYNl3RI3_k-qoAqwPz9sFcWDK?usp=sharing

Software Engineering Practices -IT5030 27


Reflection

Ayola Jayamaha - MS21900754

During this project in the course module I was able to gain a lot of hands on experience in
software development. I learnt about teamwork, how to communicate with team members well and
how to lead the team. The skills that were honed during the project was communication, programming
skills and leadership. I learnt about the scrum methodology, industry best practices and how to apply
them.

I also learnt about devops, CI/CD, continuous integration and continuous delivery. Also how
modularity makes the code better in application of scrum. It was a challenge how to manage our time
between our personal, professional life and academics.

S.M.Suhath - MS20924478

During the project i worked as an API Developer.I am familiar with C# programming language and
it's framework.But in this project i learnt new framework called java spring boot API.Filtration part one of
the important function in our project.so i developed filtration function using Spring Boot REST API with
custom sql query.Also i gain knowledge about teamwork,sharing experience with others , agile
methodology and how its appling on software development industry. i tried to deploy API on AWS,its not
success.This part is a challenging part for me.

Prabodha Manamperi - MS21901676

During this project i worked as the UI developer, did the main user interfaces using HTML, CSS
and jquery. Learned about exact steps and methodologies in agile and the crucial part was the
teamwork. Going forward we had many challenges along with the project, though overall it was a
success.

Software Engineering Practices -IT5030 28


Dualanji Wijekoon - MS21914300

During Masters finders project development I learn how to work according to agile methodology.
and what are the members responsibility of the project and how to arrange sprint work in the right time.
Also, I am a backend developer and here I was able to gain my knowledge about some frontend aspects.
and also i was able to know the responsibilities of each member in agile methodology.

Tharaka Diyaguarachchi - MS21914850

During the Masters finder project I worked as Scrum master. I was able to organize every sprint
meeting.We were able to solve problems during the print meetings. Our team was struggling to make
their sprint commitments. Sprint after sprint, we’d go into planning, pick the stories that we believed we
could finish in the sprint, and get to the end with things not where we wanted them to be. We had some
failures but as a team we could face them strongly. I learnt about agile methodology, group work and
how to work with team members well. Finally I think we were able to complete this project in the right
way.

Thank you!

Software Engineering Practices -IT5030 29


References
[1] “Microsoft Project Management ”[Online] Available :
https://www.projectmanager.com/blog/what-is-microsoft-project [Accessed : 26-April-2021]

[2] ”Project Risk Management Tools” [Online] Available :


https://www.softwareadvice.com/resources/project-risk-management-tools [Accessed :
26-April-2021]

Software Engineering Practices -IT5030 30

You might also like