Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
151 views47 pages

Assignment 1 Front Sheet: Qualification BTEC Level 5 HND Diploma in Business

Download as pdf or txt
Download as pdf or txt
Download as pdf or txt
You are on page 1/ 47

ASSIGNMENT 1 FRONT SHEET

Qualification BTEC Level 5 HND Diploma in Business

Unit number and title Unit 30: Application Development

Submission date 14/10/2021 Date Received 1st submission

Re-submission Date Date Received 2nd submission

Student Name Do Duc Tai Student ID GCH190834

Class GCH0804 Assessor name Do Quoc Binh

Student declaration

I certify that the assignment submission is entirely my own work and I fully understand the consequences of plagiarism. I understand that
making a false declaration is a form of malpractice.

Student’s signature

Grading grid

P1 P2 P3 M1 M2 D1

1|Page
 Summative Feedback:  Resubmission Feedback:

Grade: Assessor Signature: Date:


Internal Verifier’s Comments:

Signature & Date:

2|Page
Contents
CONTENTS .................................................................................................................................................................3
LIST OF TABLES .......................................................................................................................................................5
LIST OF FIGURES .....................................................................................................................................................5
SOFTWARE REQUIREMENTS SPECIFICATIONS AND SOFTWARE DESIGN ..........................................6
REVISIONS .................................................................................................................................................................7
1. INTRODUCTION (P1) ...........................................................................................................................................7
1.1 DOCUMENT PURPOSE ....................................................................................................................................7
1.2 PRODUCT SCOPE............................................................................................................................................7
1.3 INTENDED AUDIENCE AND DOCUMENT OVERVIEW ........................................................................................7
1.3.1 Intended audience................................................................................................................................7
1.3.2 Document overview .............................................................................................................................8
1.4 DEFINITIONS, ACRONYMS AND ABBREVIATIONS ..........................................................................................9
1.5 REFERENCES AND ACKNOWLEDGMENTS .................................................................................................... 10
1.5.1 References ......................................................................................................................................... 10
1.5.2 Acknowledgments .............................................................................................................................. 10
2. OVERALL DESCRIPTION ................................................................................................................................. 10
2.1. PRODUCT OVERVIEW ........................................................................................................................................ 10
2.2. PRODUCT FUNCTIONALITY ............................................................................................................................... 11
2.3. DESIGN AND IMPLEMENTATION CONSTRAINTS ................................................................................................. 11
2.3.1. Hardware design constraints ................................................................................................................... 11
2.3.2. Software constraints ................................................................................................................................. 11
2.4. ASSUMPTIONS AND DEPENDENCIES .................................................................................................................. 12
3. SPECIFIC REQUIREMENTS ............................................................................................................................. 13
3.1 EXTERNAL INTERFACE REQUIREMENTS ............................................................................................................. 13
3.1.1 User Interfaces .......................................................................................................................................... 13
3.2 FUNCTIONAL REQUIREMENTS ............................................................................................................................ 16
3.2.1 Login page................................................................................................................................................. 16
3.2.2 Register page............................................................................................................................................. 16
3.2.3 Add, update, delete, view: ......................................................................................................................... 16
3.2.4 Searching/ reporting requirements: .......................................................................................................... 16
3.2.5 Database ................................................................................................................................................... 16
3.3 USE CASE MODEL .............................................................................................................................................. 17
3.3.1 Use Case ................................................................................................................................................... 18
4. RISK MANAGEMENT MATRIX ....................................................................................................................... 22
5. OTHER REQUIREMENTS ................................................................................................................................. 25
5.1 UI REQUIREMENTS ............................................................................................................................................ 25
5.2 PERFORMANCE REQUIREMENTS ......................................................................................................................... 25
5.3 SAFETY AND SECURITY REQUIREMENTS ............................................................................................................ 26
EVALUATION REPORT......................................................................................................................................... 26
CHAPTER 1: DESIGN TOOLS .............................................................................................................................. 26
I. TOOLS TO DESIGN UML AND USER INTERFACE .............................................................................................. 26
1. Visual Paradigm ........................................................................................................................................ 26
2. Draw.io ...................................................................................................................................................... 27

3|Page
II. SUITABLE TOOL FOR DESIGN UML AND USER INTERFACE .............................................................................. 27
CHAPTER 2: FRONT-END TECHNOLOGY STACK ........................................................................................ 28
I. PROGRAMMING LANGUAGE ............................................................................................................................ 28
JavaScript .......................................................................................................................................................... 28
II. HTML AND CSS ............................................................................................................................................. 29
III. CSS FRAMEWORK ....................................................................................................................................... 29
1. Bootstrap .................................................................................................................................................... 29
IV. JAVASCRIPT LIBRARY ................................................................................................................................. 30
jQuery ................................................................................................................................................................ 30
CHAPTER3: BACK-END TECHNOLOGY STACK............................................................................................ 30
I. PROGRAMING LANGUAGE ................................................................................................................................ 30
Suitable program will be used in the project ..................................................................................................... 31
II. OPERATING SYSTEM........................................................................................................................................ 31
III. WEB SERVER .............................................................................................................................................. 32
IV. DATABASE .................................................................................................................................................. 32
1. MySQL ....................................................................................................................................................... 32
2. MongoDB ................................................................................................................................................... 33
Suitable database will be used in the project ..................................................................................................... 34
V. HOSTING ......................................................................................................................................................... 35
VI. FRAMEWORK .............................................................................................................................................. 35
VII. THE WEB MODEL ....................................................................................................................................... 36
CHAPTER 4: TOOLS FOR SOURCE CONTROL MANAGEMENT ................................................................ 36
GITHUB ................................................................................................................................................................... 36
CHAPTER 5: SOFTWARE DEVELOPMENT MODELS ................................................................................... 37
1. WATERFALL MODEL ........................................................................................................................................ 37
2. V-MODEL ........................................................................................................................................................ 38
3. AGILE MODEL.................................................................................................................................................. 40
4. SCUM MODEL .................................................................................................................................................. 41
5. SUITABLE SOFTWARE DEVELOP MODEL FOR THE PROJECT AND EXPLAIN ......................................................... 44
CONCLUSION .......................................................................................................................................................... 45
REFERENCES .......................................................................................................................................................... 46

4|Page
List of Tables
Table 1: Definitions, Acronyms ..................................................................................................... 10
Table 2: Risk and solution ............................................................................................................. 25
Table 3: Advantages and Disadvantages of Waterfall model ....................................................... 38
Table 4-Advantages and Disadvantages of V-model .................................................................... 40
Table 5-Advantages and Disadvantages of Agile model ............................................................... 41
Table 6: Advantages and Disadvantages of Scrum model ............................................................ 44

List of Figures
Figure 1: Login page ...................................................................................................................... 13
Figure 2: Home page ..................................................................................................................... 14
Figure 3: View trainees page......................................................................................................... 14
Figure 4: Update profile page ....................................................................................................... 15
Figure 5: View Courses .................................................................................................................. 15
Figure 6-Use Case model .............................................................................................................. 17
Figure 7: MongoDB ....................................................................................................................... 34
Figure 8: MVC Model .................................................................................................................... 36
Figure 9: Waterfall Model ............................................................................................................. 37
Figure 10-V-model ........................................................................................................................ 39
Figure 11-Agile model ................................................................................................................... 40
Figure 12: Scrum Model ................................................................................................................ 42
Figure 13: Trello ............................................................................................................................ 45

5|Page
Software Requirements Specifications and Software
Design

Software Requirements
Specification

for

HR Management System
Version 1.0

Prepared by

Group Name: Group 1


Do Duc Tai GCH190834 taiddgch190834@fpt.edu.vn
Nguyen Thanh Hung GCH190704 hungntgch190704@fpt.edu.vn
Nguyen Thi Lan Anh GCH190601 anhntlgch190601@fpt.edu.vn
Dinh Huy Hoang GCH190440 hoangdhgch190440@fpt.edu.vn
Hoang Duong Ngoc Thao GCH190302 thaohdngch190302@fpt.edu.vn

Instructor: Do Quoc Binh

Course: Application Development

Date: 13/10/2021

6|Page
Revisions
Version Primary Author(s) Description of Version Date Completed
1.0.0 Do Duc Tai Information about the revision. This table does not 13/10/2021
need to be filled in whenever a document is
touched, only when the version is being upgraded.

1. INTRODUCTION (P1)
1.1 Document purpose
The document will provide an introduction explaining the purpose of this document. Its purpose
is to explicitly cite all the functions the project will perform. This section is the main document,
on which the design, source code and test plan all underpin their content. This document is used
to determine if the final delivered product delivers all it is claimed for. Customer Representatives,
Users, Software Engineers, Developers, and Instructors generally negotiate the content of this
document. Therefore, this document will describe in detail the usage of each role and in the
future can expand more functions, especially training for our FPT education system.

1.2 Product scope


To create a management and training website for my own FPT company. We provided several
key functions and roles, such as user accounts, managing trainers, managing course categories,
managing courses, and assigning courses to trainers and trainees... In conclusion, this system is
utilized just for FPT Education, and FPT Company personnel can use it as trainers, trainers,
trainees, and system administrators.

1.3 Intended audience and document overview


1.3.1 Intended audience
In the early stages of developing this project, the intended audience is an academic setting,
specifically the University of Greenwich. The project was created and completed step by step
with the mentor's help. As we said above, this solution is highly beneficial for administrators,
employees, trainers/teachers, and trainees/students in a university setting. There are three types
of objects in this document: user, developer, and mentor/professor.

7|Page
Object Description

- Target users: This document is used by administrators, staffs, trainers and trainees of FPT
Company in general and the University of Greenwich in particular. In order to use the
product and understand the features within, they must ensure that the document is
useful in detail for each task.
- Developer: This document was used by developers of project. They have to read and
understand project’s requirements and directions. In addition, they also need to extend
more features or remove duplicate tasks. Summary, they have to analyze the tools and
technologies for project to implement. Then, note them in report document in detail and
carefully for others read and use
- Mentor/Professor: Actually, they are who understand and got large experience in building
a project. Therefore, they will give instructions, suggestions that are very import for
improve product

1.3.2 Document overview


In general, the document will cover certain areas such as the personality features of the project's
user, device hardware, product data, and functional requirements. We'll go through everything
in depth below.

Each job and responsibility in the project, in particular, will have its own task. As a result, we will
offer and discuss them in depth below as functional requirements and assumptions made when
building the project's HR administration website. We also discuss and offer product needs, as
well as requirements for external interfaces.

To read this document, reader must be an officer, employee, or student in the FPT education
system. Reading the material step by step and taking notes, then conducting more research if
necessary. There will be no copying or bringing documents out of the organization.

8|Page
1.4 Definitions, Acronyms and Abbreviations
To be more clearly while reading document, we will provide a table includes definitions,
acronyms and abbreviations that we will use in document.

Acronyms Meaning Definition


ERD Entities Relationship Diagram The relationships of entity sets stored in a
database
MongoDB MongoDB A distributed database built for modern
application developers and for the cloud era
NodeJS NodeJS As an asynchronous event-driven JavaScript
runtime, NodeJS is designed to build scalable
network applications
Boostrap Boostrap Bootstrap is the most popular CSS
Framework for developing responsive and
mobile-first websites
UI User interface In the industrial design field of human-
computer interaction, a user interface (UI) is
the space where interactions between
humans and machines occur
UX User experience The process design teams use to create
products that provide meaningful and
relevant experiences to users
UML Unified Modeling Language A modeling language consisting of graphic
symbols that are object-oriented methods
use to design information systems quickly
Use case diagram Use case diagram A technique used to describe the functional
requirements
Class diagram Class diagram A class diagram is a type of static structure
diagram that describes the structure of a

9|Page
system by showing the system's classes, their
attributes, operations (or methods), and the
relationships among objects
MVC Model-View-Controller A software design pattern commonly used
for developing user interfaces that divide the
related program logic into three
interconnected elements
Table 1: Definitions, Acronyms

1.5 References and Acknowledgments


1.5.1 References
Because, we were built some application website the same as this project and we got enough
experience to implement. Therefore, we don’t use any documents or web address.

1.5.2 Acknowledgments
We had, however, gain some experience in the construction of this project. Nevertheless, this
project requires more features and large-scale expertise. Moreover, with the help of our
teacher's assistance. We worked on them one by one until we were finished. As a result, we
would want to express our gratitude to the instructors and our professors. Furthermore, during
a functioning project, each team member is always striving to fulfill their particular duty to the
best of their abilities. We also want to express our gratitude to the FPT education organization
for providing us with the opportunity to work on projects and for inspiring us to grow and create.

Our group has got the chance to learn, experience, and work together seriously and
professionally as a result of this project. This was a challenge for our team, also a learning
experience for all team members.

2. Overall Description
2.1. Product overview
The web was built for a variety of very good reasons, including providing consumers with
authentic experiences through a new interface, modern technology, and suitability for their

10 | P a g e
present needs. In addition, the new system will be enhanced with new features and
functionalities to improve the user experience. Staff and administrators will be able to manage
accounts, subjects, and courses more easily with the new system. Furthermore, the user interface
will be totally redesigned to reflect today's popular technology and usage requirements. It will
create a different place for people to work in when using the system, as well as decentralize work
when signing in.

2.2. Product Functionality


The four primary roles in this system, which is used by the university's human rights department,
are administrators, training personnel, the trainer, and the trainee. We also allow everyone to
use the unique characteristics of each position, resulting in a better overall system experience
this time.

 Admin: Users may add, update, search, remove, and allow staff/trainer accounts.
 Staff: Users may add, edit, view, remove, and search for categories, courses, topics,
accounts, and trainees'/staff's profiles.
 Trainer: Users may edit, browse, and search their profile, as well as see and search
subjects, according to the trainer.
 Trainee: Users can update, browse, and search the trainee's profile.

2.3. Design and Implementation Constraints


2.3.1. Hardware design constraints
The hardware system for our project meets the system requirements, as a minimum:

 Microsoft Window 8 or higher


 X86 Dual Core Professor or higher
 Minimum 2GB RAM
 Minimum 5GB free space

2.3.2. Software constraints


For the software system for our project will have to meet the following minimum requirements:

11 | P a g e
 NodeJS and MongoDB
 Use framework Bootstrap for the Front-end design
 Use Visual Studio Code to code for the project

2.4. Assumptions and Dependencies


The web browsers which’s version is too old will not support the most recent versions of
MongoDB, HTML, or NodeJS, causing the website to malfunction and fail to show the requested
form. As a result, the initial assumption is that the machine hosting the website will be able to
operate and utilize the most recent version of the most popular internet browser. Another
assumption is that the machine hosting the website has a display capable of displaying the
website's user-friendly interface. A computer with an old-fashioned 3x4 screen, for example, may
present unfavorable results for the user, resulting in the website's original shape being lost. The
final assumption is that the website will function similarly across various operating systems.
Because the site only does testing on Windows and MacOS computers. As a result, it's assumed
that it'll work fine on Linux, Ubuntu, and other similar operating systems. For dependencies, the
site depends on:

MongoDB Database: This database is based on SQL provided by Oracle Corporation, built to
support most of today's operating systems, such as Window and MacOS. The free version with
subscription, can be used for a good data flow but for a larger amount of data, the paid version
is too expensive for the current project.

NodeJS for Backend: NodeJS is a software framework for creating scalable internet applications,
particularly web servers. When used with Visual Studio Code, it is currently free of charge.
Furthermore, make it an excellent project option. Although it is developing several Fundamentals
Courses to generate additional revenue, it is unclear whether the framework will remain free in
the future.

HTML for User Interfaces: HTML is a markup language that is used to construct website user
interfaces. Because it's well-known and used on a lot of well-known websites, it's a safe pick for
a website's user interface. Additionally, if you want to give a nice user experience, it will be built

12 | P a g e
from here, based on consumer experiences, and UX/UI is a separate problem. The subject has to
be polished, and the best moment to do so is when the product is still in the consumer's hands.

GitHub: You will not be allowed to hold a meeting since the project was built by a five-person
team, and because the world is currently experiencing a Covid 19 pandemic. As a consequence,
engineers will be able to exchange and integrate code using GitHub as a software collaboration
platform for project development. Furthermore, Github makes it much easier for everyone on
the team to share, edit, and submit code, giving us a better experience than other similar apps.
As a consequence, GitHub is a necessary component of the project's success.

3. Specific Requirements
3.1 External Interface Requirements
3.1.1 User Interfaces
Because author’s task in this project is developing trainer’s role so he will only provide a
specification for trainer use case diagram. Other members of the team will provide each
specification for their requested UI.

Login page:

Figure 1: Login page

13 | P a g e
Home page :

Figure 2: Home page

View trainees:

Figure 3: View trainees page

14 | P a g e
Update profile:

Figure 4: Update profile page

View assigned courses:

Figure 5: View Courses

15 | P a g e
3.2 Functional requirements
3.2.1 Login page
Users can access the login page. The system will verify the inserted email and password to allow
user enter the system.

3.2.2 Register page


Admin add a new user:

- Training staff account by entering details like: Full Name, Email, Age, Address.
- Trainer account by entering details like: Full Name, Email, Specialty, Age and Address.

Training staff add a new user:

- Trainee accounts by entering details like Trainee Name, Trainee Email, Date of birth,
Education.

3.2.3 Add, update, delete, view:


Users can modify the information of the database. The limit of the modification is based on the
user’s role. There will be conditions for each individual role to complete its own work.

- Admin: create new trainer, edit/delete Trainer account, view Trainer account; create new
training staff, edit/delete training staff account, view training staff account.
- Training staff: create trainee accounts, update, delete, view trainee accounts
information; adding, updating and deleting course categories; adding, updating and
deleting courses.
- Trainer: view assigned courses, view all trainees.
- Trainee: view assigned courses, view all students in the same course.

3.2.4 Searching/ reporting requirements:


This section of requirements will determine how users can search courses, course categories,
profile.

3.2.5 Database
Storage data of account, courses, course categories and profile.

16 | P a g e
3.3 Use Case model

Figure 6-Use Case model

Explanation
In the Use Case diagram, the system will include 4 roles: admin, staff, trainee and trainer. Each
role will have similar and different functions.
The first is the login and logout functionality. All users have these two functions.
To use the system, users need to log in first. Then the system will rely on the user's role to assign
functions to the user:
- Admins can view, search, add, edit and delete trainers and staff, create accounts for
them and edit password.
- Staff can view, search, add, edit and delete trainee, course category, course. In addition,
they also assign and remove a trainer or trainee to a course. They also can update their
profile and password.
- Trainer can view course they are assigned to and view all trainee in this course. They
also can update their profile and password.

17 | P a g e
- Trainer can view course they are assigned to and view all trainee in this course. They
also can update their profile and password.
3.3.1 Use Case
Because author’s task in this project is developing trainer’s role so he will only provide a
specification for trainer use case diagram. Other members of the team will provide each
specification for their requested use case diagram.

Use Case ID UC-1.1

Use Case Name Login

Description As a user, he/she must be able to login into the system to use its
functions.

Actor(s) User (Staff, Admin, Trainee, Trainer)

Priority Must Have

Trigger The user clicks on the login button.

The account has been created.

Pre-Condition(s): The account is authorized.

The device is connected to the Internet.

18 | P a g e
Post-Condition(s): The user logged in successfully.

The system record the activity.

The user goes to the login page via URL.

The user enters the username and password in the login field.

Basic Flow The user presses the login button to send information to the server.

The server checks for the login information and give user permission for
their account-related action.

The server record the action on the activity log.

Alternative Flow Empty

The system report unsuccessfully logs in.

Exception Flow The user cancels the login or turned off the browser, the user case break.

The login function will be postponed for 15 minutes after 5 times user
enters the wrong name and password.
Business Rules

Non-Functional NFR1.1-1: After 120 seconds, the login will be timed out.
Requirement
NFR1.1-2: User passwords must be encrypted during transportation.

19 | P a g e
Use Case ID UC-1.2

Use Case Name View and update information

Description As a trainer, I want to view and update the information of courses.

Actor(s) Trainer

Priority Must Have

Trigger The user clicks on the login button.

The account has been created.

Pre-Condition(s): The account is authorized.

The device is connected to the Internet.

The user logged in successfully.

Post-Condition(s): The system record the activity.

20 | P a g e
The user login to the trainer account.

The trainer views course information or views assigned trainees in the


course.
Basic Flow
The trainer updates trainer’s information.

The system changes the information in the database as requested.

The system updates the change.

Alternative Flow The trainer doesn’t update any information and exit, case break.

Exception Flow The trainer doesn’t have permission to change the other user’s
information, an error message shows up, return to the end of step 1.

The login function will be postponed for 15 minutes after 5 times user
enters the wrong name and password.
Business Rules
The account is automatically logged out after idling for 30 minutes.

User passwords must be encrypted during transportation.

Non-Functional If the server is down after the modify, revert the system to the previous

Requirement process with a backup file.

21 | P a g e
4. RISK MANAGEMENT MATRIX
NAME OBJECTIVE

PRE-MITIGATION POST-MITIGATION
MITIGATIONS /
DEPARTMENT
REF / ID WARNINGS / ACCEPTABLE
RISK RISK / LOCATION RISK RISK
RISK RISK REMEDIES RISK TO
LIKELIHOOD LEVEL LIKELIHOOD LEVEL
SEVERITY SEVERITY PROCEED?
– ACCEPTABLE –IMPROBABLE – ACCEPTABLE
– POSSIBLE – LOW – LOW
– TOLERABLE – TOLERABLE
–MEDIUM –IMPROBABLE –MEDIUM
–UNDESIRABLE – PROBABLE –UNDESIRABLE
– HIGH – POSSIBLE – HIGH
–INTOLERABLE –INTOLERABLE YES / NO
– EXTREME – PROBABLE – EXTREME

The group
Due to the spread suggesting contact
out of COVID, solution to work and
1 group has to Undesirable Improbable Medium Any meeting using Undesirable Improbable Low Yes
discuss the project Google Meeting,
indirectly. Zoom or other
meeting apps.
Some team
members have Experienced
some difficulties members can
Any
because NodeJS is support and
2 Intolerable Possible Medium Tolerable Improbable Medium Yes
not their strength guide the other to
programming complete their
language. tasks.

Lack of technical
skills, in this Experienced
project, the team members can support
3
decided to use Frontend, and guide the other to
MVC model to Tolerable Possible Medium Backend, complete their tasks. Tolerable Improbable Low Yes
develop the project. Database
Some members
never use this
model before.

22 | P a g e
The user interface The designer has
design is not to work with both
Frontend,
suitable for Frontend and
4 Tolerable Possible Medium Database, Acceptable Improbable Low Yes
displaying the Database
Designer
database's departments while
information. designing
the website.

Team’s members get Healthy members


sick because they will support ill
vaccinated due to member for their
5 Intolerable Possible Medium Any Tolerable Improbable Low Yes
Covid19 during tasks if necessary.
working process.

During work
process, group Other member
members have many should share the
6 personal work so Intolerable Possible High Any work to replace the Tolerable Improbable Low Yes
some meetings and ill member to
tasks cannot be complete tasks.
fulfilled as expected.
Each member has
tasks to do while the Using GitHub to
pandemic spreading Acceptable Improbable Low Any manage and source Acceptable Possible Low Yes
7
out. The team cannot code.
sync their work.

One of the team The whole team


members quit during has to share the
8 working process. Intolerable Possible High Any work again and do Tolerable Improbable Low Yes
more tasks than
expect.

23 | P a g e
Risk Risk Level Solution

Lack of technical manpower High Spend part of the cost to train personnel right
from the start
Reserve buffers for additional personnel
Create a separate training program for the
project
Organize cross training sessions between skilled
members and newbies
Risk comes from the client's High Having a contract, written signature of the
side, when they make client for specific requirements upon receiving
changes out of order. Many the project.
project managers by being Warn customers of the risk of delays if sudden
caught up in these erratic changes are followed.
requirements get the project Develop a specific process, clear procedures
confused. (signatures of important clues involved) if you
want to change.
Clearly negotiate for remuneration
commensurate
with the out-of-contract changes.
Personnel left the project Ensure that all personnel are responsible for the
important part of the project
Annual meeting (outside work) to build
solidarity, teamwork
Occasionally rotate personnel into different
areas. There are 1-2 people who promptly back
up the project at any time.
There is a mechanism for storing and managing
work documents of all personnel

24 | P a g e
Performance is not High Define clear performance standards and
guaranteed present them to client review.
Make sure everyone in the project is aware of
the specific requirements for personal
performance. Build sample performance for
critical transactions. Test with sample data if
possible.
The cost risk, often of Medium Calling for more capital from investors and
escalating project costs, is social sponsors
due to poor accuracy and
range of cost estimates.
Table 2: Risk and solution

5. Other requirements
5.1 UI Requirements
The system is developed in a manner that is appropriate for the FPT company's environment. The
user interface must be simple to understand and utilize. After 30 minutes of instruction, users
are ready to utilize it on their own.

5.2 Performance Requirements


The system's performance is critical. It has an effect on all users of the system. Following are
some system performance criteria based on conversation with several FPT education system
clients:
 Continuity: the performance of the system has an influence on the continuity of teaching
and learning. The system must run constantly and effectively 24 hours a day, seven days
a week to maintain continuity.
 The system must be light enough to be utilized with low-tech devices while yet providing
a pleasant user experience.
 The system should be able to manage 500 simultaneous online accounts.
 The system must respond quickly to each user request (less than 3s).

25 | P a g e
5.3 Safety and Security Requirements
The system poses a threat to security. Hackers can get access to low-security systems, producing
severe difficulties for businesses. System data, such as information on courses, trainers, and
trainees, is sensitive data that must be safeguarded inside the organization.

Policy on security:

- Always make a backup of your data.


- Run a website vulnerability scan on a regular basis.
- Remain up to date with current events.
- The password for each account must be encrypted.
- When the system meets a problem, it simply shows error messages to the user without
providing any more information.

Only internal school accounts are allowed to use the system.

EVALUATION REPORT
Chapter 1: Design Tools
I. Tools to design UML and User Interface
1. Visual Paradigm
Visual Paradigm is a powerful, cross-platform and easy-to-use design and management
tool for IT systems. Visual Paradigm provides software developers with an advanced
development platform to build quality applications faster, better, and cheaper! It facilitates great
interoperability with other CASE tools and most leading IDEs to outshine your entire Model-Code-
Deploy development in this one-stop procurement solution.

Author can draw all kinds of UML 2.x diagrams in Visual Paradigm's UML tools, which include:

26 | P a g e
 Class diagram  Package diagram
 Use case diagram  Object diagram
 Sequence diagram  Composite structure diagram
 Communication diagram  Timing diagram
 State machine diagram  Interaction overview diagram
 Activity diagram  Component diagram
 Deployment diagram

2. Draw.io
Draw.IO is a free online UML tool. This is one of the best UML tools that allows users to
easily create and manage drawings with these tools. A lot of sharing widely and soon is available
with this tool.

Features:

 Unlimited number of sizes


 Templates are present in the software design itself.
 This free UML diagram tool allows to save the model in preferred location

II. Suitable tool for design UML and User Interface


Draw.io has some limitations. Therefore, the author had to learn another better tool. That is
Visual Diagram for both UML and User Interface design. During user interface design, having
screen mockups can help others have a better idea of what the user will see when interacting
with the system. With Visual Paradigm products (e.g. Visual Paradigm for UML), author can create
mockups using user interface diagrams. In addition to a static visual presentation, author can also
simulate navigating between screens after publishing project to HTML files.

27 | P a g e
Chapter 2: Front-End technology stack
I. Programming Language
JavaScript
JavaScript is a well-known scripting language that is used to cast magic on web pages to make
the website interactive for the user. It is used to enhance the functionality of a website to run
interesting games and web-based software (Singhal, 2021). JavaScript is a dynamic computer
programming language. It is lightweight and most commonly used as part of web pages, whose
implementation allows client-side scripts to interact with users and generate dynamic pages. It
is an interpreted programming language with object-oriented capabilities (Anon., 2020).

Avantages of JavaScript

 The value of using JavaScript is:


 Less server interaction - You can validate user input before sending the page to the server.
This saves server traffic, which means less load on your server.
 Immediate response to visitors - They don't have to wait for the page to reload to see if
they forgot to enter something.
 Increase interactivity - You can create interfaces that react when the user hovers over
them or activates them via the keyboard.
 Richer Appearance - You can use JavaScript to include items such as drag and drop
components and sliders to provide a Rich Appearance to your website visitors.

Limitations of JavaScript

 Client-side JavaScript does not allow reading or writing of files. This has been kept for
security reasons.
 JavaScript cannot be used for network applications because this support is not available.
 JavaScript does not have any multithreading or multiprocessing capabilities.

28 | P a g e
II. HTML and CSS
HTML: HTML stands for Hypertext Markup Language. It is used to design the user interface part
of web pages using markup language. HTML is a combination of Hyper Text and Markup
languages. Hypertext identifies links between web pages. The markup language used to define
text documents in tags defines the structure of web pages (Singhal, 2021).

CSS: Cascading Style Sheets affectionately known as CSS is a simple language designed to simplify
the process of making web pages displayable. CSS allows you to apply styles to web pages. More
importantly, CSS allows you to do this independently of the HTML that makes up each web page
(Singhal, 2021).

III. CSS framework


The CSS framework is a collection of pre-made and ready-to-use libraries for web design. They
provide a basic structure for consistent solutions, helping to solve problems that are repeated in
the interface building process. Generic functions in the CSS framework can be used for specific
situations and applications (Singhal, 2021).

Adopting a CSS framework will significantly save time building new apps and websites for
frontend developers. You can fully leverage the basics from previous apps for your existing
websites and apps (Singhal, 2021).

1. Bootstrap
The most "familiar" framework for programmers is probably Bootstrap. This tool came out in
2011 and has become one of the best CSS frameworks for front end developers. It includes a very
powerful grid system, badges, buttons, navigation bar (navbar) and many other interesting things
that you can explore. In addition, the rich catalog of free themes is also an impressive advantage
of Bootstrap (Lazaris, 2019).

If you're getting used to the framework for the first time, let's start with Bootstrap's grid system.
The reason is because its usage is very simple. You can use flexible grids and boxes to design the
layout of your website (Lazaris, 2019).

29 | P a g e
Bootstrap will be selected for the application. The reason is because its usage is very simple. In
addition, the rich catalog of free themes is also an impressive advantage of Bootstrap.

IV. JavaScript Library


jQuery
jQuery is an open source JavaScript library that simplifies interactions between HTML/CSS
documents, or more precisely, the Document Object Model (DOM) and JavaScript. Building on
terms, jQuery simplifies browsing and manipulating HTML documents, browser event handling,
DOM animation, Ajax interaction, and cross-browser JavaScript development (Singhal, 2021).

The advantages of jQuery:

 jQuery processes code very fast and is extensible.


 jQuery enables users to write functional code in minimal lines.
 jQuery improves web programming performance.
 jQuery develops browser-compatible applications.
 Most of the new browser's new features are used by jQuery.

Chapter3: Back-End technology stack


I. Programing language
PHP: PHP is a server-side scripting language specifically designed for web development. Since
PHP code is executed on server side, so it is called server side scripting language.

C++: It is a general-purpose programming language and is widely used today for competitive
programming. It is also used as an auxiliary language.

Java: Java is one of the most popular and widely used programming languages and platforms. It
is highly scalable. Java components are readily available.

Python: Python is a programming language that allows you to work quickly and integrate systems
more efficiently.

JavaScript: JavaScript can be used as both programming languages (front end and back end).

30 | P a g e
Node.js: Node.js is an open source and cross-platform runtime environment for executing
JavaScript code outside of the browser. You need to remember that NodeJS is not a framework
and it is not a programming language. Most people confuse and understand it as a framework or
a programming language. We often use Node.js to build back-end services like APIs like Web App
or Mobile App.

Suitable program will be used in the project


In this project, author highly recommend to use NodeJS as a platform to develop application.
Node.js is a software platform built on Google's V8 JavaScript engine. It uses an event-driven,
non-blocking I/O model and a single-threaded event loop that enables high throughput and
application scalability.

NodeJS is a platform which is used very common because it has fast processing speed, thanks to
the non- blocking mechanism, NodeJS can handle thousands of concurrent connections without
any difficulty.

It is a free, open-source, cross-platform runtime environment that runs on JavaScript. Primarily


intended for the server or client side of a mobile application, it is a full-stack development
environment that divides tasks into completely separate “nodes”.

Accessibility of a single programming language - Because it is powered by JavaScript,


programmers can easily tie nodes into the rest of the full-stack development. This makes it easier
for front-end developers to take on more difficult back-end programming tasks. No other server-
side languages are needed. And that's a good thing because it speeds up the development
process in almost any area and gives programmers of all levels easier access to the back end of
your mobile app. That is one of the main benefits of Node.js.

II. Operating System


The website is designed to run well on the platforms of Windows and macOS operating systems.
If the device has too outdated operate system such as: Window XP, Os X, Windows 95, etc. the
application cannot be able to support. The team suggesting user should use latest OS version.

31 | P a g e
III. Web Server
Because the team chose NodeJS as a backend programing language in this project so they decided
to use NodeJs as a web server too. To run a NodeJS application, they must program it a Server,
installing this server will be through javascript code, not through software.

IV. Database
1. MySQL
MySQL Server is an open source relational database management system that primarily supports
web-based applications. Databases and related tables are a key component of many websites
and applications because data is stored and exchanged over the web. Even all the major social
networking sites Facebook, Twitter and Google depend on MySQL data designed and optimized
for that purpose. For all these reasons, the MySQL server became the default choice for web
applications (Anjali, 2021).

MySQL server is used for data operations such as querying, sorting, filtering, grouping, modifying
and joining tables. Before diving into commonly used queries, let's take a look at some of the
advantages of MySQL (Anjali, 2021).

Advantages of MySQL:

 Fast and high performance database.


 Easy to use, maintain and manage.
 Easily available and maintains database integrity.
 Provides scalability, usability, and reliability.
 Low cost hardware.
 MySQL can read simple and complex queries and write operations.
 InnoDB is the default and widely used storage engine.
 Provides powerful indexing support.
 Provides SSL support for secure connections.
 Provides precision and robust data encryption.
 Provides cross-platform compatibility.

32 | P a g e
 Provides minimized code repetition.

2. MongoDB
MongoDB, the most popular NoSQL database, is an open source document-oriented database.
The term 'NoSQL' means 'non-relational'. This means that MongoDB is not based on a table-like
relational database structure at all, but provides a different mechanism for storing and retrieving
data. This storage format is called BSON (similar to JSON format).

Features of MongoDB:

 Document Oriented: For example, it stores all information of a computer in a single


document called Computer and not in separate relational structures like CPU, RAM, hard
disk, etc.
 Indexing: Without indexing, the database would have to scan every document in the
collection to select the ones that match the query, which would be inefficient. So for
efficient search Indexing is a must and MongoDB uses it to process huge volume of data
in very short time.
 Scalability: MongoDB scales horizontally using sharding (partitioning data across different
servers). Data is partitioned into chunks using shard keys, and these chunks are
distributed evenly across shards located on multiple physical servers. In addition, new
machines can be added to the running database.
 Replication and High Availability: MongoDB increases data availability with multiple
copies of data across different servers. By providing redundancy, it protects the database
from hardware failures. If one server goes down, data can be easily retrieved from other
active servers that also have data stored on them.
 Aggregation: Aggregation operations process data records and return calculated results.
It is similar to the GROUPBY clause in SQL. Some composite expressions are sum, average,
min, max, etc.

33 | P a g e
Suitable database will be used in the project
In this case, the author would like to recommend to use MongoDB as the main database.
MongoDB is a document database built on an extensible architecture that has become popular
with developers of all types who are building scalable applications using best practices and
flexible.

Figure 7: MongoDB

MongoDB shout be used because its advantages are outstanding over other databases.

 The document data model is a powerful way to store and retrieve data that
allows developers to move fast.
 MongoDB’s horizontal, scale-out architecture can support huge volumes of both data
and traffic.
 MongoDB has a great user experience for developers who can install
MongoDB and start writing code immediately.

 MongoDB can be used everywhere by anyone because it is for free through


the open source community edition.
 MongoDB has developed a large and mature platform ecosystem, so it is
easy to get help.

34 | P a g e
V. Hosting
Author continued recommend a free cloud platform to lower cost which is Heroku. This is a cloud
platform that lets companies build, deliver, monitor, and scale apps — they the fastest way to go
from idea to URL, bypassing all those infrastructure headaches (Disclaimer, 2012).

 Heroku is container-base cloud platform offering (PaaS) that is suitable for service model
that was chosen.
 Heroku also offers a ready-to-use environment that allows developer to deploy code fast.
It is best suitable for Startups, Medium Businesses like ATN.
 It is also flexible to customize and support unique DevOps workflow needs. Heroku can
seamlessly integrate GitHub, which means every pull request generates a disposable App
for testing, and every repo can be set up to auto-deploy with each GitHub push to a
selected branch.
 Using Heroku, it is fully supported with MongoDB that was mention in above section.
 The tool can provide with built-in instant run-time application services. Moreover,
developers do not need to think about infrastructure because it managed automatically
by the software itself.

VI. Framework
Express is a small and utility framework for building web applications, providing a large amount
of powerful features for developing web and mobile applications. It is very easy to develop fast
applications based on Node.js for Web applications. Here are the basic features of Express
framework.

 Allows setting up intermediate classes to return HTTP requests.


 The routing table definition can be used with different actions based on the HTTP method
and the URL.
 Allows returning HTML pages based on the parameters passed to the template.

For these features, the team decided to use Express as their framework to apply on their project.

35 | P a g e
VII. The Web Model
The Web Model-View-Controller (MVC) architectural pattern divides an application into three
logical components: model, view, and controller. Each of these components is designed to handle
certain elements of application development. MVC is a popular industry-standard web
development framework for developing scalable and adaptable projects.

Figure 8: MVC Model

Chapter 4: Tools for source control management


GitHub
To manage source code, author uses Github to manage and share the source code with other
people. In order to be able to manage the project, the team used GitHub for easier control of the
work. The team has chosen to use GitHub because it provides a repository of Git source code for
the projects. Furthermore, GitHub has all the features of Git and adds social features so that team
members can interact and work together. In particular, Github can sync the team's source code
to a server and also have the function of checking the source code in the process. It helps a team
can fix or configure the code flexible and storing, backup source code.

36 | P a g e
Chapter 5: Software Development Models
1. Waterfall model
Definition: The waterfall model is a classic model used in the system development lifecycle
to create a system with a linear and sequential approach. It is called a waterfall because the
pattern develops systematically from stage to stage in a downward direction. The model is
divided into different stages and the output of one stage is used as the input of the next.
Every stage must be completed before the next stage begins and there is no overlap of stages
(Bennett, 2020).

The following illustration is representative of the different phases of the Waterfall Model.

Figure 9: Waterfall Model

Advantages Disadvantages
- Easy to use, simple and - It does not allow for much reflection
understandable. or modification. When the product is
- Easy to manage because each stage in the testing phase, it is very difficult
has specific review processes and to go back and change what was left of
outputs. the request analysis phase.
- High amount of risks and uncertainty.

37 | P a g e
- The stages are processed and - Not recommended for complex and
completed at the same time. object-oriented projects.
- Works well for smaller projects where - This is a poor model for long and
the requirements are clear. ongoing projects.
- Clearly defined stages. - Adjusting the scope in the life cycle
- The process and output of each phase can end a project.
are clearly mentioned in the
document.
- The milestones are well understood.
- Easily organize tasks.
Table 3: Advantages and Disadvantages of Waterfall model

2. V-model
Definition: V-model is a highly disciplined SDLC model that has a parallel test phase with each
development stage. Model V is an extension of the waterfall model in which the test is
performed on each stage parallel to sequential development. It's called Verification and
Validation model (Kumar, 2019).

Verification: It involves a static analysis (review) technique that is performed without code
execution. This is the process of evaluating the product development stage to find out if
specific requirements have been met (Kumar, 2019).

Validation: It involves dynamic analysis techniques (functional, non-functional), testing


performed by code execution. Validation is the process of evaluating a software after
completing a development phase to determine if the software has met the requirements and
expectations of the customer (Kumar, 2019).

38 | P a g e
Figure 10-V-model

Advantages Disadvantages

- This is a highly disciplined model and - High risk and uncertainty.


all phases are completed at the same - It is not a good thing for complex and
time. object-oriented projects.
- The V-Model is used for small projects - It is not suitable for projects with
where the project requirements are ambiguous requirements and high risk
obvious. of change.
- Simple and easy to understand and - This model does not support repeating
use. phases.
- This model focuses on verification and - It is not easy to handle events that
validation activities early in the life occur concurrently.
cycle thereby increasing the

39 | P a g e
probability of building a good quality
product without defects.
Table 4-Advantages and Disadvantages of V-model

3. Agile model
Definition: Agile process model refers to a software development approach that is based on
iterative development. Agile methods divide tasks into smaller iterations or parts that are not
directly related to development. Project scope and requirements set at the beginning of the
development process Plans for the number of iterations, duration, and scope of each
iteration are clearly defined in advance (Pal, 2018).

Figure 11-Agile model

Advantages Disadvantages

40 | P a g e
- Working through Pair programming - Due to lack of formal documents, it creates
produces compact programs that are well- confusion and important decisions taken
written and error-free compared to during different phases can be
programmers working alone. misinterpreted at any time by different
- It reduces the total development time of team members.
the entire project. - Due to absence of proper documentation,
- Customer representatives consult on when the project completes and the
software products to be updated after each developers are assigned to another project,
meeting. So he can easily change any of the maintenance of the developed project can
requirements if needed. become a problem.

Table 5-Advantages and Disadvantages of Agile model

4. Scum model
Definition: The Scrum Model is a software development process, based on the Agile model. They
provide a wide variety of methodologies, procedures, and experiments. Thereby, the software
development process becomes fast and easy (Gurendo, 2020).

The principle of this model is to break down the software to be produced into smaller pieces for
development. That's called a Sprint. Each Sprint must ensure independent and releasable
elements.

Next is to consult the user (Product Owner) and change accordingly. During the development
process, to ensure the product release must meet what the user requires. Each Sprint takes 2-4
weeks to complete. Therefore, it is suitable for projects that have a lot of change and require
high agility. Sprint tasks are divided into several categories. The project team will develop and
continuously reevaluate how to achieve the original goal in the shortest amount of time.

 Product Owner (PO): responsible for initial planning, setting priorities, and coordinating
with other departments of the company.

41 | P a g e
 Scrum Master: responsible for monitoring the work throughout the implementation
process.
 Scrum team members are responsible for doing the work on each sprint.

Figure 12: Scrum Model

There are 4 basic phases to implement scrum model:

1. Sprint planning

This is the opening meeting of the sprint including developer and Product Owner; all work of a
sprint will be specifically planned in the sprint planning meeting. During sprint planning,
stakeholders will analyze and answer the following questions in turn

- Why is this sprint creating value? (What will the goals of this sprint include?)

- What can be accomplished in this sprint? (What will this sprint have to deliver?)

- How to complete the selected tasks? (How to achieve those transfers?)

2. Daily Scrum

Daily Scrum meetings are usually 15 minutes long for the developers of the Scrum team which
was held by Scrum master. On each day of the sprint, a daily Scrum will be held at the same
time and place. The purpose is to check the progress towards completing the sprint goal and

42 | P a g e
adjust the sprint backlog if necessary and analyze the process (What have done? What will be
developed? Are there any problem?)

3. Sprint review

At the end of each sprint, developing team and Product Owner will check over the completed
work in last sprints and suggest necessary changes or updates. The purpose is to examine the
sprint results and determine the necessary future adaptations. The result of the sprint review is
an updated product backlog with the work in the next sprint.

4. Sprint retrospective

The goal is to review and create a plan that includes ways to increase quality and efficiency. The
goal is to identify the most effective improvements to implement in the next sprint.

Advantages Disadvantages

- Deadline is flexible. - This process requires Scrum master to


- Fast development speed, save time. believe their team. Strict governance can
Produces good product results. lead to the failure of the entire project.
- Product delivery: delivered product content - If a team member leaves the process
is flexibly determined according to the actual during development, it has a negative
use environment. impact on the development of the
- Each member is in charge of a sprint so work project.
efficiency is higher. - There is no deadline to deliver the
- Improved productivity and high accuracy. product, which leads to limited scope and
- Customers participate in the software always prompts project managers to ask
development process to ensure that the for new functionalities to be delivered.
output product meets the development - Doesn't come with any time limits and
needs. predictive cost pricing, which can make it
scale to several sprints.

43 | P a g e
- Take control of the testing process as the - Best suited for small teams with cohesion
Scrum team can tweak and correct practices and understanding.
using the most practical guidance from trial - Requires a group of experienced people
and error. to complete the task.
- Bugs and problems are discovered early. - To quantify the process, the testing team
Thereby, you can fix it quickly. must conduct regression testing of the
- Good product quality and reduce production development after each sprint. This
risk, low cost. makes it difficult to implement the scrum
- The ability to exchange between customers methodology.
and developers, between team members is
set to a high level.

Table 6: Advantages and Disadvantages of Scrum model

5. Suitable software develop model for the project and explain


Each model has its own strengths and weaknesses but in this project in author’s opinion,
Scrum model would be the suitable model for the project. Below is the explain:

The Scrum methodology is used to manage knowledge work, often with a focus on software
development. The product of each software project is not the same, so it is very difficult to
apply for mass development. Therefore, to have a detailed process that can be applied to all
products is a massive and costly undertaking. Assuming such a process exists, remembering
to apply it effectively is also a major challenge.

Software is a complex product, so at the beginning it is difficult for customers to fully visualize
the requirements set forth for the product, but through the process of developing those
details to form a good response to challenges. Changing requirements will help reduce risk.
SCRUM responds very well to this problem.

As mentioned above, the software development process is quite complicated and there are
many differences between products, so if you are not directly involved in production, it will
be difficult to understand or understand incorrectly. Therefore, let the development team

44 | P a g e
decide the solution for the product and the customer who cares about the product's
functionality to meet their needs is the best.

Customers can involve in the software development process to ensure the output meets their
development needs.

During developing process, the team had used Trello as a project management application to
manage the whole project. User can drop and drag Task tag and manager can tag
stakeholders to their tasks.

Figure 13: Trello

Conclusion
In this assignment, the author provides an overview and some basic concepts of the steps to
complete a website, providing tools, languages, and software to support project management.

45 | P a g e
Through that, the author has also improved teamwork skills, monitoring and following the
activities and work of the members. In particular, the author knows how to create an SRS
document - one of the necessary and important documents, which is used a lot at work. In
addition, the author also provides a solution based on the given scenario. After completing this
task, the author has a better understanding of SRS and its benefits to companies and society.

References
Anjali, G., 2021. MySQL | Common MySQL Queries. [Online]
Available at: https://www.geeksforgeeks.org/mysql-common-mysql-queries/
[Accessed 12 10 2021].

Anon., 2020. [Online]


Available at: https://www.tutorialspoint.com/javascript/javascript_overview.htm
[Accessed 2021].

Bennett, 2020. Definition of 'Waterfall Model'. [Online]


Available at: https://economictimes.indiatimes.com/definition/waterfall-model
[Accessed 6 4 2021].

Gurendo, D., 2020. https://www.educba.com/scrum-vs-waterfall/. [Online]


Available at: https://www.quickstart.com/blog/pros-and-cons-of-scrum-methodology/
[Accessed 13 10 2021].

Kumar, D., 2019. Software Engineering | SDLC V-Model. [Online]


Available at: https://www.geeksforgeeks.org/software-engineering-sdlc-v-model/
[Accessed 6 4 2021].

Lazaris, L., 2019. 10 best CSS frameworks in 2020. [Online]


Available at: https://www.creativebloq.com/features/best-css-frameworks
[Accessed 12 10 2021].

46 | P a g e
Mohan, M., 2020. Software Engineering | Prototyping Model. [Online]
Available at: https://www.geeksforgeeks.org/software-engineering-prototyping-model/
[Accessed 6 4 2021].

Pal, S. K., 2018. Software Engineering | Agile Development Models. [Online]


Available at: https://www.geeksforgeeks.org/software-engineering-agile-development-models/
[Accessed 6 4 2021].

Pal, S. K., 2021. Software Engineering | Spiral Model. [Online]


Available at: https://www.geeksforgeeks.org/software-engineering-spiral-model/
[Accessed 6 4 2021].

Singhal, P., 2021. Frontend vs Backend. [Online]


Available at: https://www.geeksforgeeks.org/frontend-vs-backend/
[Accessed 12 10 2021].

47 | P a g e

You might also like