Professional Documents
Culture Documents
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
P4 P5 P6 M3 M4 M5 D2 D3
Summative Feedback: Resubmission Feedback:
Submission Format:
Format:
• An individual report document in PDF
Submission
• Students are compulsory to submit the assignment in 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 PDF file before the submission on CMS.
Note:
• The individual Assignment must be your own 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 this
requirement will result in a failed assignment.
LO3 Work individually and as part of a team to plan and produce a functional business application with
support documentation
LO4 Evaluate the performance of a business application against its Software Design Document and initial
requirements
Assignment Brief and Guidance:
Assignment scenario (continued from Assignment 1) Your team has finished the analysis and design for
the system. Next task is development of the system.
Tasks:
After the presentation about your design (from Assignment 1), you need to create a formal questionnaire that
effectively reviews your business application, problem definition statement, proposed solution and
development strategy. This formal questionnaire should be answered by your colleagues. For any new
insights, ideas or potential improvements to your system you need to evaluate and justify the reasons why
you have chosen to include (or not to include) them as part of this business application. Based on the feedback
of your colleagues, amend the design if needed.
Next task is to develop the business application based on the design, chosen technologies and methodology.
When the application is fully built and tested, you need to review its performance against the Software
Requirement Specificationn, analyze the factors that influence its performance and use them to undertake a
critical review of the design, development and testing stages of your application. Conclude your review by
reflectively discussing your previously identified risks. You should evaluate the strengths and weaknesses
of your business application and fully justify opportunities for improvement and further development.
To conclude, your report document should include:
• Peer review section (questionnaire and answers, your reflection on the feedback)
• Development section (how you develop and test the application, what is the result)
• Review section (review, analyse and critical evaluate your application)
Your team needs to prepare a demo based on this report for the final demonstration.
The working application must also be demonstrated.
Learning Outcomes and Assessment Criteria (Assignment 2):
Learning Outcome Pass Merit Distinction
LO3 P4 Create a formal M3 Interpret your D2 Evaluate any new
questionnaire that peer-review feedback insights, ideas or potential
effectively reviews and improvements to your system
identify
your business opportunities and justify the reasons why
not
application, problem you have chosen to include
previously considered.
definition statement, (or not to include) them as
proposed solution and part of this business
M4 Develop a application.
development strategy.
functional business
Use this questionnaire application based on a
as part of a peer- specific Software
review and document Design Document
any feedback given. with supportive
evidence of using the
preferred tools,
P5 Develop a
techniques and
functional business
methodologies.
application based on a
specified business
problem.
LO4 P6 Review the M5 Analyse the D3 Critically evaluate the
performance of your factors that influence strengths and weaknesses of
business application the performance of a your business application and
against the Problem business application fully justify opportunities for
Definition Statement and use them to improvement and further
and initial undertake a critical development.
requirements. review of the design,
development and
testing stages of your
application. Conclude
your review by
reflectively discussing
your previously
identified risks.
Table of Contents
I. Introduction .......................................................................................................................................... 7
II. Peer Review and Feedback Analysis ...................................................................................................... 7
2.1 Formal questionnaire ................................................................................................................................... 7
2.2 Collect review feedbacks .............................................................................................................................. 9
2.3 Interpret peer – review feedbacks .............................................................................................................. 12
III. Application Development .................................................................................................................. 13
3.1 Folder structure of the application .............................................................................................................. 13
3.2 Source code samples of the application with explanation ............................................................................ 16
3.3 Final screenshots of the application ............................................................................................................ 30
3.4 Screenshots of using GitHub or GitLab to manage the source code .............................................................. 32
3.5 Screenshots of using IIS or Azure for the application deployment ................................................................ 33
IV. Application evaluation ....................................................................................................................... 35
4.1 Review the performance of the application ................................................................................................. 35
4.2 Conclude whether the application adapts all requirements or it needs to be improved later ........................ 37
4.3 Analyze the factors that influence the performance of the application......................................................... 37
4.4 Evaluate the strengths and weaknesses of the application........................................................................... 37
REFERENCES ........................................................................................................................................... 40
ASSIGNMENT 2 ANSWERS
I. Introduction
The HKStore System is an online software application designed to aid bookstore customers and owners in
efficiently handling their book transactions. This involves simplifying the process for customers to select, order,
and purchase books, and for owners to manage user and product databases. Following the completion of the
Software Requirements Specification, a three-part document was established to monitor and gather information
during the entire development of the bookstore project:
- Assessment of Peer Review and Feedback.
- Progress in Application Development.
- Evaluation of the Application.
II. Peer Review and Feedback Analysis
2.1 Formal questionnaire
After introducing and detailing the features of the HK Book Store application to clients who examine and utilize
the system, they will have some recommendations depending on their perspective. The judgments and
comments are generated after evaluating our business application and the explanations of issue identification,
potential solutions, and strategy formulation that go along with it.
To get customer input on the system and suggestions for future enhancements, we've developed the types of
questions shown below.
Here is the provided link to the Google Form, the survey tool utilized for gathering data through the survey
process: https://forms.gle/xkNHwLhK7dx8DkN89
P ag e |7
P ag e |8
2.2 Collect review feedbacks
We carried out a survey involving 50 individuals who have been and are still engaging with our system. The
following information represents the data we gathered from their reviews, comments, and overall user
sentiments.
Figure 1: Question 1
The diagram demonstrates that 45% of the survey's participants were men, while 55% of its total participants
were women.
Figure 2: Question 2
The graph makes it clear that 31.7% of participants were between the ages of 25 and 30 years old, followed by
47.5% of participants who were between the ages of 18 and 25. Finally, the remaining 25% of the participants
were older than 30.
Figure 3: Question 3
According to the 50 respondents' survey results, different people seemed to have different levels of difficulty
navigating and finding what they were looking for on the website. Most respondents (52%) gave the site a
rating of 4 or 5, indicating that they found it to be reasonably simple to use. The navigation and search
functionality of the website, however, could stand to receive significant improvements given that more than a
third of respondents (38%) gave their experience a 1 or 2 out of 5. It is crucial that we take these findings into
account and implement the necessary changes to ensure that all visitors have a better user experience.
P ag e |9
Figure 4: Question 4
It's quite astonishing that over 85.7% of individuals have completed a purchase within our system, which is a
notably high figure for a recently established platform like ours. This is particularly surprising when we
compare it to the data indicating that more than a third of respondents (38%) have rated their experience as 1
or 2 out of 5. Thus, having 85.7% of people making a purchase is indeed unexpected.
Nonetheless, there remains a small percentage (14.3%) of individuals who have not made a purchase through
our system. This suggests that our website or store may be effective at converting visitors into customers. It
underscores the importance of sustaining or even enhancing this conversion rate through ongoing efforts.
Additionally, it's crucial to explore the reasons behind why some respondents did not make a purchase. This
feedback can serve as valuable insights for making necessary improvements to the website or store in order to
attract more customers.
Figure 5: Question 5
According to the data, most respondents (62%) gave their level of satisfaction with the products they received
a 3 or 4, indicating that they were only moderately satisfied. However, a sizable portion of respondents (24%)
indicated that they were dissatisfied with their purchase by giving it a satisfaction rating of 1 or 2 out of 5. We
can improve product quality and customer satisfaction with the help of this feedback. In order to prevent similar
unpleasant experiences in the future, we can make the necessary improvements by comprehending the causes
of the dissatisfaction.
Figure 6: Question 6
P a g e | 10
From the data, 76% of respondents gave their likelihood to recommend the website and store a rating of 3 or 4,
indicating that they felt generally positive about telling others about their experience. On the other hand, a
sizable portion of respondents (18%) gave their likelihood of recommending a 1 or 2, indicating that they were
dissatisfied with their experience. We must take this criticism seriously and implement the necessary changes
if we hope to raise customer satisfaction levels and increase the number of people who will recommend their
website and store to others.
Figure 7: Question 7
Here are some ideas that our users suggest after visit the website. To make users have a better experience, we
will consider and change our website.
Figure 8: Question 8
Here are some issues that users who visited our website ran into. To swiftly address and deliver a positive user
experience, we will investigate all issues that users encounter.
Figure 9: Question 9
P a g e | 11
As can be seen, 66% of respondents were interested in receiving updates, compared to 26% who were not. A
small percentage of respondents (8%) expressed interest, though some might need more details or incentives to
fully commit. We should pay attention to this feedback and make sure that their opt-in procedure is clear and
simple so that customers can easily sign up for their email updates. Additionally, we might think about
extending special discounts or deals to encourage customers who aren't sure to subscribe to email updates.
P a g e | 12
I can't add another book to my cart once I've added a Do you mean after adding a book to your cart, you
book to it. want to add it again? When a customer adds a book
to their cart, the system shows them their shopping
cart so they can confirm the book they just added and
change any quantities or remove any items they don't
want.
III. Application Development
3.1 Folder structure of the application
P a g e | 13
for files to serve to users who visit the website. All of the project's static files—those that don't change
dynamically based on user input or server-side processing—typically reside in the "wwwroot" folder.
P a g e | 14
Figure 16: DbContext class
Entity Framework (EF) Core Migrations are used to manage database schema changes under the "Migrations"
folder.
P a g e | 15
organized in the Views folder of the application.
P a g e | 16
This code defines a Book class with properties that map to attributes of a book stored in a database. The class
likely represents a part of a larger application, where books can be managed, categorized, and ordered. The
usage of attributes like [Key], [DatabaseGenerated], [Required], [ForeignKey], and [NotMapped] suggests that
this class is intended for use with an Entity Framework-powered database context.
P a g e | 17
Book entities.
P a g e | 18
Figure 28: ShoppingCart.cs
This code is used to represent shopping carts in a database-driven application. It has properties for the cart's
unique identifier, the associated user's ID, a collection of cart details (items in the cart), and a reference to the
user entity. The attributes like [Key], [DatabaseGenerated], and [ForeignKey] provide metadata to Entity
Framework for mapping this class to a database table and defining relationships between tables.
- View
P a g e | 19
Figure 30: Controllers folder
P a g e | 20
Figure 31: AdminController.cs
This code is used to define an administrative controller for handling tasks related to users, category requests,
and owner registration within an ASP.NET Core web application. The controller actions perform various
operations on the database and manage user roles and registration.
P a g e | 21
P a g e | 22
Figure 32: BookController.cs
This code implements a basic CRUD (Create, Read, Update, Delete) functionality for managing books in an
online bookstore, where an authenticated owner can add, edit, and delete books, including associated images.
It also includes role-based authorization to restrict access to certain actions.
P a g e | 23
P a g e | 24
P a g e | 25
Figure 33: CartController.cs
This code demonstrates a well-structured shopping cart functionality within an ASP.NET Core MVC
application, including adding items, removing items, viewing the cart, and completing the checkout process.
The logic involves interactions with the database to store and retrieve cart and order-related information.
P a g e | 26
Figure 34: CategoryController.cs
This code represents a controller responsible for managing categories in a bookstore application. It provides
actions for listing, creating, editing, and deleting categories while enforcing authorization rules to restrict access
to users with the "Owner" role. It uses a database context to interact with the underlying database.
P a g e | 27
Figure 35: HomeController.cs
This code represents the backend logic of a web application that handles requests to display lists of books, book
details, and error pages. It interacts with a database context to fetch data and creates appropriate models for
rendering views. It also handles routing and caching behaviors for specific actions. The corresponding front-
end views would complete the presentation layer of this application.
P a g e | 28
Figure 36: OrderController.cs
This code is used to defines with several actions that allow users with different roles to view their own orders
or for owners to view all orders. It demonstrates how to use dependency injection, authorization attributes, and
Entity Framework to interact with a database and provide users with relevant order information.
- Connect database
The next step is to connect the data to the database. To do this, we use the following statement in the
appsettings.json file to establish a connection with SQL Server:
P a g e | 29
Figure 37: Database of HKBook project
3.3 Final screenshots of the application
There are all of my website's pages:
- Login: The title and navigation pages have been removed for a clearer view of the Login page.
P a g e | 30
- Home: When a user checks in, the system displays a component in charge of regulating how users, including
store owners, administrators, and customers, behave. Customer accounts only have minimal control, whereas
more privileged accounts, like store owners and administrators, have access to the system's internal workings.
P a g e | 31
Information about the date you bought it, the book, price, and quantity will be shown there.
P a g e | 32
Figure 46: GitHub
The archive was cloned to the computer using the command after that.
P a g e | 33
Figure 49: Interface of IIS
P a g e | 34
Figure 51: Fill in the information on the website
Then, select Browse Website from the list of options in the right sidebar to view the recently launched website.
P a g e | 35
2 Add Book Check to see if To access their On the book details The book that Book: "The Pass
to Cart. the user can add account, the user page, look for the "Add was added, Proposal"
a book from the is logged in. to Cart" button. together with Quantity: 1
book details page The user is now Select "Add to Cart" its title, author,
to their shopping on a book's from the menu. price, and
basket. information quantity, should
Go to the page for the be visible on
page. cart. the cart page.
3 Checkout Make sure the The user has Click the "Checkout" Both a Pass
Process user can filled their button on the cart page. confirmation
successfully shopping cart message stating
finish the with products. the order was
checkout On the shopping successful and
procedure. cart page is the the order item
user. cart is shown
empty
4 Registration Check that a new None On the homepage, click The user should Name: Pass
user may sign up the "Register". be taken back Michael
for an account on Include all necessary to the Phan
the online registration homepage after Email:
bookshop information, including registering ankhephan
application. name, email, and successfully, hoa1703@
password. along with a gmail.com
confirmation
Send the registration message. The Password:
form in. system should @dminTE
keep track of ST123
the user's
account
information.
5 Book Check that users To access their On the page with the The user's Click on Pass
Details may click on account, the user book's details, click on name, review “Sherlock
book reviews to is logged in. the book shown in text, and star Holmes” in
the online The user is now homepage. rating ought homepage
bookstore on a book's Select each book to should appear
application. information know the book details. alongside the
page. review in the
"Details"
section.
Accordingly,
the book's total
rating ought to
change.
P a g e | 36
6 Test Admin Check that Log in as Admin Click on Log In Button After Log In Username: Pass
Function Admin Role Role in Navbar steps, the Admin@g
should be addmin mail.com
worked dashboard Password:
correctly. which is Admin@1
developed only 23
for Admin
shown, admin
can add, delete
user, owner and
approve or
cancel
incoming
category from
Owner Role.
7 Test Owner Check that Log in as Owner Click on Log In Button After Log In Username: Pass
Function Owner Role Role in Navbar steps, the Owner@g
should be owner mail.com
worked dashboard Password:
correctly. which is Owner@12
developed only 3
for owner
shown, owner
can add, delete
book, add
category to the
wait list which
is mange by
Admin Role.
8 Test User Check that User Log in as User Click on Log In Button After Log in, Username: Pass
Function Role should be Role in Navbar user can use User@gma
worked function like il.com
correctly. add to cart, and Password:
checkout. User@123
Moreover, user
can watch their
history order.
4.2 Conclude whether the application adapts all requirements or it needs to be improved later
The system's core functions remain steady. It has CRUD, role management, login, and logout functionality, and
the admin can approve or disapprove the shop owner's request for a new book category. We intend to roll out
more services in the future, such as a more enjoyable user experience and online payments, based on data about
each client, business owner, and administrator.
4.3 Analyze the factors that influence the performance of the application
The operation of the software was evaluated in light of numerous scenarios and possible outcomes that might
arise during user use. The developer has addressed many issues to encrypt data as effectively as possible while
removing unintentional errors. For example, a customer who lacks the rights specified in the necessary
paperwork won't be able to use or access the admin capabilities. However, by displaying and hiding
functionality based on a user's role, the developer reduces the likelihood that users will unintentionally use
capabilities for which they are not authorized.
4.4 Evaluate the strengths and weaknesses of the application
Advantages:
P a g e | 37
- The MVC architectural pattern and the ASP.NET framework allow each source code module to function
differently, making the source code easy to maintain, debug, and run. Functional modularization makes the
code more readable, flexible, and organized, which lowers the risk of errors and other problems. Independent
components make program processing, as well as application design, administration, operation, and
maintenance, simpler. Accessing the application is made simpler by a standardized project model created by
the MVC methodology.
- Apply the following methods, techniques, and tools to create a practical business application based on a
specific Software Design Document: The main goal of the system is to be fully operational. It includes CRUD,
role management, login and logout functionality, and an admin who can accept or reject the shop owner's
request for a new book catalog. Additionally, it includes a chart that lists information about each customer,
business owner, and administrator, as well as the option to export data to Excel. The entities from the class
diagram were put into practice. As shown in the class diagram, each object will also have attributes and
methods. To make the system more realistic, the system's designer gave administrators and business owners
the option to upload images.
- According to the requirements specification, an administrator's responsibilities include the ability to add to,
edit, delete from, and view lists. When a user adds, updates, or deletes something, the database system is
notified. The user's request will cause the data to be updated. To make sure they are thorough, effective, and
error-free, functions are tested.
Disadvantages:
- Security:
+ User information gathering: Information about users may be compiled using crawl data. This technique
can only be used to gather easily accessible online data. However, a sizable amount of personal data is present,
such as contact details like phone numbers and email addresses. The system, however, only encrypts passwords.
The server may have problems if a crawler sends it a lot of requests in an effort to get data.
+ Reputational harm: Most e-commerce websites will incur long-term losses as a result of reputational
damage. Particularly smaller online retailers run the risk of having to close down if their customers and
suppliers lose faith in them. More than ever, you need a plan for handling data breaches.
- The user interface:
+ As was previously mentioned, it can be difficult for the administrator to set a user restriction when there are
too many users. Pagination is therefore required. Pagination is a technique for tying together multiple landing
pages with pertinent content. It is now simpler for the administrator to update and improve the program's
UI/UX.
- Lack of functionality:
+ View system users who are currently logged in and out: The ability to manage users who are logged in and
out of the system will be very helpful to the administrator since this is a management application. Statistics on
how many users access the system online versus offline will also aid the team in making quick and simple
improvements. The team was unable to finish it, so this feature was not utilized.
+ The picture error: Administrators occasionally upload photos that are incorrect or excessively large; to
improve user experience, the error will be displayed. If there are no images in the folder, the information will
be displayed.
- The project's difficulties:
+ The development team's first project is unfamiliar to us, which causes a number of difficulties. Disputes arise
frequently between members when pulling and submitting source code due to incompatible hardware and
libraries. When I concurrently uploaded the updated source code to GitHub, we ran into an issue and had to
adjust our approach. This issue arose after we learned how to fork on GitHub.
P a g e | 38
+ A few features have been agreed to be removed, but we will work to eventually add every feature to the
system. Additionally, we discovered some extremely serious bugs that took us days to fix as well as some
features that we had originally planned to add to the system but that, once they had been, produced conflicts
and errors that were impossible to correct.
P a g e | 39
REFERENCES
GEEKSFORGEEKS. 2023a. Bootstrap Tutorial [Online]. Available:
https://www.geeksforgeeks.org/bootstrap/ [Accessed August 20 2023].
GEEKSFORGEEKS. 2023b. CSS Tutorial [Online]. Available: https://www.geeksforgeeks.org/css/ [Accessed
August 20 2023].
GEEKSFORGEEKS. 2023c. Differences Between .NET Core and .NET Framework [Online]. Available:
https://www.geeksforgeeks.org/differences-between-net-core-and-net-framework/?ref=gcse [Accessed
August 21 2023].
GEEKSFORGEEKS. 2023d. HTML5 | Introduction [Online]. Available:
https://www.geeksforgeeks.org/html5-introduction/ [Accessed August 19 2023].
GEEKSFORGEEKS. 2023e. Introduction to Github [Online]. Available:
https://www.geeksforgeeks.org/introduction-to-github/ [Accessed August 22 2023].
GEEKSFORGEEKS. 2023f. Introduction to Visual Studio [Online]. Available:
https://www.geeksforgeeks.org/introduction-to-visual-studio/ [Accessed August 19 2023].
GEEKSFORGEEKS. 2023g. MVC Framework Introduction [Online]. Available:
https://www.geeksforgeeks.org/mvc-framework-introduction/?ref=gcse [Accessed August 22 2023].
P a g e | 40