You are on page 1of 41

Higher Nationals in Computing

Unit 30: Application Development


ASSIGNMENT 2

Learner’s name: Tran Quang Hien/Phan Hoa An Khe


ID: GCS210109/ GCS210040
Class: GCS1003A
Subject code: 1670
Assessor name: LE NGOC THANH

Assignment due: Assignment submit


ASSIGNMENT 2 FRONT SHEET

Qualification BTEC Level 5 HND Diploma in Computing

Unit number and title Unit 30: Application Development

Submission date Date Received 1st submission

Re-submission Date Date Received 2nd submission

Tran Quang Hien GCS210109


Student Name Student ID
Phan Hoa An Khe GCS210040

Class GCS1003A Assessor name Le Ngoc Thanh

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:

Grade: Assessor Signature: Date:

Signature & Date:


Assignment Brief 2 (RQF)
Higher National Certificate/Diploma in Computing.
Tran Quang Hien/GCS210109
Student Name/ID Number:
Phan Hoa An Khe/GCS210040
Unit Number and Title: Unit 30: Application Development
Academic Year: 2023
Unit Assessor: Le Ngoc Thanh
Assignment Title: Application development with design diagrams and code
Issue Date:
Submission Date: 22 August 2023
Internal Verifier Name:
Date:

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.

Unit Learning Outcomes:

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.

Figure 10: Question 10


Most respondents (60%) gave the app's overall quality a score of 4 or 5, indicating that they were generally
happy with its functionality. However, a sizable portion of respondents (40%) gave the application's overall
quality a 1, 2, or 3 out of 5 stars, indicating that there is room for improvement to improve the user experience.
We should think about identifying the areas where their app might be lacking based on this feedback and take
the necessary actions to improve it. By doing this, we can boost customer satisfaction levels and enhance our
standing as a provider of high-quality goods.
2.3 Interpret peer – review feedbacks

Feedback of customer Review by our teams


I can't pay for my order by using online methods such The system is so new that establishing connections
as Visa, Debit, PayPal, etc. with banks or other businesses to offer payment
services is quite challenging. As a result, the online
payment option for delivery will be temporarily
unavailable during the system's early stages.
The interface of the system looks quite confusing For a more accurate representation, we want to show
because it displays everything on the screen and does all books in the system when a user visits the book
not follow any standards. page as well as notable books on the system's home
page.
The application appears to be using the default design For customers to view it very easily and without the
of the system, which makes it overly straightforward necessary qualities, we have used CSS to support
and unable to draw in new users. system decoration and to redecorate based on its
original design. And moving forward, we'll update
the CSS frameworks for the system to take the place
of the relatively cumbersome CSS that currently
supports its look and feel.
When I register a new account and log in with this Once logged in, the user has the option of adding
account, I can't add the book to the cart. books directly from the book page or after viewing
the website's content.

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

Figure 11: Folder structure of the application


All the information needed to launch the program is contained in the launchSettings.json file, which can be
found in the Properties folder. Configuration information specifies what should happen when the program is
run, such as IIS settings, application URLs, authentication, SSL port information, and others.

Figure 12: launchSettings.json file


A website or web application's root directory is the "wwwroot" folder. It is where web servers by default look

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.

Figure 13: "wwwroot" folder


The Areas folder will include the program's initial Identity pages, including Login, Register, etc. It can be
altered to fit the application we are developing.

Figure 14: Area folder


Each incoming request is tracked by the controller. This folder contains all of the controllers required for the
project. Controlling end-user interaction, making changes to the model, and deciding which view to display the
UI are all tasks that fall under the purview of controllers. All controller classes descend from a Controller or
ControllerBase class. For instance, you can find the default "HomeController.cs" file here. As shown below,
each controller class has "Controller" appended to the class name.

Figure 15: Controller folder


A key element of Entity Framework, the DbContext class is in charge of managing data persistence in databases
and is represented by ApplicationDbContext.cs. Therefore, additional files representing database entities (such
as user data or product data) and migrations for changing the database schema may be found in the Data folder.
Overall, the ApplicationDbContext.cs file in the Data folder probably acts as the data access layer for an
ASP.NET Core application, giving users a structured interface for interacting with and manipulating database
data.

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.

Figure 17: Migrations folder


Individual database schema changes are represented by files in the "Migrations" folder, which can be applied
or undone using the EF Core Migrations commands. These files contain code that alters the database schema
by adding or removing constraints, tables, columns, and indexes.
The data and business logic of the application are represented by the Model. Its duties include managing the
data, getting it from the data source, storing it, and applying business rules to it. In other words, the Model is
made up of the code that represents the classes, objects, and data access layers that make up the application's
domain logic. It specifies how the data should be organized, verified, and processed. The Controller receives
data from the Model and is in charge of responding to user requests, working with the Model to update or
retrieve data, and sending the updated or retrieved data back to the View. The Model is accessed by the
Controller to retrieve, update, and execute business logic.

Figure 18: Models folder


The application's user interface (UI) is represented by the View. It is in charge of rendering the model data to
the user and typically generates HTML using Razor syntax. Views may include a combination of HTML,
JavaScript, and CSS in addition to server-side ASP.NET code that interprets user input and produces dynamic
content. Views can be extended and customized to meet the unique needs of the application and are typically

P a g e | 15
organized in the Views folder of the application.

Figure 19: Views folder


The web application's entry point is a program class. Both the host and the run function are constructed and
called.

Figure 20: Program.cs class


3.2 Source code samples of the application with explanation
- Model

Figure 21: Book.cs

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.

Figure 22: BookDisplayModel.cs


The BookDisplayModel class is intended to hold information related to displaying a list of books along with
some additional properties for categories and search terms.

Figure 23: CartDetail.cs


This code is used for represents a detailed item in a shopping cart, including information like the book, quantity,
unit price, and associated shopping cart.

Figure 24: Category.cs


This code is used to represent a category entity in a database. It has properties for the category's ID, name,
description, and status. Additionally, it has a navigation property Books that can hold a collection of related

P a g e | 17
Book entities.

Figure 25: Order.cs


This code defines an Order class with properties related to order information, including its primary key, user
ID, creation date, associated order details, and a navigation property for the linked user. It's designed for a
database-driven application where orders and their details are stored and managed using Entity Framework.

Figure 26: OrderDetail.cs


The OrderDetail class defines the structure of an order detail, including properties to store information about
the order, the book, the quantity, and the unit price. The [Required] attribute enforces that certain properties
must have values assigned when creating an instance of the class. The Order and Book properties are navigation
properties that can be used to access the associated Order and Book objects, respectively.

Figure 27: Owner.cs


This class is designed to hold information about an owner, with various validation rules applied to the properties
to ensure data integrity and proper user input. The Display attributes are used for user interface labeling, and
the Required and StringLength attributes help ensure that the provided data meets specific criteria.

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

Figure 29: View folder


- Controllers
Then, in the Controllers folder, we create file controllers to carry out each model's operations, such as create,
delete, edit, and 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.

Figure 38: Login page


- Register: The input column has been increased in size, the info column has been converted to a vertical
column, and the information fields have been moved to the center of the page.

Figure 39: Register 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.

Figure 40: Home page


- Details: By pressing the book image, you can see the detail of its. Information about the image, title, price,
publication date, description, price, and category will be shown there.

Figure 41: Book Detail


- Cart: Information about the item, including its title, price, and quantity, will be shown there. By pressing the
increase (decrease) button, the customer will alter the quantity of the product because the system will update
the new order and calculate the new price based on the number of items they have selected.

Figure 42: Cart page


- History Order: By pressing the history order in your profile, you can see what book you have bought.

P a g e | 31
Information about the date you bought it, the book, price, and quantity will be shown there.

Figure 43: History Order page


- Manage account: You can change your password or update your phone and image in your profile page.

Figure 44: Update password

Figure 45: Update phone and image


3.4 Screenshots of using GitHub or GitLab to manage the source code
The source code for the project is kept on GitHub.
It is simple to publish your code (or projects) using the website GitHub. GitHub offers online storage for our
private git repository. In essence, it makes it possible for you to collaborate with others. It supports all of Git's
features as well as its own.
GitHub can be considered as a social media platform for engineers to share their work. Any project, such as the
development or redesign of a website, or the adoption of an operating system like Linux or Android, could
qualify.

P a g e | 32
Figure 46: GitHub
The archive was cloned to the computer using the command after that.

Figure 47: Clone code


After fixing bugs, and errors and updating functions for our web application, I use:
- “git add .” to add all files, folders and it’s already committed to GitHub
- “git commit -m "Update" to add commit with the description to know the source committed for, such as add
Category, fix Homepage, etc.
- “git push -u origin main” to push the source on GitHub.

Figure 48: Upload to GitHub


3.5 Screenshots of using IIS or Azure for the application deployment
The application for the project that we decide to deploy is IIS.
The Windows Process Activation Service (WAS), which enables websites to use protocols other than HTTP
and HTTPS, is part of the request-processing architecture offered by Internet Information Services (IIS) 7 and
later.
- A Web server engine that allows for module additions and deletions for customization.
- Pipelines for processing requests from IIS and ASP.NET that are integrated.
To add a website, first right-click on Sites and select Add Website.

P a g e | 33
Figure 49: Interface of IIS

Figure 50: Add website page


Input the site name and physical path into File Publish. Binding, then click OK after selecting the pertinent IP
address.

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.

Figure 52: Go to the website


IV. Application evaluation
4.1 Review the performance of the application
ID Title Description Preconditions Test Steps Expected Data Status
Result
1 Search for a Check that the The user is Enter the title of a book A list of books Search Pass
Book user can use the currently on the ("Sherlock Holmes") appeared on the Query: "
bookshop online web application into the search bar. search results Sherlock
application's for the Click on the "Search" page that Holmes ".
search function bookstore's home button. correspond to
to look for a page. the search term
book. Wait for the search
results to load.

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

You might also like