You are on page 1of 21

Higher Nationals in Computing

1670: Web Application

Learner’s name: Hoang Quang Quyen

ID: GCS210314
Class: GCS1005C
Subject code: 1670
Assessor name: PHAN MINH TAM

Assignment due: 22/11 Assignment submitted: 22/11

Page | 1
ASSIGNMENT 1 FRONT SHEET

Qualification BTEC Level 5 HND Diploma in Business

Unit number and


Unit 30: Application Development
title

Date Received 1st


Submission date 22/8
submission

Date Received 2nd


Re-submission Date
submission

1. To Duy Tam
2. Hoang Quang 1. GCS200734
Student Name Quyen Student ID 2. GCS210314
3. Nguyen Cong 3. GCS200874
Toai

Class GCS1005C Assessor name PHAN MINH TAM

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

Page | 2
 Summative Feedback:  Resubmission Feedback:

Grade: Assessor Signature: Date:


Internal Verifier’s Comments:

Signature & Date:

Page | 1
Assignment Brief 1 (RQF)
Higher National Certificate/Diploma in Computing
Student Name/ID Number:
Unit Number and Title: Unit 30: Application Development
Academic Year: 2021 – 2022
Unit Assessor: Hoang Nhu Vinh
Assignment Title: Analysis and Design solution for a given problem
Issue Date: 10 May 2022
Submission Date:
Internal Verifier Name:
Date:

Submission Format:

Format: The submission is in the form of two documents/files


● An individual SRS document in PDF format. Writing must be professional.

● An individual evaluation document in PDF format. Writing must be professional.

Submission

● Students are compulsory to submit the assignment on the due date and in a way requested by
the Tutor.
● The form of submission will be a soft copy posted on http://cms.greenwich.edu.vn/.
● Remember to convert the word file into a PDF file before the submission on CMS.

Note:

● The individual Assignment must be your work, and not copied by or from another student.
● If you use ideas, quotes, or data (such as diagrams) from books, journals, or other sources, you
must reference your sources, using the Harvard style.
● Make sure that you understand and follow the guidelines to avoid plagiarism. Failure to comply
with this requirement will result in a failed assignment.

Unit Learning Outcomes:

Page | 2
LO1 Produce a Software Design Document by analyzing a business-related problem and deduce an
appropriate solution including a set of initial requirements

LO2 Use design and development methodologies with tools and techniques associated with the creation
of a business application
Assignment Brief and Guidance:

Scenario: FPTBook will be a web-based software system to aid book store customers and owners to
manage their book purchases and sales about simplifying and speeding up the process of selection,
ordering, and purchasing books for customers as well as managing a database of users and a database of
products for book store owners. The attached document can view the detailed description of those roles
(Requirements.docx).

Tasks
You and your teammates (3 members/team maximum) need to prepare a software design document with
the following sections:
o A requirement specification that explores the problem by a set of user and system requirements,
as well as determines any risks related to the successful completion of your application. You are
advised to use an SRS template or modify one to complete this task.
o An evaluation section in which you research the use of software development tools and techniques
and identify any that have been selected for the development of this application. You should
compare them and justify your choices.
o A design section in which you use chosen tools from the previous step to produce design diagrams
for your solution based on the requirement specification.

Page | 3
Learning Outcomes and Assessment Criteria (Assignment 1):
Learning Outcome Pass Merit Distinction
LO1 P1 Explore a business- M1 Analyse a business- D1 Justify the tools
related problem and related problem using and techniques
produce a well-defined appropriate methods and chosen to realise a
Problem Definition produce a well-structured custom built website.
Statement supported by Software Design Justify your preferred
a set of user and system Document that defines a selection of tools and
requirements. proposed solution and techniques in
includes relevant details deducing an
P2 Determine any areas on requirements, system appropriate solution
of risk related to the analysis, system design, to a business related
successful completion of coding, testing and problem.
your application. implementation.
LO2 P3 Research the use of M2 Compare the
software development differences between the
tools and techniques and various software
identify any that have development tools and
been selected for the techniques researched
development of this and justify your preferred
application. selection as well as your
preferred software
development
methodology.

Page | 4
Table of Contents
P1 Explore a business-related problem and produce a well-defined Problem Definition Statement supported
by a set of user and system requirements ......................................................................................................... 1
1. Introduction ............................................................................................................................................. 1
1.1 Document purpose ........................................................................................................................... 1
1.2 Product Scope................................................................................................................................... 1
2. Overall description................................................................................................................................... 1
2.1. Product overview ............................................................................................................................. 1
2.2. Product functionality ........................................................................................................................ 1
3. Specific requirements .............................................................................................................................. 2
3.1. Functional Requirements ................................................................................................................. 2
3.2. Use Case Diagram ............................................................................................................................. 3
P2 Determine any areas of risk related to the successful completion of your application. .............................. 4
P3 Research the use of software development tools and techniques and identify any that have been
selected for the development of this application. ............................................................................................. 5
1. Design Tools ............................................................................................................................................. 5
1.1. Research tools for UML design......................................................................................................... 5
1.2. Research tools for User Interface design ......................................................................................... 5
1.3. Conclude which tools will be used for design of the application ..................................................... 6
2. Front End technology stack ..................................................................................................................... 7
2.1. Front End Programming Language ................................................................................................... 7
2.2. CSS Framework ................................................................................................................................. 8
3. Back End technology stack ...................................................................................................................... 9
3.1. Framework ....................................................................................................................................... 9
3.2. Back End Programming Language .................................................................................................. 10
3.3. Web Server ..................................................................................................................................... 10
3.4. Database ......................................................................................................................................... 11
4. Source control management tools ........................................................................................................ 12
5. Software Development Models ............................................................................................................. 12
References ........................................................................................................................................................ 14

Page | 5
P1 Explore a business-related problem and produce a well-defined Problem
Definition Statement supported by a set of user and system requirements
1. Introduction
1.1 Document purpose
In this document, we will present the Software Requirement Specification document for the FPT Book
project. Our team will plan the interface such that people of all ages may use it and interact with it with
ease. Create, enhance, and implement new technologies to make this web app easier to operate for
admins and owners of books.
1.2 Product Scope
• FPT Book goal and objectives: make customer book purchases simpler and faster, and to make product
and customer data management optimized, clear, and easier to manage.
• User-Friendly Interface: Create a user interface (UI) that is simple to use and intuitive for users of all
ages. To promote easy interactions, use logical and obvious navigation menus, buttons, and layouts.
• Book Listings: Make it simple for users to browse, search, and read book listings. Clear descriptions,
cover photos, and pricing should be displayed for each book.
• Shopping Cart & Checkout: Implement a user-friendly shopping cart system where users can
add/remove items and proceed to a straightforward checkout process.
• Inventory Management: Give owners and administrators the resources they need to manage the
inventory of books, including the ability to add new titles, change stock levels, and mark sold products.
• Order Processing: Create a more efficient system for processing orders that alerts administrators to
new ones and directs them through the order fulfillment process.
• User Profiles: Allow users to create profiles, manage personal information, and track their order
history.
• Admin Dashboard: Build a complete admin dashboard with capabilities for reporting and data
visualization that are easy to use. Permit sales tracking, order management, and user activity tracking
for admins.
2. Overall description
2.1. Product overview
By streamlining and accelerating the process of book selection, ordering, and purchase for customers as
well as managing a user database and a product database for store owners, FPTBook will be a web-based
software program that helps bookstore patrons and owners manage their book purchases and sales. The
four main roles in the software system are admin, store owner, client, and guest. These functions are
essential for building a strong connection that enables the software to run continuously.
2.2. Product functionality
As introduced, the FPTBook program system has 3 roles, so depending on each role, there will be different
functions to suit individual needs. The following is a list of functions according to each program's role:
❖ Customer

Page | 1
o The Home Screen: will be the default screen displayed upon processing the user login and the
user log-out options. It will display all the books that the customer can buy.
o The Profile Screen: displaying all past orders of the current customer and his/her profile.
o Register Screen: customer registration. It must have the following fields:
✓ Email
✓ Full Name
✓ Password
✓ Re-Password
✓ Home Address.
o Checkout Screen: displaying the item's title, description, price, category, and selected quantity.

o Help Screen: displaying a list of help topics.


o All Customer Screens except Login Screen and Help Screen will display a search engine and help
options located at the top of each respective screen. It allows the customer to search for books
by name or category.
o After logging off the system. The system will then return to the default Home Screen.

❖ Store owner
o The Book Screen: for adding, updating, searching, or deleting a product. Each book must have a
specific Category.
o The Category Request Screen: make a request to the admin for adding the new book category if
it does not exist.
o The Record Screen: display all records ordered by the customer.
❖ Admin
o The Customer Screen will be used to display the account information of all Customers. It will be
able to reset the password of the Customer if needed.
o The Store Owner Screen will be used to display the account information of all Store Owners. It
will be able to reset the password of the Store Owner if needed.
o The Category Approval Screen will allow the admin to approve or reject the new book category
request made by the Store Owner. The Store Owner will receive a message about the approval
or rejection after the admin makes the decision.

3. Specific requirements
3.1. Functional Requirements
ID AS A <TYPE I WANT TO <PERFORM SO THAT I CAN < ACHIEVE SOME GOAL>
OF USER> SOME TASK>
1 Customer Register for an account save my details for a quicker checkout.
2 Customer Browse books by category Locate books more easily that interest me
3 Customer Add books to a cart Purchase multiple books in one order
4 Store Owner Add new books Keep my category updated.
Page | 2
5 Store Owner Edit book details Update information if needed
6 Store Owner View inventory levels Identify low stock to replenish
7 Store Owner Generate sales reports Analyze business performance
8 Admin Add new store owners Identify low stock to replenish
9 Admin Be able to approve a store Onboard new bookstores to the platform
owner’s request
3.2. Use Case Diagram

Figure 1. Use case diagram

List Additional Controls (if any - where


Identify and list Hazards List Current Risk Controls Risk Rating current controls are not adequately
managing the level of risk)

1 Technical Regular security patches, Implement intrusion detection


vulnerabilities penetration testing Hight system

Page | 3
2 Low user engagement User feedback collection, Medium Launch targeted marketing
UI improvements campaigns
3 Payment processing Redundant payment Hight Establish manual payment
failure gateways, error monitoring backup procedures
4 Project timeline delays Detailed project planning, Medium Allocate extra resources for
frequent progress checks critical path tasks
5 Inadequate data Regular data backups, off- Medium Perform periodic data recovery
backups site storage drills
6 Integration Thorough integration Medium Collaborate with third-party
complexities testing, clear API support for troubleshooting
documentation
7 User experience Usability testing, iterative Medium Conduct focus groups for user
dissatisfaction UI enhancements feedback
8 Changes in the Monitor industry trends, Medium Stay up to date on industry
technology landscape adapt to emerging trends
technologies.
9 Incorrect or corrupt Data integration checks, Medium Establish regular data quality
data item data validation processes assessment and maintenance
routines

P2 Determine any areas of risk related to the successful completion of your


application.
Customer use case:
• Register account: signs up for the new user to buy the book in-store.
• Search for the book: Enables searching for a book based on criteria.
• View book details: display detailed information about a specific book.
• Purchase book: allows customers to buy books from the store.
• View order history: view books that have been purchased in history.
Store owner use cases:
• Manage books: Manage the inventory of books.
• Manage order: Handle orders from customers.
• View recorded orders: accesses sales history and order information.
• Make new category request: requests to add new book category.

Admin use cases:


• Manage customer accounts: handles customer's account.
• Manage store owner accounts: handle Store owner account.

Page | 4
• approve or reject new book category request: approves or reject request for new books from store
owner.
P3 Research the use of software development tools and techniques and
identify any that have been selected for the development of this application.
1. Design Tools
1.1. Research tools for UML design
I have researched a number of tools to design UML for the FPTBook system and below are some tools
that I think work well:
❖ Draw.io:

Figure 2. Logo of Draw.io

This is a versatile online diagramming tool that allows users to create diverse diagrams such as
workflow diagrams, UML diagrams, and network diagrams. With flexible integration with many cloud
storage services like Google Drive and Dropbox, Draw.io is a popular choice for conveniently creating
and sharing diagrams. The special thing is that it is free and open source, helping users have easy
access without having to worry about costs.
❖ Lucidchart:
This is a cloud diagramming software that focuses on team collaboration. It not only provides many
diagram templates for flow diagrams, UML, but also integrates smoothly with popular applications
like Google Workspace and Microsoft Office. With the ability for multiple users to work
simultaneously on the same chart, Lucidchart is ideal for remote teams. Advanced features like data
linking and real-time collaboration also increase the tool's flexibility and performance. While
Lucidchart has a paid model, the team and features it offers can make this investment worthwhile for
organizations.
1.2. Research tools for User Interface design
❖ Adobe XD:
Specifically designed for user interface (UI/UX) design and development. It helps create and test
prototypes easily.
❖ Figma:

Page | 5
Figure 3. Logo of Figma

Is an online application that helps design teams work together in real time. It is especially popular in
remote work projects.
❖ Lucidchart:
Lucidchart is a powerful tool that can be used to design user interfaces (UI) for the web. Although
originally developed primarily for creating diagrams and charts, Lucidchart's flexibility provides the
ability to create mockups and wireframes for web user interfaces.
1.3. Conclude which tools will be used for design of the application
I decided to choose draw.io for UML design and Figma for UI design.
❖ I choose Draw.io for the following reasons:
Free and easy to use: In addition to being free to use, Draw.io's interface is designed to be simple and
easy to use. New users can quickly become familiar with the basic functions for creating diagrams and
charts.

Integrates with Many Storage Services: Draw.io integrates with many cloud storage services such as
Google Drive, OneDrive, Dropbox, helping users easily save and share their diagrams.

Collaboration: Draw.io allows users to work together on the same diagram in real time, increasing
collaboration and team productivity.

❖ I choose Figma for the following reasons:


Online and cross-platform: Figma works online, no software installation required. I can access and
work on it from any device with an internet connection.

Real-Time Team Collaboration: Figma's big strength is its real-time team collaboration capabilities.
Multiple users can work on the same file simultaneously, seeing changes immediately.

Integrated Components and styles: Figma supports Components and Styles, helping to maintain
consistency between interface components. You can easily reuse and update them effectively.

Page | 6
Auto layout: The Auto Layout feature automatically adjusts the size and layout of components, making
it easy to build remarkably flexible and responsive interfaces.

Version history and Undo/Redo: Figma automatically saves file version history, helping you manage
and restore previous versions. Undo and Redo are also powerful features.

2. Front End technology stack


2.1. Front End Programming Language
Front-end programming languages are used to build the user interface (UI) and control the presentation
layer of a website or web application. Here are some popular front-end programming languages:
• HTML (HyperText Markup Language): HTML is the standard markup language used to create the
structure of web pages. It defines the elements and their attributes on a web page. (Coursera, 2023)
• CSS (Cascading Style Sheets): CSS is used to style and layout the HTML elements on a web page
(Coursera, 2023). It controls the visual presentation of the content, including colors, fonts, spacing,
and positioning.
• JavaScript: JavaScript is a versatile scripting language that adds interactivity and dynamic behavior to
web pages (Coursera, 2023). It can be used to handle events, manipulate the DOM (Document Object
Model), and communicate with servers (Ajax).
• React is a popular JavaScript library for building user interfaces (UI). It was created by Meta to help
developers build modular user interface components and more effectively manage the state of their
applications (Coursera, 2023).
• Vue: is an open-source JavaScript framework for building user interfaces and single-page applications.
Vue, developed by Evan You and kept up by a sizable developer community, is renowned for its
performance, flexibility, and simplicity (Coursera, 2023).
• Angular: provides a comprehensive set of tools for building scalable and maintainable web
applications, including a powerful template language, a reactive data binding system, and a modular
architecture (Coursera, 2023).
• Swift: has become a popular choice for developing high-performance, secure, and user-friendly
applications for Apple's platforms due to its modern syntax, safety features, and fast performance.
Swift is designed to be easy to read and write, making it an excellent choice for experienced and
beginner developers (Coursera, 2023).
• Django: is a high-level Python web framework for building dynamic and scalable web applications. It's
known for its "batteries included" approach, providing developers with the tools they need to build a
full-featured web application without reinventing the wheel. Its modular architecture and extensible
API make it easy to add custom functionality when required (Coursera, 2023).

I decided to choose HTML, CSS, and JavaScripts to design the front-end for the FPTBook system. Reasons
to Choose This Trio:

Page | 7
• Well-Integrated: HTML, CSS, and JavaScript interact strongly with each other. HTML provides
structure, CSS drives the look, and JavaScript adds dynamism, creating a full user experience.
• Industry Standard: This trio is considered the industry standard for web development. Many
browsers support HTML, CSS, and JavaScript, ensuring compatibility and uniform display across
multiple platforms.
• Easy to Learn and Use: HTML, CSS, and JavaScript are languages that are easy to learn, especially
for beginners. Large worldwide community supports and shares relevant knowledge.
• Cross-Platform Support: These languages support cross-platform development, which means you
can build websites once and they will work across multiple devices and browsers.

2.2. CSS Framework


I chose Bootstrap to help develop web interfaces for the following reasons:
❖ Responsive Design:
Bootstrap provides a flexible grid system and utility classes to create responsive websites (Clarity,
2023). This helps the website display and function well on a variety of devices and screen sizes.
❖ Diverse Components:
Bootstrap comes with a bunch of out-of-the-box components like navbars, modals, forms, and more
(Clarity, 2023). These components help reduce time and effort when building common interface parts.
❖ Attractive Default Design:
Bootstrap has a nice default color and typography palette, giving your website an attractive look even
if you're just starting out without much customization.
❖ Easy to Customize:
Bootstrap not only supports default settings but also allows you to easily customize the interface to
your liking. You can adjust histogram color, size, and many other properties.
❖ Diverse Browser Support:
Bootstrap is thoroughly tested and supported on many different browsers, including old versions.
❖ Community and Documentation:
Bootstrap has a large and active community, which means you can easily find solutions and support
through the forums and official documentation.
❖ JavaScript Plugins:
Bootstrap comes with several JavaScript plugins like Carousel, Modal, Tooltip, and Popover, which
help add interactive features to your website easily.
In short, Bootstrap is a flexible, easy-to-use, and powerful framework that reduces time and effort in web
interface development while ensuring your website looks beautiful and efficient.

Page | 8
3. Back End technology stack
3.1. Framework
There are many powerful and popular back-end development frameworks, each with its own
characteristics and advantages. Here are some popular back-end frameworks:
❖ Express (Node.js):
Express is a back-end development framework for Node.js, the JavaScript programming language. Known
for its lightness and flexibility, Express provides a powerful infrastructure for building web applications
and APIs. With powerful middleware, Express helps handle HTTP requests and manage various tasks with
ease. In particular, it is often used in building fully synchronous JavaScript applications, where Node.js can
be used both on the server and client side (Gadhavi, 2023).
❖ Django (Python):
Django is a powerful web development framework for the Python programming language. Designed
according to the MTV (Model-Template-View) model, Django provides a modular organizational structure
and a variety of integrated features such as ORM (Object-Relational Mapping), automated admin panel
and integrated security (Gadhavi, 2023).
❖ Laravel (PHP):
Laravel is a web development framework for the PHP programming language, famous for its "Convention
over Configuration" and "Don't Repeat Yourself" (CoC and DRY) philosophy. Laravel provides an
integrated community with many features such as powerful routing, ORM (Eloquent), Blade templating
engine, and many other supporting tools (Gadhavi, 2023).
❖ ASP.NET Core (C#):
ASP.NET Core is a cross-platform web development framework for the C# programming language. Built
on the .NET Core platform, it offers flexibility and high performance. ASP.NET Core supports building
modern web applications with many features such as Dependency Injection, Middleware, and good
integration with front-end technology (Gadhavi, 2023).

I choose ASP.NET Core because of the following reasons:


• Cross-platform, supports deployment on Windows, Linux and macOS. This provides flexibility in
deploying applications across different environments.
• Designed for high performance, with concurrency and fast page loading. This makes it suitable for
applications that require high performance and fast response times.
• Open source, which means large and active community. This provides many resources, libraries,
and support from the community.
• Integrates well with front-end technologies like Angular, React, and Vue.js. This helps build
modern and cross-platform web applications.
• There are many built-in security features and are regularly updated to face new security issues.
This makes it a safe choice for applications that require high security.
• Integrates well with popular IDEs like Visual Studio and Visual Studio Code, providing a powerful
development experience and efficient tools.
Page | 9
3.2. Back End Programming Language
❖ C# (C-Sharp):

C# is the mainstream and official language of ASP.NET. It was developed by Microsoft and provides an
easy-to-read syntax, high performance, and support for many object-oriented programming features
(Microsoft, 2023).

❖ F# (F-Sharp):

F# is a functional programming language from Microsoft, intended primarily for applications and projects
that require scientific computing and big data processing (Microsoft, 2022).

❖ IronPython and IronRuby:

IronPython and IronRuby are versions of Python and Ruby respectively integrated into the .NET
environment (Ivanov, 2016).

I choose C# because of the following reasons:

• Specifically designed by Microsoft to integrate tightly with their frameworks, especially ASP.NET.
This combination delivers good performance and a smooth development experience.
• C# is an object-oriented programming language, which means it supports important concepts such
as inheritance, polymorphism, and abstraction. This helps create code that is easy to read,
maintain, and extend.
• There is a large community, full of resources and support online. This makes it easier for
developers to find solutions and share knowledge.
• Integration with Visual Studio: Integrated development environment for C#, providing many
powerful features, convenient debugging and performance optimization.
• Cross-Platform With .NET Core (Windows, Linux and macOS)

3.3. Web Server


ASP.NET can run on many different web servers. Here are some popular web servers that you can use to
deploy ASP.NET applications:
• Internet Information Services (IIS): is Microsoft's integrated web server and one of the popular
choices for deploying ASP.NET applications on Windows environments (Rosencrance, 2023). It
offers many powerful features and management tools.
• Apache HTTP Server: is a popular open source web server and can be configured to run ASP.NET
applications via the mod_mono or mod_aspdotnet module (Hernandez, 2019).
• Nginx: is an open source web server and proxy server. It can be configured to run ASP.NET
applications through FastCGI or reverse proxy combined with Kestrel (Kinsta, 2023).

Page | 10
I chose Internet Information Services (IIS) for ASP.NET application deployment because it offers a number
of benefits and conveniences, especially in a Windows environment. Here are some reasons why I choose
IIS:
• Deeply integrated into Windows systems, making deployment and management easy. It is well
compatible with management tools such as Microsoft Management Console (MMC).
• Specifically designed to support ASP.NET and the .NET Framework, making the process of
deploying and managing ASP.NET applications a breeze.
• Supports managing multiple websites (multi-site) on one server, allowing deployment of multiple
applications on the same server. It also provides powerful routing to direct requests to specific
applications.
• Provides many security features, including authentication and authorization, SSL/TLS, and access
management. This makes maintaining application security easy.
• Easy integration with other Windows services such as Active Directory, SQL Server, and other
services in enterprise systems.
3.4. Database
When developing ASP.NET applications, choosing a database is an important decision. Here are some
popular databases used in ASP.NET application development:
• Microsoft SQL Server: is a popular database management system (RDBMS), developed and
supported by Microsoft. It integrates well with ASP.NET and provides powerful features such as
stored procedures, triggers, and performance management.
• MySQL: is a popular open source database management system, widely used on many platforms.
It is well compatible with ASP.NET and provides features such as multi-user, transaction
management, and performance optimization.
• PostgreSQL: is an open source database management system with full ACID functionality.
• SQLite: is a lightweight database management system that does not require a separate server. It
is commonly used in mobile applications and small applications. For small projects or single
applications, SQLite can be a convenient choice.
• MongoDB: MongoDB is a NoSQL database management system that stores data as JSON-like
documents. It is suitable for applications with flexible data structures and data scalability
requirements.
I choose Microsoft SQL Server to manage the database for the following reasons:
• Microsoft SQL Server is developed and supported by Microsoft, so it integrates well with the entire
Microsoft ecosystem.
• Good Support for Entity Framework: Entity Framework is a popular ORM (Object-Relational
Mapping) in the ASP.NET community. Microsoft SQL Server has good compatibility and support
for Entity Framework, making it easy to manage and interact with databases.

Page | 11
• SQL Server is optimized to deliver high performance, with massive processing capacity and
efficient memory management. Performance management tools like SQL Server Management
Studio (SSMS) help monitor and optimize system performance.
• SQL Server supports In-Memory OLTP technology, which helps speed up queries and reduce
application response time. This makes it suitable for applications that require high performance.

4. Source control management tools


There are many platforms for managing source code such as SVN, Azure DevOps, GitLab and GitHub.
I choose GitHub to manage source code because of the following reasons:
• GitHub uses the Git version control system, which helps track change history, manage branches, and
restore source code from previous versions.
• Provide a collaborative work environment for the development team. Features like pull requests,
issues, and project management tools help teams work together effectively.
• Provides an issues and pull requests management system that helps track work, report bugs, and
implement new changes in an organized and transparent manner.
• It offers flexible security and access options. Administrators can control access rights for each member
and group, ensuring source code safety.
• GitHub is an extensible platform with a large development community. This creates opportunities to
learn, share knowledge, and contribute to open source projects.
• It is designed with a user-friendly interface, making it quick and easy to learn and use for both
beginners and experienced users.
5. Software Development Models
Software Development Models are models, methods, or processes used in the software development process
to organize, manage, and deploy projects in an organized manner. Here are some popular software
development models:
• Waterfall Model: A sequential and linear model in which each stage of the development process
begins only when the previous stage is completed. Suitable for projects with stable requirements.
• Iterative Model: The development process is divided into iterative cycles, each cycle creating a new
version of the system. Suitable for projects with unclear or frequently changing requirements.
• Incremental Model: Development is divided into small parts (increments) and each part is developed
independently. Suitable for projects that need to be implemented in parts.
• Spiral Model: Combination of sequential model and iterative model. Provides risk control and is
suitable for large and complex projects.
• Agile Model: focuses on developing in short, flexible cycles and being able to adapt to changes quickly.
I chose the Waterfall Model for the FPTBook system because of the following reasons:
• Requirements for the FPTBook system are clearly defined from the beginning and do not change
quickly.

Page | 12
• The design process is consistent and the entire system needs to be designed before implementation,
Waterfall can be a good choice.
• Small to Medium Scale Projects
• The project is small to medium scale
• Control risks and avoid sudden changes during development

Page | 13
References
Clarity, 2023. www.clarity-ventures.com/blog/benefits-of-using-bootstrap-for-web-design. [Online]
Available at: https://www.clarity-ventures.com/blog/benefits-of-using-bootstrap-for-web-design
[Accessed 11 22 2023].
Coursera, 2023. www.coursera.org/articles/front-end-languages. [Online]
Available at: https://www.coursera.org/articles/front-end-languages
[Accessed 22 11 2023].
Gadhavi, M., 2023. radixweb.com/blog/best-backend-frameworks#topBackend. [Online]
Available at: https://radixweb.com/blog/best-backend-frameworks#topBackend
[Accessed 22 11 2023].
Hernandez, J., 2019. www.sumologic.com/blog/apache-web-server-introduction/. [Online]
Available at: https://www.sumologic.com/blog/apache-web-server-introduction/
[Accessed 20 11 2023].
Ivanov, I., 2016. pvs-studio.com/en/blog/posts/csharp/0367/. [Online]
Available at: https://pvs-studio.com/en/blog/posts/csharp/0367/
[Accessed 22 11 2023].
Kinsta, 2023. kinsta.com/knowledgebase/what-is-nginx/. [Online]
Available at: https://kinsta.com/knowledgebase/what-is-nginx/
[Accessed 22 11 2023].
Microsoft, 2022. earn.microsoft.com/en-us/dotnet/fsharp/what-is-fsharp. [Online]
Available at: https://learn.microsoft.com/en-us/dotnet/fsharp/what-is-fsharp
[Accessed 22 11 2023].
Microsoft, 2023. https://learn.microsoft.com/en-us/dotnet/csharp/tour-of-csharp/. [Online]
Available at: https://https://learn.microsoft.com/en-us/dotnet/csharp/tour-of-csharp/
[Accessed 22 11 2023].
Rosencrance, L., 2023. www.techtarget.com/searchwindowsserver/definition/IIS. [Online]
Available at: https://www.techtarget.com/searchwindowsserver/definition/IIS
[Accessed 22 11 2023].

Page | 14

You might also like