Professional Documents
Culture Documents
Secondhand Products Buy and Sell Mobile Application
Secondhand Products Buy and Sell Mobile Application
Secondhand Products Buy and Sell Mobile Application
DIGITAL
NO STUDENT ID STUDENT NAME
SIGNATURE
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
B
D
3
UCCD2213 Software Engineering Principles
4
UCCD2213 Software Engineering Principles
5
UCCD2213 Software Engineering Principles
6
UCCD2213 Software Engineering Principles
7
UCCD2213 Software Engineering Principles
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
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.
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
Sprint Goal
Sprint Backlog
19
UCCD2213 Software Engineering Principles
Schedule
Team
- Huang Yi Fan, Boo Kelly, Lim Xin Wei, Wong Teng Wei (Scrum master)
20
UCCD2213 Software Engineering Principles
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
22
UCCD2213 Software Engineering Principles
Schedule
Team
- Huang Yi Fan, Boo Kelly, Lim Xin Wei, Wong Teng Wei (Scrum master)
23
UCCD2213 Software Engineering Principles
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
Schedule
24
UCCD2213 Software Engineering Principles
Team
- Huang Yi Fan, Boo Kelly, Lim Xin Wei, Wong Teng Wei (Scrum master)
25
UCCD2213 Software Engineering Principles
Sprint Goal
Sprint Backlog
26
UCCD2213 Software Engineering Principles
Schedule
Team
- Huang Yi Fan, Boo Kelly, Lim Xin Wei, Wong Teng Wei (Scrum master)
27
UCCD2213 Software Engineering Principles
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.
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.
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