Secondhand Products Buy and Sell Mobile Application

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 32

UCCD2213 Software Engineering Principles

UNIVERSITI TUNKU ABDUL RAHMAN

JUNE TRIMESTER 2023

UCCD2213 SOFTWARE ENGINEERING PRINCIPLES

ASSIGNMENT FULL REPORT

[Secondhand Products Buy and Sell Mobile Application]

DIGITAL
NO STUDENT ID STUDENT NAME
SIGNATURE

1 20ACB02490 Boo Kelly

2 21ACB02494 Huang Yifan

3 20ACB03958 Lim Xin Wei

4 19ACB03288 Wong Teng Wei

1
UCCD2213 Software Engineering Principles

Table of Contents
1.0 Project Introduction .................................................................................................................... 3
1.1 Block Diagram ........................................................................................................................ 3
1.2 Description of Block Diagram ................................................................................................ 8
1.2.1 Seller Inventory Management Module (Done by: Wong Teng Wei).............................. 8
1.2.2 Product Listing and Browsing Module (Done by: Wong Teng Wei) ............................. 8
1.2.3 Product Recommendation Module (Done by: Wong Teng Wei) .................................... 9
1.2.4 Product Value Estimator module (Done by: Wong Teng Wei) .................................... 10
1.2.5 User Authentication Module (Done by: Lim Xin Wei) ................................................ 11
1.2.6 Admin Management Module (Done by: Lim Xin Wei)................................................ 12
1.2.7 User Interface Module (Done by: Lim Xin Wei) .......................................................... 13
1.2.8 Shopping Cart Module (Done by: Boo Kelly) .............................................................. 14
1.2.9 Payment Module (Done by: Boo Kelly) ....................................................................... 14
1.2.10 Delivery Module (Done by: Boo Kelly) ....................................................................... 15
1.2.11 Messenger Module (Done by: Huang Yifan) ................................................................ 15
1.2.12 Community Profile Module (Done by: Huang Yifan) .................................................. 16
1.2.13 Customer Service Module (Done by: Huang Yifan)..................................................... 17
1.2.14 Permission Authentication Module (Done by: Huang Yifan)....................................... 17
1.3 Objectives ............................................................................................................................. 18
2.0 System Requirements................................................................................................................ 19
2.1 Sprint 01 (Done by: Lim Xin Wei) ....................................................................................... 19
2.2 Sprint 02 (Done by: Wong Teng Wei) .................................................................................. 21
2.3 Sprint 03 (Done by: Lim Xin Wei) ....................................................................................... 24
2.4 Sprint 04 (Done by: Huang Yifan)........................................................................................ 26
3.0 System Architecture Pattern...................................................................................................... 28
3.1 Software Architecture Pattern ............................................................................................... 28
3.2 Description of Software Architecture ................................................................................... 28
3.3 Justification ........................................................................................................................... 31

2
UCCD2213 Software Engineering Principles

1.0 Project Introduction


1.1 Block Diagram

B
D

3
UCCD2213 Software Engineering Principles

4
UCCD2213 Software Engineering Principles

5
UCCD2213 Software Engineering Principles

6
UCCD2213 Software Engineering Principles

(Figure 1.0: Block Diagram)

7
UCCD2213 Software Engineering Principles

1.2 Description of Block Diagram


1.2.1 Seller Inventory Management Module (Done by: Wong Teng Wei)
The Seller Inventory Management Module is a comprehensive tool designed for sellers to carry out an
array of operations. These include adding new second-hand items, removing products, adjusting product
details, and controlling whether a product is publicly visible. To gain access to these functionalities, a
seller must first pass a verification process, to prevent any unauthorized access. Plans are in place to
incorporate facial recognition technology into this process, making it easily accessible via a mobile
device.

Once verification is successful, sellers are presented with a list of their previously added
products. They also have the option to introduce a new item to the marketplace for potential buyers to
view and purchase. Before the product's information is stored in the database, the system performs an
input validation check. This ensures that all required fields have been correctly filled and that the data
format is correct. If all inputs are valid and data storage is successful, the system sends a notification to
the seller.

Sellers also have the ability to view the finer details of a product by simply clicking on the item
in the list. If necessary, they can adjust these details. However, to maintain data integrity, all
modifications also undergo an input validation check before any updates are made in the database.

The module also allows sellers to delete a product from their list. A notification is triggered
upon successful completion of this operation.

A key feature of this module is the ability for sellers to control the visibility of their products.
They can decide whether to make a product publicly available or not. If a product is marked as public,
it is included in the product catalogue, making it available for all users to purchase. Conversely, if set
to private, the product is removed from the catalogue and is only visible within the seller's own product
inventory.

1.2.2 Product Listing and Browsing Module (Done by: Wong Teng Wei)
The rise of e-commerce has necessitated the evolution of e-marketplaces that enable seamless and
effective product discovery. E-marketplaces are designed with a host of features, including search
capabilities, sorting, filtering, and the ability to display a well-organized product list, to create a user-
friendly and efficient shopping experience.

The sorting function of an e-marketplace is a crucial element in improving the browsing


experience. Users have the flexibility to arrange the product list by date and price. This allows shoppers
to view the most recent items or sort products based on their price, either from lowest to highest or vice

8
UCCD2213 Software Engineering Principles

versa. This kind of functionality not only ensures a personalized user experience but also enables
quicker decision-making, as it caters to different shopping styles and preferences.

In addition to sorting, e-marketplaces provide users with an assortment of filtering options,


enabling them to navigate the vast expanse of products available. These options can range from brand,
category and condition to price range, among others. For instance, a user might opt for brand filtering
and choose ‘H&M’, category filtering and choose ‘Fashion’, condition filtering to select ‘Like New’,
and price range filtering to pick ‘RM50 to RM70’. These selected attributes are then used to filter the
product list, presenting the user with a customized list of products that fit their specific criteria. This
enhances the customer experience by narrowing down options and saving valuable browsing time.

The search function is another fundamental feature of an e-marketplace. It offers users the
ability to directly search for a product by typing in the product name, seller name, or other criteria. This
input is processed by a search engine that sifts through the product catalogue to find matches, making
product discovery faster and more straightforward.

The product catalogue serves as a critical component of an e-marketplace. It is essentially a


comprehensive list of all available products for users to explore and purchase. However, a product is
only listed and displayed in the catalogue if the seller has set its visibility to ‘public’. This design ensures
that users only see products intended for sale by the sellers, enhancing overall user trust and experience
in the e-marketplace.

All these functionalities – searching, sorting, and filtering – operate on the data from the product
catalogue, delivering a curated result to the users. They work together in concert to streamline the
shopping process, ensuring that users can navigate the e-marketplace effectively, making it a user-
friendly platform that caters to diverse shopping preferences and needs. This, in turn, plays a pivotal
role in retaining existing customers and attracting new ones, ultimately driving the success of the e-
marketplace in the highly competitive e-commerce landscape.

1.2.3 Product Recommendation Module (Done by: Wong Teng Wei)


In today's digitized world, user behavior analysis forms an integral part of improving user experience
and personalizing services. One method to track user behavior is by monitoring the search input within
a system. This can be readily accomplished by implementing powerful analytic tools like Google
Analytics, which offer real-time tracking capabilities.

The incorporation of Google Analytics into a system allows for comprehensive tracking of user
events, including what users are searching for. This knowledge provides valuable insights into user
preferences and behavior patterns. The information collected is invaluable as it offers real-time insights
into market trends and customer behavior, thereby allowing for the optimization of user experience.

9
UCCD2213 Software Engineering Principles

However, for this data to be useful, it needs to be processed and formatted appropriately.
Collected data can come in various forms and structures, hence requiring a conversion process to a
format that is suitable for subsequent data analysis and processing. This step ensures that data
inconsistencies do not interfere with the accurate interpretation and analysis of user behavior.

The integration of a trained recommendation model within the system takes this process to the
next level. This model draws from historical user search inputs to rank products in the product catalogue.
The working of the recommendation model can be seen as similar to learning from past experiences,
the more data it has, the more accurate its predictions are.

The recommendation model uses algorithms to analyze the user's past behavior and preferences
to suggest products they might be interested in. The output of this model is a ranked list of products
where the items that are most likely to be of interest to the user are placed at the top. This is beneficial
for both the user and the business. For users, it reduces the time and effort required to find relevant
products. For businesses, it increases the chances of product discovery and subsequent purchase, leading
to increased sales and customer satisfaction.

1.2.4 Product Value Estimator module (Done by: Wong Teng Wei)
In the burgeoning field of e-commerce, especially the secondhand market, precise product pricing is
crucial. To assist sellers in this regard, they can use a tool called the secondhand Product Value
Estimator to gauge an appropriate price for their product, factoring in its depreciation over time and
condition.

The value estimation process begins when a seller inputs critical information about the product
into the system. These details include the product's brand, category, original price, age, and condition.
Each of these attributes plays a significant role in determining the product's depreciated market value.
For example, some brands may retain value better than others, while an older or more worn product is
likely to fetch a lower price.

Following the input of these details, the system extracts the relevant attributes for further
processing. The data undergoes a transformation from raw, possibly unstructured information, into a
structured format that the price estimation model can interpret and analyze. This rigorous data
processing stage ensures that the output, the estimated price, accurately reflects the product's value,
considering the variables provided by the seller.

Once processed, the structured data is loaded into a trained price estimation model. This model,
crafted with the help of data mining and machine learning, is the cornerstone of the Product Value
Estimator. Data mining enables the model to extract and analyze relevant online data related to similar

10
UCCD2213 Software Engineering Principles

secondhand products. Meanwhile, machine learning algorithms allow the model to learn from this data,
improving its ability to predict prices accurately over time.

Importantly, the price estimation model doesn't just derive the current market value of a product;
it adjusts this value to account for the product's age and condition as specified by the seller. Thus, it
provides an estimated secondhand value that realistically reflects the wear and tear and the time value
of the product.

Upon completing these complex calculations, the model produces a price range for the seller's
product. This range provides a certain degree of flexibility and mimics the real-world dynamics of price
negotiations, commonly found in the secondhand market. Thus, the secondhand Product Value
Estimator module offers a valuable tool for sellers in the digital marketplace, enabling them to price
their products with confidence and accuracy.

1.2.5 User Authentication Module (Done by: Lim Xin Wei)


The user authentication module is about a procedure that ensures that someone attempting to access the
second-hand application is who they claim to be by preventing unauthorized users from getting access
and perhaps stealing information and causing unnecessary issues. It aims to secure the user’s security
and reliability. In this module, it included the register account, login account, and reset password.

For first-time users who have not yet owned an account, they must create and register a new
account. Registration grants users’ access to the application’s entirety of features and functionality. This
improves the user experience and enables users to fully explore what the application offers. Users are
required to key in their personal details as a profile to store their information. For example, name, phone
number, email address, and other details. Then new users have to do a series of validations by scanning
their face to make sure that it is a real human and not a robot or someone who wants to use it as scam
platform. Fingerprints will also be requested to recognize the user. In the future, it will be used to
perform activities for which users need to scan their fingerprints to confirm that they are performed by
the user themselves. After successfully registering for an account, users will be brought back to the
login page to login to their account. When done with the login, all of the data and information will be
stored in the cloud firebase services.

As for existing users, they can directly login to their account. The login section is the most
important aspect of an application with an identified member. Users have a few choices for the login
method. Those methods include using a username and password, fingerprint, face ID, email, and phone
number. If the login is not successful, it will return back to the login page until the user successfully
logs into their account. Users who forgot their password must reset it in order to login to their account.
Users have two choices for receiving the message with the reset password link, which are either through

11
UCCD2213 Software Engineering Principles

email or a phone message. The reset password message is sent to a third-party application to ensure the
security of user’s account. Users go to the platform where they choose to reset the password. When
done with resetting the login password, the user can go back to the login page to login to their account
with a new password. If users successfully login to their accounts, the data will be stored in the firebase
cloud service.

The user authentication module is a critical component of digital security and the user
experience. User authentication secures against unauthorized access and protects critical information
from potential breaches through a careful process of identity verification. It strengthens the digital
barriers that protect user accounts by applying strong authentication techniques. Aside from safety, the
user authentication module helps to create a seamless and personalized user experience. It provides
customized interactions, personalized content, and user-specific preferences by securely identifying
individuals. This not only increases engagement, but it also promotes a sense of familiarity and
ownership in the digital environment.

1.2.6 Admin Management Module (Done by: Lim Xin Wei)


An admin management module is a software component within an application that allows certified
administrators or superusers to administer and oversee user accounts, system settings, and numerous
functionalities. From an administrative standpoint, this module is critical to maintaining the
application’s proper functioning, security, and administration. It is a module for managing users. In
software applications with a lot of users, complicated interactions, and the requirement for effective
oversight and control, an admin management module is essential.

As an application’s admin, they have the authority to manage user information. An admin can
view every piece of detailed information about all the users. After that, admins are also able to modify
user information that is incorrect. For example, a typo or a user typing an extra character. Besides,
admins also have the authority to delete a user’s information. For instance, if a user inputs information
that is not valid or does not exist. Administrators manage user data, guarantee accuracy, consistency,
and appropriate management of user information. All of the changes that have been made by admin will
be saved in cloud firebase. If either an edit or deletion of user information has been made by admin, a
message will be sent to the user to notify them. This module enables admin to quickly inspect, change,
and delete user information. This is critical in keeping an accurate user database and ensuring that only
authorized users can access it.

Tracking user activities on the application can aid in the detection of unusual or suspect
behaviors, which may indicate unauthorized access or fraudulent activity. Early detection can help
prevent security breaches and safeguard user data. Admins will need to track suspicious users from time
to time. For users to be tracked for abuse using the application, admin will take action by admin. For

12
UCCD2213 Software Engineering Principles

the first time, the user will get a reminder. For the second time, the user’s account will be banned.
Banned user assist guarantees that this application’s community follows specified guidelines and
standards for behavior. This fosters a respectful and friendly environment for all users.

Admin will receive two kinds of reports from users, which are reporting to other users and also
reporting the application. User reports are frequently about abusive, inappropriate, or dangerous
behavior. Administrators must be notified of such situations to respond quickly and safeguard the
security and well-being of all users. When admins receive reports of reporting users, they need to check
the user’s activities to confirm that the report is true. Then the reminder and action to ban the account
will be carried out. For the second report of the application, if there is a solution to solve that problem,
admin will send the solution to the user. Otherwise, the application will be sent for modification. User
reports can identify technological flaws, faults, or other issues that administrators may be unaware of,
assisting in the maintenance of the application’s functioning and quality.

Sometimes, some users will request a receipt as proof of transaction and record keeping.
Receipts are proof that a financial transaction occurred. They show what was bought by the user, when
it was bought, and the total amount that had been paid. This evidence is critical for both buyers and
sellers in determining the conditions of the transaction. Admin will need to create a receipt. Before
sending to the user, admins have to double check to make sure the receipt details are correct. Then, the
receipt will be sent to the user.

1.2.7 User Interface Module (Done by: Lim Xin Wei)


It is critical to meet user expectations and support the application’s user interface module’s effective
functionality. The user interface module is in charge of aesthetically appealing and interactively
delivering the application’s functionality to the user. It allows users to interact with the application,
launch actions, and examine the outcome of these actions. It represents the focal point of interaction
and communication between humans and devices, encompassing components such as display screens,
keyboards, a mouse, and the overall desktop appearance.

The application will automatically identify the login performed by the user using their login
method. Users can view their own profiles and information that has been stored in the application. In
this, they can make changes to their personal information by editing their profile and updating their
profile to the latest version of information. If there are any changes made to their information, the
changed data will be saved as an update profile. The password can also be changed by the user in their
profile. They can simply choose on the change password function. Before changing the new password,
users are required to enter their old password for the verification. It ensures security that it is only
accessible by the user itself. When successfully verified, the user can enter in their new password. They
will need to enter the new password twice to make sure the confirmed password is the same as the first

13
UCCD2213 Software Engineering Principles

one entered. It is used in case there is any typo in the password. If it is the same, then the new password
will be updated and saved.

For users who had purchased using second-hand application and when they receive the product,
they need to confirm with the application that they received. This is to increase the trust and security of
users in the application. Users then give out ratings and comments of the product and the seller. It is
based on their satisfaction during the purchase or after-sale services. In addition, the upload function is
also provided for the user. Users can take photos or videos of the product they have received as proof.
Then you can post it out for other users’ reference purposes about the attitude of the seller. If users are
not satisfied with the product or the seller, for example if the product is not what they purchased or the
seller is being rude, they can make a report. The admin will receive the report and take action on it.

Ultimately, the user interface module serves as the gateway through which users interact with
and experience the software application. It shapes the overall user experience by acting as a dynamic
interface between human contact and computer capabilities.

1.2.8 Shopping Cart Module (Done by: Boo Kelly)


The shopping cart module is the component of how the user could add products into the shopping cart
and proceed the process to purchase the selected products on second-hand products application. After
adding products into the shopping cart, user can go to the shopping cart page and view all the products
added in before. User could select or deselect products before continuing to checkout page, or they also
can delete the products in shopping cart. If user choose to delete certain selected products, they could
continue to select products or proceed to checkout page. If user have deleted all the selected products,
they must select other products before proceeding to the checkout page. Besides, in the shopping cart
user can view the seller’s profile of each product and they could choose to add product into shopping
cart or just return to the shopping cart page. After confirming the selected products, user could checkout
and review again the selected products before proceeding to payment page.

The functionality of selection, deselection, and deletion of products brings lots of advantages
to user as there might be many conditions of each second-hand products. User could change their mind
any time before proceeding to checkout page. Functionality of viewing seller’s profile is added to the
shopping cart to help user review again the seller whether is trustworthy, and responsive.

1.2.9 Payment Module (Done by: Boo Kelly)


In the digitized era, payment methods on the online shopping platform are diversify. Payment
module is the component for user to make payment for their selected products. After confirmation to
make payment, user can choose to pay through online banking payment, pay by card, pay by e-wallet,

14
UCCD2213 Software Engineering Principles

or choose cash on delivery method. After the process of making payments, if payment successful seller
will pack the products and generate order id to user. If payment not success, the system will
automatically return to the payment page again and user will choose the payment method from the
various choices to complete the order. For user who choose ‘Cash on Delivery’ method, the system will
automatically confirm the order and seller will pack the products and generate order id to user.

The variety choices of payment method bring conveniences to user as they can choose their
preference method or the easiest way to make payments. For user choosing ‘Cash on Delivery’, they
could view and check the products’ conditions before paying cash to the courier or confirming the order.
User can choose the payment method which they feel safe, comfortable, and convenient.

1.2.10 Delivery Module (Done by: Boo Kelly)


Delivery module is the component of user could keep track of their parcel and contact the
shipping company or the customer service of the second-hand products mobile application. After the
seller packed and sent out the parcel, order id will be generated, and user can view the location of parcel
through the delivery status bar in second-hand products mobile application. When parcel is sent to the
nearest warehouse according to the address given, user could check for the delivery status of their parcel.
It will show ‘Parcel Out for Delivery’ when the courier has picked up and sent out the parcel. While the
courier has yet pick up and send out the parcel, it will show ‘Pending’ at the status bar. When the parcel
is sent to the given address, it will show ‘You have received your parcel!’. User can click on the
‘Confirm’ button after checking and satisfied with the products. For the user who choose ‘Cash on
Delivery’ method, the courier will inform the user when they reached. User could check their products
first, then pay cash to the courier. On the other hand, if the status shows that parcel has arrived, but user
did not receive it, they can contact the courier service company to request for refund or wait for the
courier to resend parcel.

1.2.11 Messenger Module (Done by: Huang Yifan)


The Messenger module is dedicated to creating a safe and practical communication channel between
users and between users and administrators, and provides users with long-term chat history archives.
This module allows different users to conduct instant messaging, and at the same time allows users to
establish a dedicated communication channel with official administrators to avoid impersonating
administrators, reduce the possibility of fraud, and improve the security of the trading platform. Users
can quickly send messages to other users, and the messages will first be cached in the chat record
database and then sent to the corresponding user's inbox. Communication between administrators and
users will be separated into communication channels with a special identifier, separate from normal
chat data.

15
UCCD2213 Software Engineering Principles

This module can also help users manage contacts, and through contact filter settings, contacts
can be grouped. Through the blacklist setting, it is possible to refuse to accept interaction requests from
specific users. The dedicated search engine can quickly search for specific content in the contact library
and chat record library.

This module also allows users to control whether to enable message reminders, and users can
set no reminders or special reminders for specific messages. Users can also clear all unread reminders
with one click.

This module additionally allows administrators to make global announcements. Administrators


can quickly send announcements to a certain part of users or all users, and the announcements will be
highlighted in the user's inbox.

Server-side permission verification is required before using this module. The information of
each user in this module is independent, and the information between different users will not interfere.

1.2.12 Community Profile Module (Done by: Huang Yifan)


The communication profile module is dedicated to creating and modifying communication profiles for
users, controlling browsing permissions, providing social media integration, and associating with other
social media APIs.

This module allows each user to have a communication profile, allows users to modify, delete,
and set permissions on their own profile, and allows users to view other people's profiles.

This module allows users to link their account with other social media accounts and display it
on their profile. Users can also quickly share information to other social media through the API, and
users can invoke other APPs with one click.

This module also provides authentication services for users. Users can fill in specific
authentication content when editing personal information, and it will take effect as additional
information after being reviewed by the administrator.

All user information in this module will be stored in the form of key-value pairs, and all
additional information should be edited through a controller (for example, certification item 1:
enterprise qualification certification). Users only have all permissions on their own data, and
administrators have the right to edit any user's profile.

16
UCCD2213 Software Engineering Principles

1.2.13 Customer Service Module (Done by: Huang Yifan)


In the commercial system, it is an essential part to provide customers with channels to contact the
official and listen to customer feedback and needs.

The customer service module is dedicated to providing users with safe and efficient official
services, allowing users to give feedback quickly, and allowing administrators to efficiently handle user
feedback. Authenticated users can use this module.

This module provides users with work order feedback functions. Verified users can use this
module to create and submit work orders, and get real-time progress updates of work orders. Customer
creation tickets will be created through the ticket manager. When creating a work order, customers are
allowed to choose the type and priority of the work order, such as product consultation, after-sales
service type, urgent and general priority. The work order will contain the basic information of the
customer and the content of the customer's feedback, and will be transmitted to a dedicated work order
database for storage, where the administrator can quickly browse the work order and update the progress
of the work order in real time. Both the customer and the administrator have the right to close the work
order in advance, allowing the work order to be processed according to the actual situation to improve
operational efficiency.

This module also provides the report and complaint function, and verified users can submit
reports in this module. All reports will be completely anonymous and no personal information of the
reporter will be displayed. Each report will only include the total number of reports of the reporter
within a certain period of time, which is used to assist the administrator in judging whether the report
is malicious. Reports will be stored in a dedicated database where administrators can process them.
Users can obtain the processing results of each report.

1.2.14 Permission Authentication Module (Done by: Huang Yifan)


Security is one of the most important attributes of a business system. It is very important to verify the
validity of account ownership and permissions, which can protect the user's account and prevent
malicious third-party groups from maliciously accessing the user's account or personal data.
Communication and chat records are the user's privacy and should not be accessed by any unauthorized
third party. Therefore, an authority verification module is required at the entry point of the entire
communication component.

This module will be linked with the login component to obtain the user's login information and
determine whether the user has the use authority and special authority of the communication component.
Open the communication module to the user only when the user is logged in validly and has permissions.

17
UCCD2213 Software Engineering Principles

Otherwise, the entire communication module will be closed for this invalid user, and no relevant content
will be provided.

1.3 Objectives
 To develop the User Management Component for ensuring secure, efficient, and reliable user
interactions, including authentication mechanisms and administrative oversight, creating a
trustworthy environment within the marketplace.

 To develop the Product Management Component to streamline the selling process, enhance the
buying journey, and heighten the overall efficiency of the marketplace.

 To develop the Shopping Management Component to foster a seamless, secure, and user-
friendly shopping experience, incorporating an intuitive shopping cart, diverse payment
modalities, and effective delivery tracking, all of which are aimed at boosting customer
satisfaction and promoting consistent platform engagement.

18
UCCD2213 Software Engineering Principles

2.0 System Requirements


2.1 Sprint 01 (Done by: Lim Xin Wei)
Sprint 01

Sprint Goal

- Implement “User Management” component for streamlining user registration and


authentication workflow by enhancing the process’s efficiency, usability, and security for both
new and existing users, such as User Authentication module, Admin Management module, and
User Interface module.

Sprint Backlog

 As a user, I can login to my account. (2)


 As a user, I can register a new account. (2)
 As a user, I can verify as a real human. (3)
 As a user, I can choose my login method. (3)
 As a user, I can login to my account with id and password. (2)
 As a user, I can login my account by using biometrics. (2)
 As a user, I can login to my account by connecting to email. (2)
 As a user, I can login to my account by using the verification code. (2)
 As a user, I can request for reset forgotten password. (2)
 As a user, I can receive password reset link. (1)
 As a user, I can allow my data to be stored in the cloud firebase. (2)
 As a user, I can view my profile information. (2)
 As a user, I can edit my profile information. (2)
 As a user, I can update my profile. (2)
 As a user, I can save the changes I have made. (1)
 As a user, I can change my password. (2)
 As a user, I can verify my old password before setting a new password. (2)
 As a user, I can confirm my new password. (2)
 As a user, I can receive confirmation from application to make sure I get the product. (3)
 As a user, I can give out ratings on the second-hand product that I have purchased. (1)
 As a user, I can post comments about the product and the seller. (1)
 As a user, I can upload photos and videos of the product that I received. (1)
 As a user, I can request a receipt. (2)
 As a user, I can receive messages that admin changes the profile information. (2)
 As a user, I can make a report about sellers. (2)
 As a user, I can make a report to report other users. (2)

19
UCCD2213 Software Engineering Principles

 As an admin, I can manage user’s information. (3)


 As an admin, I can view user’s information. (2)
 As an admin, I can modify user information. (2)
 As an admin I can delete user’s information. (2)
 As an admin, I can save the changes that have been made on user’s information. (1)
 As an admin, I can track user’s activities. (3)
 As an admin, I can check if the user has a record of abuse. (3)
 As an admin, I can give reminders to users on the abuse activity. (2)
 As an admin, I can ban user accounts. (2)
 As an admin, I can receive reports. (2)
 As an admin, I can send the message of solution for user who face problem using the application.
(2)
 As an admin, I can send the application to modify on the problem that stated by users. (3)
 As an admin, I can create receipts when users have requested. (2)
 As an admin, I can confirm the receipt is correct before send to the user. (2)
 As an admin, I can send receipts to users. (1)

Estimated Velocity: 82 story points

Schedule

 Sprint period: from 31/7/2023 to 11/8/2023 (2 weeks)


 Daily Scrum: 9.00 AM, Google Meeting
 Sprint demo: 10.00 AM, Google Meeting, 14/8/2022

Team

- Huang Yi Fan, Boo Kelly, Lim Xin Wei, Wong Teng Wei (Scrum master)

20
UCCD2213 Software Engineering Principles

2.2 Sprint 02 (Done by: Wong Teng Wei)


Sprint 02

Sprint Goal

- Implement “Product Management” component for enhancing both the seller's operations
and the customer's shopping experience such as Seller Inventory Management module,
Product Listing and Browsing module, Product Recommendation module, and Product
Value Estimator module.

Sprint Backlog

 As a seller, I can use phone’s camera to do face authentication if I want to access my seller
profile. (3)
 As a seller, I can see a warning message if I does not pass the face authentication. (2)
 As a seller, I can view my seller profile. (2)
 As a seller, I can view my product inventory. (2)
 As a seller, I can add a new product to my inventory, if all the required fields are filled and the
data format is correct. (3)
 As a seller, I can see a warning message if the required fields are not filled or the data entered
is in an incorrect format when I want to add a new product. (1)
 As a seller, I can receive a notification if my new product has been added to my inventory
successfully. (1.5)
 As a seller, I can upload product image for the new product. (1)
 As a seller, I can view my product details. (1)
 As a seller, I can modify my product details, if all the required fields are filled and the data
format is correct. (3)
 As a seller, I can see a warning message if the required fields are not filled or the data entered
is in an incorrect format when I want to modify my product details. (1)
 As a seller, I can receive a notification if my product details have been modified successfully.
(1.5)
 As a seller, I can delete a product from my inventory. (2)
 As a seller, I can see a warning message if I attempt to delete a product that doesn't exist in my
inventory. (1)
 As a seller, I can receive a notification if my product has been deleted successfully. (1.5)
 As a seller, I can make the product visible or invisible to buyers. (2.5)
 As a buyer, I can view a list of available products in e-marketplace. (2)
 As a buyer, I can view the product details and seller information by clicking on the product. (2)
 As a buyer, I can filter the available products based on brand name. (2)

21
UCCD2213 Software Engineering Principles

 As a buyer, I can filter the available products based on condition. (2)


 As a buyer, I can filter the available products based on price range. (2)
 As a buyer, I can filter the available products based on category. (2)
 As a buyer, I can sort the available products list by date created, from latest to oldest or vice
versa. (2.5)
 As a buyer, I can sort the available products list by price, from lowest to highest or vice versa.
(2.5)
 As a buyer, I can search the available products by product name. (2)
 As a buyer, I can search the available products by its seller name. (2)
 As an admin, I can track the history of products that users are searching for. (3)
 As an admin, I can collect and store users' search history effectively. (2)
 As an admin, I can feed the collected search data into the recommendation model to enhance
its accuracy. (2)
 As an admin, I can extract and preprocess users' search history data to make it ready for the
recommendation model. (2)
 As an admin, I can feed the preprocessed search history data into the trained recommendation
model to rank products. (2)
 As a buyer, I can view the most recommended products at the top of the list. (3)
 As a seller, I can input the brand of my product to help determine its value. (2)
 As a seller, I can specify the category of my item so the system can accurately estimate its price.
(3)
 As a seller, I can input the original price of the product for a more accurate estimation. (2)
 As a seller, I can enter the age of my product to adjust its value accordingly. (2)
 As a seller, I can define the condition of my item so that its worth can be accurately assessed.
(2)
 As a seller, I can ensure the details for brand, category, and original price I input are validated
by the system to meet the specified criteria. (2)
 As a seller, I can have the system validate the age and condition of my product and receive a
warning if they are invalid or out of the specified range. (2)
 As a seller, I can input details about my secondhand item, such as brand, category, age,
condition, and original price, into the system (2)
 As a seller, I can receive a basic estimated price range based on the details I provided, giving
me an idea of my item's market value. (2)
 As a seller, I can see the estimated price immediately after the system completes its calculations.
(3)
 As a seller, I would like the opportunity to adjust the price based on the system's suggestion.
(3)

22
UCCD2213 Software Engineering Principles

Estimated Velocity: 89 story points

Schedule

 Sprint period: from 15/8/2023 to 30/8/2023 (2 weeks and 2 days)


 Daily scrum: 9.00 AM, Google Meeting
 Sprint demo: 10.00 AM, Google Meeting, 31/8/2023

Team

- Huang Yi Fan, Boo Kelly, Lim Xin Wei, Wong Teng Wei (Scrum master)

23
UCCD2213 Software Engineering Principles

2.3 Sprint 03 (Done by: Lim Xin Wei)


Sprint 03

Sprint Goal

- Implementing the “Shopping Management” component for enhancing the process of user
purchases, pays and received the second-hand products from mobile application, such as
shopping cart module, payment module and delivery module.

Sprint Backlog

 As a user, I can view shopping cart. (2)


 As a user, I can add item into shopping cart. (2)
 As a user, I can select item in the shopping cart. (1)
 As a user, I can deselect item in the shopping cart. (1)
 As a user, I can delete item in the shopping cart. (2)
 As a user, I can reselect item in the shopping cart if I deleted all the selected item. (3)
 As a user, I can view seller profile in the shopping cart. (2)
 As a user, I can checkout the products in the shopping cart. (3)
 As a user, I can make payment through online banking. (2)
 As a user, I can make payment by card. (2)
 As a user, I can make payment by e-wallet. (2)
 As a user, I can make payment by cash. (2)
 As a user, I can remake payment if the previous payment is unsuccessful. (3)
 As a user, I can view my Order ID. (1)
 As a user, I can view the location of my parcel. (2)
 As a user, I can view the delivery status of my parcel. (2)
 As a user, I can pay cash to the courier when receiving my parcel. (2)
 As a user, I can contact the courier service company if my parcel lost. (3)
 As a user, I can request for refund if my parcel lost. (3)
 As a user, I can request the courier service company to resend my parcel. (3)
 As a user, I can confirm order when received my parcel. (3)

Estimated Velocity: 46 story points

Schedule

 Sprint period: from 1/9/2023 to 8/9/2023 (1 week and 1 day)


 Daily scrum: 9.00 AM, Google Meeting

24
UCCD2213 Software Engineering Principles

 Sprint demo: 10.00 AM, Google Meeting, 11/9/2023

Team

- Huang Yi Fan, Boo Kelly, Lim Xin Wei, Wong Teng Wei (Scrum master)

25
UCCD2213 Software Engineering Principles

2.4 Sprint 04 (Done by: Huang Yifan)


Sprint 04

Sprint Goal

- Implement the "Communication Management" component for enhancing the user's


communication experience through the messenger module and use the permission
authentication and independent messenger channel to improve security, such as Messenger
Module, Community Profile Module, Customer Service Module, and Permission
Authentication Module.

Sprint Backlog

 As a user, I can accept messages from other users (2)


 As a user, I can send messages to other users (2)
 As a user, I can categorize my contacts (2)
 As a user, I can accept notifications from the official (2)
 As a user, I can mark all messages as read with one click (2)
 As a user, I can search for a specific chat across all my chats (5)
 As a user, I can search for a specific contact in my contact list (4)
 As a user, I can set my privacy permissions and decide what to show others (4)
 As a user, I can set my notification permissions and decide which messages will notify me (3)
 As a user, I can blacklist other users and no longer accept any interaction from blacklisted users
(3)
 As a user, I can initiate a ticket request (2)
 As a user, I can view the progress of my tickets (2)
 As a user, I can close tickets early if I have resolved the issue myself (2)
 As a user, I can quickly get answers to frequently asked questions (4)
 As a user, I can have a trusted channel to contact the official customer service (2)
 As a user, I can file a complaint to report other users (3)
 As a user, I can log in with a social media account (3)
 As a user, I can share information to other social media (3)
 As a user, I can display my social account information (2)
 As a user, I can view other users' social information (2)
 As a user, I can click on the social media account shared by others to quickly jump to other
social media (1)
 As a user, I can set social impressions of other users (2.5)
 As a user, I can view social impressions of other users (2.5)

26
UCCD2213 Software Engineering Principles

 As a user, I can demonstrate my specific qualifications, e.g., Professional Merchant


Certification, Company Certificate (3)
 As an administrator, I can disable the chat component for specific users (2)
 As an admin, I can create tickets for users (3)
 As an admin, I can update ticket information (2)
 As an admin, I can close tickets (1)
 As an admin, I can directly delete a user's social impressions (2)
 As an administrator, I can unbind a user's social account (3)
 As an administrator, I can add the user's account credentials (2.5)
 As an administrator, I can delete the user's account qualification certificate (2.5)
 As an admin, I can send notifications to specific groups of users (2)
 As an administrator, I can establish a special communication channel with users that is different
from ordinary users, so as to avoid false administrators from contacting users (4)

Estimated Velocity: 87 story points

Schedule

 Sprint period: from 12/9/2023 to 27/9/2023 (2 weeks and 2 days)


 Daily scrum: 9.00 AM, Google Meeting
 Sprint demo: 10.00 AM, Google Meeting, 28/9/2023

Team

- Huang Yi Fan, Boo Kelly, Lim Xin Wei, Wong Teng Wei (Scrum master)

27
UCCD2213 Software Engineering Principles

3.0 System Architecture Pattern


3.1 Software Architecture Pattern

(Figure 2.0: Software Architecture Diagram)

3.2 Description of Software Architecture


The client-server architecture pattern is a fundamental design structure in computing where two types
of entities that interact with each other: the client, which is the server requester, and the server, which
is the service provider. Together, they form a dynamic duo wherein each entity possesses a specific role
and responsibility. In the realm of mobile applications, the fusion of client-server architecture with AI
and machine learning offers a potent blend of convenience, efficiency, and innovation. Mobile devices,
due to their intrinsic limitations in storage, processing power, and battery life, face challenges when
directly executing heavyweight machine learning algorithms. These challenges are exacerbated when
considering real-time applications, which demand swift responses. However, the client-server model
provides a robust solution to these impediments.

Firstly, clients primarily serve as user-friendly interfaces where users can both input and display
data. A typical client might come in the form of a graphical user interface (GUI), whether that's a
desktop application, mobile application, or a web browser. The main function of a client is to send
requests to a server and await the server's response. In some cases, a single client might even
communicate with multiple servers, as seen when a web browser accesses various web services. Diving
into the world of mobile applications, the client manifests as the app installed and run on an individual's
smartphone or tablet. These applications, engineered for user engagement, serve as the interface for
capturing user interactions and showcasing data. Every interaction within the app, whether it's scrolling

28
UCCD2213 Software Engineering Principles

through a social media feed, executing a bank transaction, or posing a query to a voice-activated
assistant, triggers a request dispatched to the server. This back-and-forth dynamic plays out across
countless daily scenarios.

On the other side of the equation lies the server, a dynamic powerhouse designed to
accommodate and process client requirements. While the client offers an interactive front-end, the
server acts as the backstage workhorse, efficiently managing data and ensuring smooth operations.
Unlike the proactive nature of clients, servers adopt a more reactive posture, constantly on standby,
poised to address incoming client requests. Each time a user interacts with their mobile app or browser,
it's the server that deciphers, processes, and returns the requisite data or service. This intricate dance is
enabled by the server's robust architecture, tailored to handle requests from numerous clients
concurrently, ensuring that whether it's one user or a million, the experience remains seamless. Delving
deeper, servers often serve as epicentres for vast data repositories and advanced computational tasks.
From storing intricate user profiles to processing data-intensive tasks such as AI or machine learning
algorithms, they remain pivotal. Their physical manifestation can vary: while some exist as monolithic
entities in vast data centres, others adopt a distributed approach, scattered strategically across locations,
each ready to take on the baton when needed, optimizing data flow and enhancing system resilience.

For a client and server to "talk" to one another, they rely on a network. This network can be
either localized or extend across the vast expanse of the internet. Their mode of communication is
typically facilitated through protocols like HTTP or FTP, and sometimes through proprietary protocols.
In a typical interaction, the client kicks things off by sending a request, to which the server responds
with the desired data or service.

Moreover, the advantages of client-server architecture pattern are numerous. For one, when a
mobile application requires an AI-powered decision or insight, it sends a request to these powerful
servers. After processing, the server sends back the results, allowing the app to provide an AI-driven
feature without the device itself having to bear the heavy computational load. For instance, consider a
mobile app that offers image recognition. The user captures an image on their phone, and the app
identifies the object in the photo. If the app were to process this locally using deep learning, it would
drain the device's battery and consume significant processing power. In the client-server model, the
image gets sent to a server where powerful GPUs process it, identify the object, and then return the
result to the mobile device, all within seconds.

Nevertheless, integrating third-party servers in the client-server architecture for mobile


applications provides a plethora of benefits that enhance both operational efficiency and user experience.
Leveraging these servers can lead to significant reductions in costs associated with infrastructure setup,
maintenance, and subsequent upgrades, allowing mobile applications to access high-end server
resources without the accompanying capital expenditure. With the plug-and-play solutions that many

29
UCCD2213 Software Engineering Principles

third-party providers offer, application deployment becomes swift and straightforward, drastically
reducing the time from development to market launch. The added advantage of scalability ensures that
as the user base grows, the application can adapt seamlessly. These providers, specialists in their domain,
bring expertise in server management, ensuring that the applications always operate at peak
performance while also benefiting from timely security patches and system upgrades.

Furthermore, global reach becomes an attainable feat with many third-party server providers
operating data centers worldwide. For mobile applications with an international user base, this global
presence ensures reduced latency as data is served from a location proximal to the user. But it's not just
about speed and efficiency; security also sees a notable boost. With stringent security protocols, regular
audits, encryption, and adherence to international standards, these third-party providers fortify the
mobile applications against potential threats. To round it off, the inbuilt backup and recovery services
guarantee data integrity and constant availability, ensuring that the application remains resilient in the
face of unforeseen challenges.

Additionally, in the realm of the client-server model, scalability and efficient handling of user
requests are paramount. Servers are meticulously engineered for this, designed to accommodate an
influx of users without a dip in performance. They achieve this scalability in two main ways: vertically,
by bolstering the power of an existing server, and horizontally, by incorporating more servers into the
system. As the influx of user requests surges, load balancers step in as a pivotal tool, distributing these
incoming demands across several servers. This distribution ensures that no single server is swamped
with requests, guaranteeing prompt responses to each user. Furthermore, instead of allocating an entire
processor to every individual user, which would be resource-intensive, servers employ multi-threading.
This approach lets a single processor simultaneously handle multiple threads or tasks. By doing so,
servers maximize their resource utility, thus granting them the capability to cater to a multitude of users
concurrently.

While the client-server model offers numerous benefits, it does come with certain challenges.
In a distributed server setting, where each server is tasked with specific roles, there's the potential for
inconsistency and coordination issues. If one of these specialized servers faces a crash or an outage, it
could disrupt the specific service it provides, impacting the connected clients and their operations.
Performance can also be a concern; if a particular server isn't scaled adequately or isn't well-managed,
it might lead to lags that affect the end-user experience. Security remains a prominent challenge; while
distributing tasks might not present a single point of vulnerability, each server becomes a potential entry
point for cyber-attackers, emphasizing the need for rigorous security measures across all servers. The
model's efficacy also hinges on consistent network connectivity; any disruption can compromise its
functionality. Furthermore, when servers are owned by different organizations, it introduces additional
complexities. Ensuring seamless coordination, maintaining data consistency, and managing potential

30
UCCD2213 Software Engineering Principles

operational conflicts between these entities can become challenging, sometimes leading to
inefficiencies.

In essence, the symbiotic relationship between mobile apps (clients) and servers is what powers
the modern, AI-driven digital experience. While mobile applications can harness the power of AI and
machine learning, the underlying mechanics often hinge on the client-server architecture. This model,
with its division of labor between the lightweight client and the powerful server, ensures that users
receive the benefits of AI without their devices buckling under the computational strain. It's a testament
to the adaptability of the client-server paradigm and its central role in shaping the future of AI-driven
mobile experiences.

3.3 Justification
The "Secondhand Product Selling and Buying Mobile Application" presents a multifaceted platform
catering to diverse user roles such as Admin, Buyer, and Seller. The nature of these roles and the
interplay between them demands a robust architectural backbone. The client-server architecture
emerges as an optimal choice for several compelling reasons.

The essence of a secondhand product platform lies in its marketplace, a hub where countless
transactions and interactions occur. Adopting the client-server architecture amplifies the potential of
this marketplace manifold. With the Marketplace Server at the helm, the application is poised to manage
vast product databases with unparalleled efficiency. Users can swiftly list, edit, and browse products, a
seamless experience undeterred by the influx of large user numbers or expansive inventories. Moreover,
the server's prowess shines when one delves into the more intricate functionalities. Product
recommendations, driven by advanced machine learning algorithms, are computationally intensive. By
allocating these tasks server-side, the application ensures that despite the heavy computational lifting,
the user interface remains swift and uncluttered. Similarly, the Product Value Estimator, with its blend
of data mining and machine learning, can delve deep into vast datasets to derive accurate price
predictions. Yet again, this heavy-duty processing is discreetly handled in the background, allowing
users to enjoy instant, precise estimations without a hint of system lag. Thus, the decision to employ a
client-server model not only optimizes user experience but also efficiently harnesses the server's
computational capabilities, ensuring the marketplace remains a dynamic, responsive, and intelligent
space for all its users.

Transactions form the very heartbeat of any buying and selling platform, determining its overall
success and user satisfaction. Opting for a dedicated Transaction Server within the client-server
architecture, the application seamlessly orchestrates the multifaceted world of e-commerce. By
centralizing critical functionalities, such as shopping cart operations, payment gateways, and parcel
tracking, the application ensures that each transaction is not only secure but also smooth. This unified

31
UCCD2213 Software Engineering Principles

approach offers a dual advantage: first, it reduces complexities that might arise from disparate systems,
ensuring that users don’t face unexpected hiccups during their purchasing journey. Secondly, it robustly
handles numerous simultaneous transactions without any decline in performance or speed. In essence,
through the strategic deployment of a centralized Transaction Server, the application promises each
user a consistent, efficient, and reliable transactional experience, cementing their trust and encouraging
repeat engagements.

Communication stands as the linchpin for the efficacy of any buying and selling platform.
Within the context of the application, seamless interaction between buyers and sellers is not just a luxury
but a necessity. Employing a dedicated Messaging Server, rooted in the client-server architecture, brings
forth an environment primed for swift, efficient, and above all, secure exchanges. Such dedicated
systems underscore the importance of real-time negotiations, quick queries, and instant clarifications –
all pivotal for a thriving marketplace. By centralizing the communication channel, it ensures not only
that messages are relayed promptly but also that the data integrity and privacy of these exchanges are
maintained. Additionally, a centralized module reduces the risk of potential bottlenecks or system lags,
keeping performance at its peak. In essence, by weaving the Messaging Server into the core fabric of
the client-server model, the application promises an uninterrupted and safeguarded communication
experience for all users.

Scalability is undeniably a cornerstone of the client-server architecture, setting it apart in the


competitive landscape of software design patterns. As the user base of the application swells, the
underlying architectural strength of this model comes to the fore. Unlike more rigid systems, the client-
server structure allows for effortless expansion of server resources, ensuring that performance remains
optimal even during peak user interactions. This elasticity means that as more users flock to the platform,
server capacities can be incrementally increased to accommodate the burgeoning demand. Furthermore,
the incorporation of load balancers in this architecture is a masterstroke. Their primary role is to
judiciously distribute incoming requests among available servers, effectively preventing any one server
from becoming a bottleneck. This not only ensures that each user enjoys a seamless experience but also
fortifies the system against potential downtimes or slowdowns. In essence, the client-server model is
strategically positioned to evolve and adapt in tandem with the application's growth trajectory.

In conclusion, for a platform as comprehensive as the "Secondhand Product Selling and Buying
Mobile Application," the client-server architecture provides not just a robust foundation but also assures
scalability, efficiency, and security, making it a compelling choice for the application's architectural
design.

32

You might also like