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

DCIT 307, Group 2

Overview

Purpose

This software application is basically a courier software that is meant to enable users
to book in deliveries and have their packages delivered. Delivery will be done by
organizing customers' orders and allocating them to the nearest couriers. At the end
of the day, the customers should have received their packages, the couriers delivering
the packages should have been supported - provided the necessary details for
delivery and customer satisfaction should have taken place to ensure that the
customers have an appreciable customer experience.

Overall Description

The Courier Software consists of two (2) applications, one for the drivers and the other
for the customers. The application for the drivers will enable them to register, get
notified on nearby delivery requests, accept or decline requests, get the fastest route
for delivery and see the price after delivery. Customers, on the other hand, will be able
to register, enter a pickup location, request for couriers to deliver, see nearby available
couriers, see an estimated price for the delivery.

The main features of this courier software are:


1. Scheduling of delivery and dispatch: Manages schedules according to location.
2. Mobile communication: Real-time communication between drivers and
customers.
3. Route allocation: Provision of GPS and allocation of efficient routes to save time
and fuel.
4. Customer portal: Allows customers to check the statuses of deliveries.

Functional Requirements
In a software engineering project, functional requirements can be defined as the
functionalities the product being built should have - what the project should do.
Upon discussion with the group members we came to the following functional
requirements for our courier service product. They will be divided into two
categories, functional requirements for the end user and for the delivery riders.

For End User:


1. Users will be able to log in with a valid Gmail account.
2. Users will receive an OTP to confirm and authenticate their phone number.
3. Users will be able to request for a courier to deliver a package for them.
4. Users will be able to enter/select package pickup and dropoff locations from the
in-app map.
5. Users will be able to see available riders around them.
6. Users will be able to see an estimated price before delivery and will also be
shown a calculated price at the end of their delivery.
7. Users will be able to pay using either cash or credit/debit card.

For Delivery Rider:


1. Riders will be able to register for an account, using both email and phone
number.
2. Riders will be subject to photo upload and drivers license upload for
verification.
3. Riders will be able to see delivery requests nearby (and the specific locations),
and decide whether to accept/reject it.
4. Riders will be able to follow a given route to the dropoff location.
5. Riders will be able to see the price after the delivery.
Non- Functional Requirements
1. Maintainability
2. Scalability
3. Utility
4. Usability
5. Availability
6. Serviceability

Users:
• Individuals or Businesses (End users) looking to Deliver or receive packages.
• Vehicle (Car and Motorcycle) drivers picking up and delivering packages from a
pick up point to drop off point.

Use-Case Diagram

1. Login:
Users can log into the system with valid credentials.
2. . Request for service:
A delivery or courier service is requested here.

3. Make payment:
Payment is made for the service here based on the user's request details.

4. Package collected by courier:


Package is picked up by an allocated courier.

5. Track package:
User tracks package using system.

6. Package delivered:
Package is delivered to the user's specified destination.

User Stories:
1. As an end user, I want to be able to request for a package to be delivered
So that, I can save the time and cost of driving to-and-fro.
Pre-condition: Valid user account.
Post-condition: Successful delivery of package.
Priority: HIGH

2. As an end user, I want to be able to see the available drivers/riders near me


So that, I can know if there are any drivers/riders available in my vicinity and know
how far they are.
Pre-condition: Valid user account.
Post-condition: Ability to request for delivery knowing there are drivers/riders
around.
Priority: MEDIUM

3. As an end user, I want to be able to enter or select my package pickup and


drop-off location
So that, the driver/rider knows where to pick up a package and to drop it off.
Pre-condition: Know where the package needs to be delivered to.
Post-condition: Successful pick up and drop off.
Priority: HIGH

4. As an end user, I want to be able to know the estimated cost of delivering my


package given the distance between pickup and drop-off
So that, I know if I can afford the price of dropping off my package as well as know
how much to pay the driver/rider.
Pre-condition: Know pick up and drop of locations.
Post-condition: Successful payment before or after package delivery.
Priority: MEDIUM

5. As an end user, I want to see the estimated time of the rider's arrival to the
pickup point once my request has been accepted
So that, I know when to expect the driver/rider's arrival.
Pre-condition: Pickup location entered successfully.
Post-condition: Prepared in time to meet the driver/rider.
Priority: LOW
6. As an end user, I want to be able to keep track of my package, from pickup to
drop-off.
So that, I know where my package is, while it's being delivered.
Pre-condition: Successful pickup by driver/rider.
Post-condition: Advantage of knowing where the package is.
Priority: HIGH

7. As a driver/rider, I want to be able to receive requests from users near me


So, I can quickly head to package pick up points.
Pre-condition: Valid driver/rider account.
Post-condition: Quick arrival to pick up points.
Priority: HIGH

8. As a driver/rider, I want to know the pickup and drop off location of a package
So that, I can successfully pick up and drop off packages as requested.
Pre-condition: Users must provide pickup and drop off locations.
Post-condition: Successful delivery of package.
Priority: HIGH

9. As a driver/rider, I want to be able to accept or reject a request


So that if a request is too far I can reject it.
Pre-condition: Location of point of request.
Post-condition: Quick arrival to pick up point.
Priority: LOW

10. As a driver/rider, I want to be provided an efficient route to the point of


package pickup and from there to the drop off location
So that I can pick up and deliver packages quickly using the best route.
Pre-condition: Access to in-app map.
Post-condition: Quick and successful delivery of package.
Priority: HIGH

11. As a driver/rider, I want to be able to view the price of delivering the package at
the end of the ride
So I can collect payment.
Pre-condition: Successful delivery of package.
Post-condition: Successful payment for package delivery.
Priority: HIGH

12. As a driver/rider, I want to be able to contact the user requesting the package
delivery and the person receiving the package.
So that, I can communicate the time of arrival at pick up and drop locations and
confirm requests.
Pre-condition: Accepted ride request.
Post-condition: Smooth pickup and drop-off of packages.
Priority: MEDIUM

Technologies To Be Used
1. React Native for both mobile applications
2. HTML, CSS, JavaScript for web app
3. PHP for the backend

You might also like