1670-Gcs210314 HoangQuangQuyen Assignment 1
1670-Gcs210314 HoangQuangQuyen Assignment 1
1670-Gcs210314 HoangQuangQuyen Assignment 1
ID: GCS210314
Class: GCS1005C
Subject code: 1670
Assessor name: PHAN MINH TAM
Page | 1
ASSIGNMENT 1 FRONT SHEET
1. To Duy Tam
2. Hoang Quang 1. GCS200734
Student Name Quyen Student ID 2. GCS210314
3. Nguyen Cong 3. GCS200874
Toai
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:
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:
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.
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.
❖ 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
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
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:
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.
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.
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.
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).
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 are versions of Python and Ruby respectively integrated into the .NET
environment (Ivanov, 2016).
• 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)
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.
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