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

Bahir Dar University

Bahir Dar Institute of Technology

Faculty of Computing

Industrial Project On [Electronics Delivery Mobile APP Based on


Location Tracking]

Submitted to the Faculty of Computing in Partial Fulfillment of The Requirements for the
Degree of Bachelor of Science in [Software Engineering]

Group members
Name ID Number
1. Aemro Enyew_______________________ 1103339
2. Addisu Anley________________________1102093
3. Abebe Tafere________________________110 1973

[2015] Bahir Dar University, Bahir Dar Institute of Technology


Declaration

The Project is our own and has not been presented for a degree in any other university and all the sources
of material used for the project have been duly acknowledged.

Aemro Enyew --------------------------------------


Name Signature

Addisu Anley ------------------------------------------


Name Signature

Abebe Tafere ----------------- --------------------------


Name Signature

Faculty: Computing
Program: Software Engineering
Project Title: Electronics Delivery Mobile APP Based on Location Tracking

This is to certify that I have read this project and that in my supervision and the students’ performance,
it is fully adequate, in scope and quality, as a project for the degree of Bachelor of Science.

Mr. Haileyesus Demissie -------- -------------------------


Name of Advisor Signature

Examining committee members Signature Date


___________________
1. Examiner1 Mulugeta Muche
2. Examiner2 Tesfahunegn __________________

It is approved that this project has been written in compliance with the formatting rules laid down by
the faculty.

i
Acknowledgment
First and foremost ,We would like to thank the almighty God for giving us the opportunity to live
and for the blessings that we received each day because nothing could be possible without his
free will and the completion of this project is supported by him. Next, we would like to thank our
Advisor Mr Haileyesus D. , for his edition of our documentation, input to the quality of this
document, heart full guidance, valuable advice, and providing to execute this project. Then, we
would like to thank Mr. Mulugieta M. , for his recommendation for this project idea. Finally, to
our respective families, friends and relatives, who are our inspirations. Thank you all.

iii
List of Figures
Figure 1 state shart diagram ........................................................................................................................ 32
Figure 2 add product sequence diagram .................................................................................................... 32
Figure 3 place order sequence diagram....................................................................................................... 33
Figure 4 add product sequence diagram .................................................................................................... 33
Figure 5 add to cart sequence diagram...................................................................................................... 34
Figure 6 change status sequence diagram .................................................................................................. 34
Figure 7 class diagram ............................................................................................................................... 35
Figure 8 login page ................................................................................................................................... 40
Figure 9 select role ..................................................................................................................................... 42
Figure 10 add shop page ............................................................................................................................. 44
Figure 11 user home page .......................................................................................................................... 46
Figure 12 product detail page .................................................................................................................... 49
Figure 14 check out page ........................................................................................................................... 51
Figure 15 Access control and security ....................................................................................................... 51

iv
List of Tables

Table 1 project cost table ............................................................................................................................. 7


Table 2 software cost .................................................................................................................................... 7
Table 3 use case diagram ........................................................................................................................... 14
Table 4 Register ......................................................................................................................................... 14
Table 5 login use case ................................................................................................................................ 16
Table 6 view products ................................................................................................................................ 17
Table 7 place order use case ....................................................................................................................... 18
Table 8 Rating ........................................................................................................................................... 20
Table 9 Accept or Reject Orders ................................................................................................................ 22
Table 10 Manage all users ......................................................................................................................... 24
Table 11 Add To Cart ................................................................................................................................ 27
Table 12 Shop management ...................................................................................................................... 28

Table of Contents

Contents
Declaration ................................................................................................................................... 1
Acknowledgment ......................................................................................................................... 3
List of Figures .............................................................................................................................. 4
List of Tables ............................................................................................................................... 5
Table of Contents ........................................................................................................................ 5
Abstract ........................................................................................................................................ 1
Chapter One: Introduction ........................................................................................................ 2
1.1 Background ................................................................................................................. 2
1.2 Statement of the problem ............................................................................................ 3
1.3 Objectives ................................................................................................................... 3
1.3.1 General Objective ....................................................................................................... 3
1.3.2 Specific Objectives ..................................................................................................... 3
1.4 Methodology ............................................................................................................... 4
1.4.1 Requirement gathering methods ................................................................................. 4
1.4.2 Analysis and design Methodology .............................................................................. 4
1.4.3 Implementation Methodology ..................................................................................... 5
1.5 Feasibility .................................................................................................................... 5
1.6 Beneficiaries or significant of the project ................................................................... 8

v
1.7 Limitations of the project ............................................................................................ 8
1.8 Scope of the project .................................................................................................... 9
Chapter Two: System features ................................................................................................. 11
2.1 The Existing System ..................................................Error! Bookmark not defined.
2.2 Proposed System ....................................................................................................... 11
2.3 Requirement Analysis ............................................................................................... 12
2.3.1 Functional requirement ............................................................................................ 12
2.3.2 System Use case ........................................................................................................ 13
2.3.3 Business Rule Documentation................................................................................... 30
2.3.4 User Interface prototype ........................................................................................... 31
2.3.5 State chart diagram................................................................................................... 31
2.3.6 Activity Diagram ....................................................................................................... 32
2.3.7 Sequence diagram ..................................................................................................... 32
2.3.8 Analysis Class Model ................................................................................................ 34
2.4 Nonfunctional requirement ....................................................................................... 35
2.5 System Requirement ................................................................................................. 36
2.5.1 Hardware requirements ............................................................................................ 36
Chapter 3: System Design ........................................................................................................ 37
3.1 Architectural Design ................................................................................................. 37
3.1.1 Deployment Modeling ............................................................................................... 37
3.2 User Interface Design ............................................................................................... 38
3.3 Access control and security ...................................................................................... 51
Chapter Four: Implementation ............................................................................................... 52
Chapter Five: Testing and Evaluation .................................................................................... 55
References .................................................................................................................................. 56

6
Abstract
Online electronic delivery refers to the process of ordering and delivering electronic products
and devices through online channels. This includes a wide range of products such as
smartphones, laptops, cameras, and other consumer electronics. Online electronic delivery has
become increasingly popular in recent years due to the convenience and accessibility it provides
to customers. With the rise of e-commerce platforms, customers can browse and purchase
products online, and have them delivered to their doorstep. This has made it easier for customers
to compare products and prices, and to access a wider range of products than they might find in
traditional brick-and-mortar stores. Online electronic delivery also benefits retailers, who can
reach a larger customer base and reduce their overhead costs by operating primarily online.

1
Chapter One: Introduction

1.1 Background

Introduction: The Flutter electronics delivery mobile application is a convenient and efficient
solution designed to facilitate the delivery of electronic products from various shops to
customers. The application aims to streamline the process of browsing, ordering, and delivering
electronics while providing a seamless and user-friendly experience for both customers and shop
owners.
Background: In today's digital era, the demand for electronic products is continuously
increasing. Customers often prefer the convenience of online shopping, where they can browse
and purchase a wide range of electronics from the comfort of their homes. However, the delivery
process can sometimes be cumbersome and time-consuming, involving coordination between
shops, customers, and delivery personnel.
The Flutter electronics delivery mobile application addresses this challenge by leveraging the
power of Flutter framework and Firebase backend services. Flutter, a cross-platform
development framework, enables the creation of visually appealing and responsive mobile
applications that can run on both iOS and Android devices. Firebase, a backend-as-a-service
platform, provides a reliable and scalable infrastructure for managing user authentication, real-
time database, and cloud functions.
By utilizing Flutter and Firebase, the application provides a robust and efficient platform for
customers to browse through a catalog of electronic products, place orders, track their order
status, and receive timely notifications. Shop owners can manage their inventory, process orders,
and update product details through a user-friendly dashboard. Delivery personnel can view their
assigned orders, update delivery statuses, and ensure prompt and accurate deliveries.
The combination of Flutter and Firebase offers a powerful development environment, ensuring
the app is feature-rich, responsive, and capable of handling a large user base. With a user-
friendly interface and seamless integration with Firebase's backend services, the Flutter
electronics delivery mobile application aims to enhance the shopping experience for customers,
streamline operations for shop owners, and improve delivery efficiency for the delivery
personnel.

2
1.2 Statement of the problem

Inefficient and cumbersome electronics delivery processes hinder customers' ability to


conveniently and securely purchase electronic products. There is a need for a streamlined and
user-friendly mobile application that allows customers to browse and order electronic products
seamlessly, while providing real-time tracking and delivery updates.
This app should address:

✓ the challenges of fragmented product information,

✓ lack of order transparency,

✓ ultimately improving the overall customer experience in the electronics delivery industry.

1.3 Objectives
1.3.1 General Objective

The general objective of this project is to develop a fast and reliable delivery mobile
application based on GPS tracking for Mobile Users.

➢ Enhance the overall customer experience by simplifying the electronics delivery process.

➢ Increase customer satisfaction by providing a seamless and efficient ordering and


delivery experience.

➢ Contribute to the growth of the electronics delivery industry by leveraging technology to


address existing challenges.

1.3.2 Specific Objectives

Specific Objectives this project are:

➢ Enable users to browse and search a comprehensive catalog of electronic products with
detailed information.

➢ Implement a secure and user-friendly authentication system for user registration and
login.

➢ Provide users with the ability to add products to a shopping cart or Wishlist for later

3
purchase.

➢ Implement a smooth and intuitive checkout process, allowing users to place orders
efficiently.

➢ Integrate a reliable and secure payment gateway to facilitate seamless online transactions.

➢ Develop a robust order tracking system that provides real-time updates on the status and
location of deliveries.

➢ Implement push notifications or in-app messaging to notify users about order status
changes.

➢ Ensure a responsive and visually appealing user interface that adapts to different screen
sizes and devices.

➢ Optimize app performance to provide fast loading times and smooth navigation.

➢ Conduct thorough testing to identify and resolve any bugs or issues in the application.

1.4 Methodology

1.4.1 Requirement gathering methods

The requirement gathering methods We have used are:

a) document analysis: we analyze manual clearance processing document

b) literature review: we have made analysis and summary of existing research and literature
relevant to our project.

c) Use Case Analysis: we Identify and analyze typical use cases or scenarios that users may
encounter when using the mobile application. This method helps define functional requirements
and system behavior.

d) Internet:

1.4.2 Analysis and design Methodology

➢ We have used an object-oriented analysis and design methodology, because:

Flutter itself is an object-oriented framework that promotes the use of object-oriented

4
programming (OOP) principles and concepts. In an object-oriented approach, the emphasis

is on organizing the codebase around objects, which are instances of classes that

encapsulate data and behavior. The main focus is on modeling real-world entities as objects

and defining their properties (attributes) and actions (methods).

When developing the mobile application, you will likely create classes to represent various

entities and components such as users, products, orders, and payment transactions. These

classes will encapsulate the relevant data and provide methods to interact with that data.

➢ We have used Agile life cycle model:

Agile methodologies, such as Scrum and Kanban, emphasize iterative and incremental
development. They involve short development cycles called sprints, where requirements,
design, development, and testing occur in parallel. Agile methodologies accommodate
changing requirements and allow for frequent feedback and adaptation.

➢ Tools

o Online drawing (Lucid chart) , to draw system diagrams.

1.4.3 Implementation Methodology

Languages/ libraries/ platform used


a) Front end: Flutter
b) Back end: Firebase
c) DBMS: cloud fire store
d) Application server: Firebase acts as the application server, providing services such as
authentication, real-time database, cloud storage, and cloud functions. it provides a
managed backend-as-a-service (BaaS) platform that handles the server-side operations
for your application.

1.5 Feasibility

➢ Economic feasibility

5
comparing the cost with the benefit (we get by using the proposed system), surely the benefit out weights
the cost.
The Costs:
Infrastructure Cost: The application requires a reliable hosting service for the backend database
and server.
Maintenance and Updates: Ongoing maintenance and updates to the application to ensure its
functionality, security, and compatibility with new device versions and operating systems.
Benefits:
Increased Customer Convenience: The application provides customers with a convenient
platform to browse and purchase electronic products from various shops, eliminating the need for
physical store visits. This convenience can attract more customers and increase sales.
Improved Efficiency: The application streamlines the ordering and delivery process, reducing
manual coordination efforts for both shop owners and delivery personnel. This leads to improved
efficiency, reduced errors, and faster order fulfillment.
Enhanced Customer Experience: The app offers features such as order tracking and push
notifications, keeping customers informed about their order status. This improves customer
satisfaction and engagement with the platform.
Expanded Market Reach: With an online presence, shops can reach a broader customer base
beyond their physical location, potentially increasing sales and revenue.
Data Analytics and Insights: The application can collect and analyze customer data, providing
valuable insights into customer preferences, popular products, and buying patterns. This data can
be used to optimize inventory management, marketing strategies, and personalized
recommendations.
Cost Savings for Shops: By utilizing the application, shops can reduce costs associated with
maintaining physical stores, such as rent, utilities, and staffing. They can also minimize manual
order processing and streamline inventory management.
Scalability: The application built on Flutter and Firebase offers scalability, allowing it to handle
a growing number of users, products, and orders without significant performance degradation.

Overall, the Flutter Electronics Delivery Mobile Application has the potential to provide
substantial benefits, including increased convenience for customers, improved efficiency for

6
shops and delivery personnel, expanded market reach, enhanced customer experience, cost
savings, and data-driven insights. However, it is essential to carefully assess the development
and maintenance costs to ensure that the benefits outweigh the expenses and yield a favorable
return on investment.
Therefore, the team decided the proposed project is economically feasible.
Table 1 project cost table

Item Quantity of item Cost per item Total cost


Laptop 3 20,000 45
Flash 2 500 1000
Notebook 1 50 50
Pen 3 20 60
Other ---------- 1000
62,000

For this particular project we will be using different software but the software’s are gotten freely.
Software cost:
Table 2 software cost

Software costs
Software Description Price
Flutter Free
Firebase Free
Vs code Free
Microsoft word Free

➢ Technical feasibility
We concern here with specifying equipment’s that will satisfy the user requirement such as
computer (hardware and software), Microsoft access etc. The system developers understand the
scope, objectives including specific objectives and limitations of the proposed system well and
have technical capability/ability and basic programming knowledge to develop this system.
Different software, frameworks, library necessary for us to develop the system are free. Other

7
resources like computer are available.
✓ This software is running in mobile operating system.
✓ It will run in different browser and devices
✓ The system can be expanded in any system platforms.
Therefore, we analyze that the system is technically feasible.
➢ Time feasibility
the project will be completed within the allocated time frame.

1.6 Beneficiaries or significant of the project

Convenience: A delivery Flutter application allows customers to order products or services from
the comfort of their homes, saving them time and effort.
Accessibility: A delivery Flutter application makes delivery services accessible to a wider range
of customers, including those with mobility or transportation limitations.
Efficiency: A delivery Flutter application can help businesses manage their orders and deliveries
more efficiently, which can lead to faster delivery times and increased customer satisfaction.
Real-time tracking: A delivery Flutter application can provide real-time tracking of orders,
which can give customers peace of mind and reduce anxiety about delivery times.
Competitive advantage: Offering a delivery Flutter application can give businesses a
competitive advantage over those that do not offer delivery services, as customers increasingly
expect the convenience of online ordering and home delivery.
Increased revenue: A delivery Flutter application can help businesses increase their revenue
by reaching more customers and offering additional services such as premium delivery options.
Data insights: A delivery Flutter application can provide valuable data insights into customer
behavior and preferences, which can help businesses improve their products, services, and
marketing strategies.

1.7 Limitations of the project

challenges/constraints
✓ connection: since working with firebase require connection
✓ Integration Challenges: Integrating the application with external APIs, payment gateways, or

8
other third-party services may present challenges due to compatibility issues, API limitations, or
changes in the service provider's APIs over time. Ongoing maintenance and updates may be
required to address these integration challenges.
✓ lack of time
Limitation:
✓ Dependency on Internet Connectivity:
The application heavily relies on internet connectivity to function effectively. Users may face
limitations or disruptions in using the app in areas with poor or no internet access.

✓ Backend Infrastructure Cost:


Utilizing Firebase as the backend platform provides convenience and scalability, but it may incur
ongoing costs for hosting, storage, and additional Firebase services as the user base and data
volume increase. Careful consideration of these costs is necessary to ensure the project's financial
feasibility.
1.8 Scope of the project

Here specifies the boundary of the system by writing list of business processes or subsystems to be
implemented and the services they can provide.
The scope of this electronics delivery mobile application that involves customers, shops, and delivery
personnel can encompass various features and functionalities. Here are some potential aspects to consider
within the scope of this project:
1) User Registration and Authentication:
Allow customers, shops, and delivery personnel to register and create user accounts.
Implement authentication mechanisms to ensure secure access to the application.

2) User Profiles and Management:


Provide user profiles for customers, shops, and delivery personnel to manage their information,
preferences, and settings.
Allow users to update their profiles, change passwords, and manage account details.

3) Product Catalog:
Create a catalog of electronic products available for purchase.
Include product descriptions, prices, images, and other relevant details.
Implement search and filtering capabilities to help users find specific products.

4) Shopping Cart and Order Placement:


Enable customers to add products to their shopping carts.
Allow customers to review their cart, modify quantities, and proceed to checkout.

9
Implement a secure payment gateway for order processing and payment.

5) Order Tracking and Delivery:


Provide a tracking mechanism for customers to monitor the status of their orders.
Assign and track delivery personnel for each order.
Enable delivery personnel to update the delivery status and notify customers of order progress.

6) Reviews and Ratings:


Allow customers to leave reviews and ratings for products and shops.
Implement a rating system to help customers make informed decisions.

7) Notifications:
Implement push notifications to inform customers about order updates, delivery status,
promotions, and offers.
Notify delivery personnel about new orders, changes, or cancellations.

8) Admin Dashboard:
Provide an administrative dashboard for shop owners or administrators to manage products,
orders, and deliveries.
Allow admins to manage user accounts, monitor performance metrics, and generate reports.

9) Analytics and Insights:


Gather and analyze data to generate insights about user behavior, popular products, sales trends,
and customer preferences.
Provide reports and visualizations to assist in making data-driven decisions.

10) Localization and Internationalization:


Support multiple languages and localization options for a wider user base.
Allow users to choose their preferred language and currency.

10
Chapter Two: System features

2.1 Proposed System

The proposed system of the Flutter Electronics Delivery Mobile Application aims to enhance the
existing system by leveraging mobile technology and providing a more efficient and convenient
platform for customers, shops, and delivery personnel.
Here's how the proposed system works:

➢ Customer Registration: Customers will need to download and install the Flutter
Electronics Delivery mobile application on their smartphones. They can then register an
account by providing their details, including name, contact information, and delivery
address.

➢ Browse and Order: Customers can browse through the available electronic products
within the application. They can view product details, images, prices, and shop
information. Once they find a product they want to purchase, they can add it to their cart
and proceed to the checkout process.

➢ Payment Integration: The proposed system may include integration with various payment
gateways to facilitate secure and convenient online payments. Customers can choose their
preferred payment method, such as credit/debit card, digital wallets, or cash on delivery.

➢ Shop Management: Shops registered in the application will have access to a dedicated
interface where they can manage their product inventory, update prices, and track
incoming orders. They can update the availability status of products in real-time to ensure
accurate ordering.

➢ Order Assignment and Tracking: Once a customer places an order, the system
automatically assigns the order to a nearby delivery personnel based on their availability
and workload. The assigned delivery personnel receive a notification about the order and
its details.

➢ Delivery and Tracking: The delivery personnel can use a mobile app provided to them to
view the assigned orders, navigate to the shop for product pickup, and proceed to the

11
customer's location for delivery. The customer can track the order's status, including the
estimated delivery time and real-time location of the delivery personnel.
Delivery Confirmation: When the delivery personnel arrive at the customer's location, they
complete the delivery by handing over the products. The customer confirms receipt of the
products within the application, and they may have the option to provide feedback or rate the
delivery experience.

➢ Order History and Customer Support: The proposed system maintains a record of
customers' order history, allowing them to view previous orders, reorder products, and
access receipts. Additionally, the application may include customer support features, such
as chat or messaging, to address any queries or concerns.
The proposed system leverages the capabilities of Flutter for the frontend development of the
mobile application, while utilizing backend services like Firebase for user authentication, real-
time database, and cloud functions to support the various functionalities of the app.
By implementing the proposed system, the Flutter Electronics Delivery Mobile Application aims
to streamline the ordering process, enhance the visibility and tracking of orders, improve
customer convenience, and facilitate efficient communication between customers, shops, and
delivery personnel.

2.2 Requirement Analysis

2.2.1 Functional requirement

Functional requirement Description Priority


number
FREQ-1 The app should allow users to register, create profiles, and login securely.
FREQ-2 application should allow users to place orders for products or services they
want to be delivered
FREQ-3 The application should allow users to track their orders in real-time, so they
know when to expect delivery
FREQ-4 The application should have a secure payment system that allows users to
make payments for their orders.

12
FREQ-5 The application should allow users to schedule their deliveries for a time that
is convenient for them.

FREQ-6 The app should send real-time notification that alerts users of delivery status
updates, estimated delivery times, and other relevant information.
FREQ-7 The application should have a review and rating system that allows users to
leave feedback on their experience with the delivery service to improve the
quality of service.
FREQ-8 The app should Integrate location tracking functionality to allow delivery
drivers to locate and navigate to delivery addresses efficiently.
FREQ-9 Should provide an order management system that enables users to manage
orders, track delivery progress, and communicate with delivery providers
FREQ-10 The application should allow users to view their order history and track their
past orders
FREQ-11

2.2.2 System Use case

2.2.2.1 Use case Diagram

13
Table 3 use case diagram

2.2.2.2 Use Case documentation

Table 4 Register
Use case id UC-01
Use case name Register
Participating actor User: The individual who wants to create a new
account on the application.
Description This use case describes the process of a user
registering a new account on the Flutter
Electronics Delivery Mobile Application.
Pre-condition The user has downloaded and installed the Flutter
Electronics Delivery Mobile Application.
The user has access to a stable internet connection.

Flow of event
1) The user opens the Flutter Electronics
Delivery Mobile Application.
2) The application displays the welcome screen
or the login/register page.
3) The user selects the "Register" option.
4) The application presents a registration form
for the user to fill out.
5) The user enters their personal information,

14
including their name, email address, and
desired password.
6) The user confirms their password to ensure
accuracy.
7) The user selects a unique username or is
provided with an auto-generated username.
8) The user provides additional optional
information, such as contact number and
delivery address.
9) The user reviews the entered information for
accuracy.
10) The user accepts the terms and conditions and
privacy policy, if applicable.
11) The user submits the registration form.
12) The application validates the entered
information, checks for duplicate usernames
or email addresses, and ensures all required
fields are filled.
13) If the entered information is valid, the
application creates a new user account and
assigns a unique user ID.
14) The application displays a registration success
message and may prompt the user to log in
with their newly created account.

Alternative Flow of event


✓ If the entered information is invalid or
incomplete, the application displays error
messages indicating the specific fields that
need to be corrected.
✓ If the chosen username or email address is
already in use by another user, the application
prompts the user to choose a different
username or email address.

Post-condition
✓ The user's registration information is saved in
the application's database.
✓ The user can log in using their registered
credentials and access the features and
functionalities of the Flutter Electronics
Delivery Mobile Application.

15
Table 5 login use case
Use case id UC-02
Use case name Login
Participating actor All system user
Description Any user who wants to access the system’s
functionality must login so that that the system can
determine his access level. through Authentication
and Authorization .
Pre-condition The user must be already register (the user must
have user name, password and account type)
Flow of event 1. The use case starts when a user indicates
that he wants to login.
2. The user clicks login link

3. The system display log in page and


requests the username and password.
4. The user enters his/her identification (user
type user name and password)

5. The user clicks on login button

6. The system verifies the username and


password against all registered users.
7. The system starts a login session and takes
the user to his/her page.

Alternative Flow of event Step 5, If the identification is not correct the system
displays incorrect user type, user name and
password try again message and the system display
the login page(go to step 3).
Post-condition The user logged in to the system and perform
functions according to his registered access level.

16
Table 6 view products
Use case id UC-03
Use case name view products
Participating actor Customer: The user who wants to explore and
view electronic products.

Description This use case describes the process of a customer


browsing and viewing electronic products through
the Flutter Electronics Delivery Mobile
Application.
Pre-condition
✓ The customer has registered and logged into
the Flutter Electronics Delivery Mobile
Application.
✓ The customer has access to the application and
a stable internet connection.

Flow of event
1) The customer opens the Flutter Electronics
Delivery Mobile Application.
2) The application displays the home screen or
product catalog.
3) The customer can browse through different
categories of electronic products, such as
smartphones, laptops, TVs, etc.
4) The customer selects a specific category of
interest to view products within that category.
5) The application presents a list of electronic
products within the selected category,
showing relevant details such as product
names, prices, and images.
6) The customer can scroll through the list of
products and view more details about a
particular product by selecting it.
7) The application displays detailed information
about the selected product, including product
specifications, descriptions, and customer
reviews.
8) The customer can zoom in on product images
for a closer look and view additional product
images, if available.
9) The customer can navigate back to the product
list or continue browsing other categories and
products.

17
10) If the customer finds a product they are
interested in purchasing, they can add it to
their cart for future checkout.

Alternative Flow of event


✓ If the customer wants to search for a specific
product, they can use the search functionality
provided within the application.
✓ If the customer wants to filter products based
on specific criteria (e.g., price range, brand),
they can use the filtering options provided
within the application.
✓ If the customer encounters any issues or has
questions about a product, they can contact
customer support for assistance.

Post-condition
✓ The customer has explored and viewed
various electronic products within the
application.
✓ The customer can proceed to place an order
for a specific product if desired.
✓ The customer can add products of interest to
their cart for future purchase consideration.

Table 7 place order use case

Use case id UC-04


Use case name Place an Order
Participating actor Customer: The user who wants to purchase
electronic products and place an order.
Description This use case describes the process of a
customer placing an order for electronic
products through the Flutter Electronics
Delivery Mobile Application.
Pre-condition The customer has registered and logged into
the Flutter Electronics Delivery Mobile
Application.
The customer has access to the application
and a stable internet connection.

18
Flow of event
1) The customer opens the Flutter Electronics
Delivery Mobile Application.
2) The customer browses through the available
electronic products by selecting the "Browse"
option.
3) The application displays a list of electronic
products along with relevant information such
as name, price, and shop details.
4) The customer selects a specific product of
interest.
5) The application presents detailed information
about the selected product, including images,
description, and customer reviews.
6) The customer adds the product to their cart by
selecting the "Add to Cart" option.
7) The application confirms the addition of the
product to the cart and displays the updated
cart summary.
8) The customer can either continue shopping
and repeat steps 4 to 7 for additional products
or proceed to checkout.
9) If the customer chooses to proceed to
checkout, they select the "Checkout" option.
10) The application prompts the customer to
review their order details, including the list of
products, quantities, and total price.
11) The customer verifies the order details and
selects the preferred delivery address.
12) The customer selects the desired payment
method, such as credit/debit card, digital
wallet, or cash on delivery.
13) The application securely processes the
payment and confirms the successful
transaction.
14) The application generates an order
confirmation with a unique order ID and
displays it to the customer.
15) The customer receives an email or in-app
notification with the order details and
confirmation.
16) The order is sent to the relevant shop or
vendor for processing and fulfillment.

19
Alternative Flow of event
a) If the customer encounters any issues during
the ordering process, they can contact
customer support for assistance.
b) If the customer decides to remove a product
from the cart, they can select the "Remove"
option next to the product in the cart
summary.
c) If the customer wants to modify the quantity
of a product in the cart, they can update the
quantity field and select the "Update" option.

Post-condition
✓ The order details are recorded in the
system.
✓ The customer can view the order status
and track the delivery progress within the
application.
✓ The shop/vendor receives the order details
for further processing and fulfillment.

Table 8 Rating

Use case id UC-05


Use case name Rating
Participating actor Customer: The user who has received a delivered
product and wants to provide a rating.

Description This use case describes the process of a customer


rating a delivered product or the overall delivery
experience in the Flutter Electronics Delivery
Mobile Application.

Pre-condition The customer has logged into the Flutter


Electronics Delivery Mobile Application.
The customer has received a delivered product or
completed a delivery.

Flow of event 1) The customer opens the Flutter Electronics


Delivery Mobile Application.
2) The customer navigates to the order history or
delivery history section.
3) The application displays a list of completed

20
orders or deliveries.
4) The customer selects the specific order or
delivery for which they want to provide a
rating.
5) The application presents the details of the
selected order or delivery, including the
product(s) received and the delivery
information.
6) The customer selects the "Rate" or "Provide
Feedback" option for the order or delivery.
7) The application prompts the customer to
provide a rating, usually on a scale of 1 to 5 or
using a star rating system.
8) The customer selects the appropriate rating
based on their satisfaction with the product or
delivery experience.
9) The application may provide additional fields
or options for the customer to provide
comments or feedback related to the rating.
10) The customer enters any additional comments
or feedback if desired.
11) The customer submits the rating and
feedback.
12) The application records the rating and
feedback associated with the respective order
or delivery.

Alternative Flow of event ✓ If the customer decides not to provide a


rating, they can cancel the rating process and
return to the order history or delivery history
section.
✓ If the customer encounters any issues or has
concerns regarding the rating process, they
can contact customer support for assistance.
13)
Post-condition ✓ The customer's rating and feedback are
recorded in the system and associated with the
respective order or delivery.
✓ The provided rating and feedback may be
used to improve the overall product quality or
delivery service in the Flutter Electronics
Delivery Mobile Application.
✓ The customer can view their submitted ratings

21
and feedback within the application, if
desired.

Table 9 Accept or Reject Orders

Use case id UC-06


Use case name Accept or Reject Orders
Participating actor Shop Admin
Description This use case allow a shop admin to accept or reject
the order
Precondition 1. The user is a shop admin and has access
to the order management system.
2. The system is running and accessible.

Flow of event 1. The shop admin logs in to the order


management system.
2. The shop admin navigates to the
"Orders" section of the dashboard.
3. The system displays a list of incoming
orders.
4. The shop admin selects an order to
review.
5. The system displays the details of the
selected order, including the customer's
name, order items, and payment
information.
6. The shop admin can review the order to
ensure that it meets the shop's
requirements and standards.

22
7. If the order meets the shop's standards,
the shop admin can select "Accept
Order."
8. The system confirms the action and
updates the order status to "Accepted."
9. If the order does not meet the shop's
standards, the shop admin can select
"Reject Order."
10. The system prompts the shop admin to
provide a reason for rejecting the order.
11. The shop admin enters a reason and
confirms the action.
12. The system updates the order status to
"Rejected" and sends a notification to
the customer.

Alternative Flow of event 1. If the shop admin encounters an error


while managing orders, the system will
display an error message and provide
options for resolving the issue.
2. If the shop admin needs to take a break
from reviewing orders, they can save
their progress and log out of the system.
When they log back in, the system will
display any pending orders that still
need to be reviewed.
Post-condition 1. The system accurately reflects the
status of each order, including whether
it has been accepted or rejected.
2. The customer is notified of the order
status.

23
Table 10 Manage all users
Use case id UC-07
Use case name Manage all users

Participating actor Admins

Description This use case helps to the a shop administrator to To


manage all the users .

Pre-condition 1) The admin must have active account

2) The admin must first login

Flow of event 1. The administrator logs in to the user


management system.
2. The administrator navigates to the user
management dashboard.
3. The administrator selects the "Manage Users"
option.
4. The system displays a list of all users.
5. The administrator can search for a specific user
by entering their name or other identifying
information.
6. The administrator can select a user to view,
modify, or delete their account.
7. If the administrator selects "View User", the
system displays the user's account information,
including their name, email address, and
account status.
8. If the administrator selects "Modify User", the
system allows the administrator to update the
user's information, such as their name or email
address.
9. If the administrator selects "Delete User", the
system prompts the administrator to confirm the

24
action before deleting the user's account.
10. Once the administrator has finished managing
user accounts, they can log out of the system.

Alternative Flow of event 1) If the administrator enters incorrect login


credentials, the system will deny access to the
user management system and prompt the user to
try again.
2) If the administrator encounters an error while
managing user accounts, the system will display
an error message and provide options for
resolving the issue.

Post-condition 1. The user logged in to the system and perform


functions according to his registered access level. All
user account information is up-to-date and accurately
reflects the status of each user account.
2. The system has recorded all actions taken by the
administrator, including user modifications and
deletions.

Table 11 Assign Delivery person


Use case id UC-08
Use case name Assign Delivery person
Participating actors Shop admin
Description a shop admin can assign a delivery person to
deliver orders to customers
Pre-condition 1. The shop has a list of available delivery
personnel.
2. The order has been received and confirmed
by the shop admin.

25
3. The customer's delivery address and contact
information have been provided.
Flow of event 1. The shop admin receives an order and
reviews the details.
2. The shop admin checks the list of
available delivery personnel.
3. The shop admin selects a delivery
person to fulfill the order.
4. The shop admin assigns the delivery
person to the order and notifies them of
the delivery details.
5. The delivery person confirms receipt of
the delivery details and sets out to
deliver the order.
6. The delivery person delivers the order to
the customer within the specified time
frame.
7. The customer receives the order and
confirms receipt

Post-condition 1. The order has been successfully


delivered to the customer within the
specified time frame.
2. The delivery person has confirmed the
completion of the delivery.
3. The shop admin has updated the order
status as "Delivered".

Alternative flow of action 1. If the shop admin is unable to find an


available delivery person, they may
need to contact a third-party delivery

26
service to fulfill the order.
2. If the assigned delivery person is unable
to fulfill the order for any reason (e.g.
they are unable to locate the customer's
address), they must notify the shop
admin immediately and arrange for
another delivery person to fulfill the
order.

Table 11 Add To Cart


Use case id UC-09
Use case name Add To Cart
Participating actor Users
Description This use case used for for users to order or add
items to their cart.
Pre-condition 1. The user has logged in to their
account.
2. The user has navigated to the
product page.
3. The product is available for
purchase.

Flow of event 1. The user selects the desired product


to purchase.
2. The user clicks on the "Add to
Cart" button.
3. The system adds the selected
product to the user's cart.
4. The system displays a message

27
confirming that the item has been
added to the cart.

Alternative Flows: 1. If the selected product is not


available, the system displays a
message indicating that the product
is out of stock.
2. If the user has already added the
maximum number of items allowed
in the cart, the system displays a
message indicating that the cart is
full.

Post-condition 1. The selected item has been added to


the user's cart.
2. The user can continue shopping or
proceed to checkout.
3. The system updates the cart with the
added item.

Table 12 Shop management


Use case id UC-10
Use case name Shop management
Participating actors Shop admins
Description This use case allow a shop admin manage all
the products inside the shop.
Pre-condition 1. The shop admin has logged in to
their account.
2. The shop has one or more products

28
available for sale.

Flows of the events 1. The shop admin navigates to the


product management page.
2. The system displays a list of all
available products.
3. The shop admin selects a product to
manage.
4. The system displays the product
details (e.g. name, description,
price, image).
5. The shop admin can update the
product details (e.g. change the
price, update the image, add a new
description).
6. The shop admin can add a new
product to the shop.
7. The shop admin can delete a
product from the shop.
8. The shop admin saves any changes
made to the product details.
9. The system updates the product
details in the shop.

Alternative Flows: 1. If the shop admin attempts to


update a product that is out of stock,
the system displays a message
indicating that the product is no
longer available.
2. If the shop admin attempts to delete
a product that has already been

29
purchased, the system displays a
message indicating that the product
cannot be deleted.

Post-condition 1. employee prints and go to the “human


resource management” for last
signature and seal. The shop admin
has successfully managed the products
available for sale in the shop.
2. The system has updated the product
details in the shop.
3. The shop is ready to sell the updated
products to customers.

2.2.3 Business Rule Documentation

➢ Customer Registration Rule:


Description: Customers must register an account before using the Flutter Electronics Delivery
Mobile Application.
Rule: Only individuals who have registered an account can access the application and its
features.

➢ Product Availability Rule:


Description: Products should be available for purchase if they are listed in the application.
Rule: Only products that are in stock and available should be displayed and accessible for
purchase by customers.

➢ Payment Validation Rule:


Description: Payments made by customers should be valid and authorized.
Rule: The application should validate payment methods and ensure that the provided payment
information is accurate and authorized by the customer.

30
➢ Delivery Address Rule:
Description: Customers should provide a valid delivery address for order fulfillment.
Rule: Customers must enter a complete and accurate delivery address during the checkout
process to ensure successful delivery of the ordered products.

➢ Order Confirmation Rule:


Description: Customers should receive an order confirmation after successfully placing an order.
Rule: Upon successful completion of the order placement process, the application should
generate an order confirmation with a unique order ID and provide it to the customer.

➢ Rating Eligibility Rule:


Description: Customers should be eligible to provide ratings for delivered products.
Rule: Only customers who have received their orders should be able to provide ratings and
feedback for the delivered products.

➢ Privacy and Data Protection Rule:


Description: Customer information and data should be protected and handled securely.
Rule: The application should implement appropriate security measures to safeguard customer
data and comply with relevant privacy regulations.

➢ Order Cancellation Rule:


Description: Customers should be able to cancel their orders within a specified timeframe.
Rule: Customers can request order cancellation within a designated period before the order is
shipped or delivered, and the application should process the cancellation accordingly.

2.2.4 User Interface prototype

User interface requirements should be gathered with a prototype approach here and aligned with
system use case documentation that shows the user interaction with the system. It should be
labeled and referenced in the use case documentation.

2.2.5 State chart diagram

31
Figure 1 state shart diagram
2.2.6 Activity Diagram

Draw activity diagrams to show the operations/activities performed by use cases to achieve their
functionality. Activity diagrams are drawn for each use case. Show the visual representation of
activities/processes for use cases or methods or business processes.

2.2.7 Sequence diagram

Figure 2 add product sequence diagram

32
Figure 3 place order sequence diagram

Figure 4 add product sequence diagram

33
Figure 5 add to cart sequence diagram

Figure 6 change status sequence diagram

2.2.8 Analysis Class Model

34
Figure 7 class diagram

2.3 Nonfunctional requirement

a) Performance: The application should perform well and respond quickly to user requests ,
Optimize app performance to ensure fast load times, smooth navigation, and a seamless user
experience.
b) Scalability: The application should be able to handle a growing number of users and orders
without losing performance.
c) Security: The application should be secure and protect user data and. Implement robust security
measures to protect user data, payment information and prevent fraudulent activities, including
encryption, authentication, and authorization.
d) Usability: The application should be easy to use, with a clear and intuitive interface, and
accessible to people with disabilities.
e) Compatibility: The application should be compatible with different devices, platforms, and
screen sizes.
f) Availability: The application should be available 24/7, with minimal downtime for maintenance
or updates.
g) Reliability: The application should be reliable, with a low rate of errors or crashes.
h) Maintainability: The application should be easy to maintain, update, and fix bugs.
i) Localization: The application should support different languages and local currencies for users in

35
different regions.
j) Integration: The application should be able to integrate with other systems and services, such as
payment gateways, mapping services, and social media.

2.4 System Requirement

2.4.1 Hardware requirements

The Software product to be developed should run on existing Mobiles. The system will be
portable that can be run on :
➢ Android and iPhone mobile devices.
2.4.1.1 Software requirements

Android and IOS operating systems .

36
Chapter 3: System Design

3.1 Architectural Design

➢ Client-Side Application:
The client-side application is what users interact with on their devices. It could be a mobile app
or a web application. The client-side application should have an intuitive user interface (UI)
and provide functionalities such as browsing products, placing orders, tracking deliveries, and
making payments.

➢ Server-Side Components:
The server-side components handle the business logic, data processing, and communication
with external systems. Some essential server-side components include:
Web Server: It handles HTTP requests from clients and serves dynamic content.
Application Server: It executes the core business logic and processes requests from the client-
side application.
Database Server:
It stores and retrieves data related to products, users, orders, and other relevant information.
Payment Gateway: It integrates with payment providers to facilitate secure and reliable
payment processing.
APIs and Integration: The delivery app may need to integrate with various external systems and
services. This could include integration with mapping services for tracking deliveries, payment
gateways for processing transactions, and third-party APIs for services like address validation
or real-time inventory management.

3.1.1 Deployment Modeling

37
3.2 User Interface Design

38
39
Figure 8 login page

40
41
Figure 9 select role

42
43
Figure 10 add shop page

44
45
Figure 11 user home page

46
47
48
Figure 12 product detail page

49
50
Figure 13 check out page
3.3 Access control and security

Figure 14 Access control and security

51
Chapter Four: Implementation

Sample code

Adisu, [5/11/2023 10:06 AM]


class LoginScreen extends StatefulWidget { const LoginScreen({super.key});
@override
// ignore: library_private_types_in_public_api LoginScreenState createState() => LoginScreenState();
}
class LoginScreenState extends State<LoginScreen> { late TextEditingController _emailController;
late TextEditingController _passwordController;
final _keyForm = GlobalKey<FormState>(); final AuthService _auth = AuthService();
bool loading = false;
String email = '';
String password = ''; String errorMessage = '';
// double? deviceHeight, deviceWidth; //have no use now
@override
void initState() { _emailController = TextEditingController();
_passwordController = TextEditingController();
super.initState(); }
@override
void dispose() { _emailController.clear();
_passwordController.clear(); _emailController.dispose();
_passwordController.dispose(); super.dispose();
}
@override Widget build(BuildContext context) {
// deviceHeight = MediaQuery.of(context).size.height; // deviceWidth =
MediaQuery.of(context).size.width;
return loading ? const Loadnig(): Scaffold( backgroundColor: Colors.white,
body: SafeArea( child: Form(
key: _keyForm, child: ListView(
padding: const EdgeInsets.symmetric(horizontal: 20.0, vertical: 10.0),
children: [ Align(
alignment: Alignment.centerLeft, child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [
InkWell(
onTap: () => Navigator.pop(context), borderRadius:
BorderRadius.circular(100.0),
child: Container( height: 40,
width: 40, decoration: BoxDecoration(
color: Colors.grey[50], shape: BoxShape.circle), child: const
Icon(Icons.arrow_back_ios_new_outlined,
color: Colors.black, size: 20), ),
), Row(
children: const [ TextCustom(
text: 'online ', color: ColorsFrave.primaryColor,

52
fontWeight: FontWeight.w500), TextCustom(
text: 'Delivery', color: Colors.black87,
fontWeight: FontWeight.w500), ],
) ],
), ),
const SizedBox(height: 20.0), Image.asset('assets/images/food-delivery-marker.png',
height: 150), const SizedBox(height: 30.0),
Container( alignment: Alignment.center,
child: const TextCustom( text: 'Welcome back!',
fontSize: 35, fontWeight: FontWeight.bold,
color: Color(0xff14222E)),
), const SizedBox(height: 5.0),
const Align( alignment: Alignment.center,
child: TextCustom( text:
'Use your credentials below and login to your account.', textAlign:
TextAlign.center,
color: Colors.grey, maxLine: 2,
fontSize: 16), ),
const SizedBox(height: 50.0), const TextCustom(text: 'Email Address'),
const SizedBox(height: 5.0), FormFieldFrave(
controller: _emailController, hintText: 'email@frave.com',
keyboardType: TextInputType.emailAddress, validator: (String? value) {
if (value == null || value.isEmpty) { return 'Please enter your email';

Adisu, [5/11/2023 10:06 AM]


} else { final emailRegex =
RegExp(r'^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$'); if
(!emailRegex.hasMatch(value)) {
return 'Please enter a valid email'; }
} return null;
}, ),
const SizedBox(height: 20.0),
const TextCustom(text: 'Password'), const SizedBox(height: 5.0),
FormFieldFrave( controller: _passwordController,
hintText: '********', isPassword: true,
validator: (String? value) { if (value == null || value.isEmpty) {
return 'Please enter password'; }
if (value.length < 4) { return 'Password must be at least 4 characters';
} return null;
}, ),
const SizedBox(height: 10.0), Align(
alignment: Alignment.centerRight,
child: Row( mainAxisAlignment: MainAxisAlignment.end,
children: const [ InkWell(
// onTap: () => Navigator.push(context, routeFrave(page: ForgotPasswordScreen())),
child: TextCustom(
text: 'Forgot Password?', fontSize: 17,
color: ColorsFrave.primaryColor)), ],
)), Text(
errorMessage, style: const TextStyle(
color: Colors.red, ),
), const SizedBox(height: 40.0),
53
BtnFrave( text: 'Login',
fontSize: 21, height: 50,
fontWeight: FontWeight.w500, onPressed: () async {
if (_keyForm.currentState!.validate()) { setState(() {
loading = true; });
dynamic result = await _auth.signInWithEmailAndPassword(
_emailController.text, _passwordController.text);
if (result == null) { setState(() => {
loading = false, errorMessage =
'Could not sign in with those credentials' });
} else { // ignore: use_build_context_synchronously
Navigator.pop(context); }
} },
), const SizedBox(height: 40.0),
BtnFrave( text: 'continue with google ',
fontSize: 21, height: 50,
fontWeight: FontWeight.w500, color: const Color.fromARGB(255, 67, 90, 241),
onPressed: () {}, ),
const SizedBox(height: 20.0), InkWell(
onTap: () { Navigator.of(context).push(
MaterialPageRoute( builder: (context) => const Register(),
), );
}, child: const TextCustom(
text: 'create new Account?', fontSize: 17,
color: ColorsFrave.primaryColor)), ],
), ),
), );
}}

54
Chapter Five: Testing and Evaluation

55
References
[1] https://www.w3schools.com/
(to refer different programming language and framework )
[2] www.google.com
(to refer related document with my project )
[3] www.youtube.com
(to watch related videos with my project )

[3] https://docs.flutter.dev/ui
[4] https://firebase.google.com/

56
57

You might also like