Faculty of Graduate Studies and Research Master of Science in Information Technology
Faculty of Graduate Studies and Research Master of Science in Information Technology
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.
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 had a Scrum Team consisting of a Scrum Master, Product Owner and 3 Developers
comprising the Development Team.
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.
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.
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
Project Management
Workload Distribution
REST API(Filter Course Details by University ID,User ID,Course Fees),GET, POST, DELETE
1. Jira
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.
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 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
Sign up UI IN PROGRESS
Sign in UI DONE
Sign Up DONE
Sign In DONE
Sign up UI 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.
Documentation DONE
Registration DONE
DB Connection DONE
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.
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.
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.
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.
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.
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
Masters finders Database connection java class (Singleton pattern implemented) is shown as
follows
The following diagram shows Architecture flow of Spring Boot REST API Application.
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.
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.
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.
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.
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.
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!