Taxi Booking App (ios and android) and a Windows based management tool

Job ID: 38946887

Budget: $250 – $750 CAD

Looking for someone to create a functional app for a small Taxi company.
This app will be used in a small country. Some of the features would be similar to uber, but we dont need active GPS tracking or in-app payments as it will be mostly cash based



(Consists of two apps: )
1. A Windows based app (mothership) that an admin person can use in the office; and
2. A mobile app (ios/android) that customers will use to book a taxi ride.
Drivers will also login to the driver portal section of the app and remain 'active' during their shifts, and can go 'on shift' anytime.


Windows app:


1. Should be built in Visual Studio 2022 (.Net Framework 4.8, using VB.NET)

2. Provides a simple interface for office admin to see all customer data (name, address, phone, bookings)

3. Customer data exists in MS SQL Express databse hosted on Google Cloud (on a small Compute Engine instance, to minimize cost and stay within limits when possible)

4. Also provides a 'calendar' section where bookings can be viewed at a glance
- And shows which drivers are 'online' (logged into the app and started their shift by toggling a button)

5. Also provides a 'manage drivers' section where new drivers can be added, and assigned user credentials(username/password)
- and ability to view all their past/current bookings
- and assign them to a specific 'region'
- and view their last login date, type of phone they are using





Mobile app: (ios and android)

1. Should be built in Visual Studio 2022 (.NET Maui, C#) - with a simple xaml layout that can be tweaked later.

2. Registered drivers, and any customer can login to the app:
- 'login' screen shows 3 options (driver login, customer login, register)

REGISTERED DRIVERS:

- They login with the ID and password provided by the admin staff

- Must have location services enabled on device (for google maps integration, distance calculation, etc)

- Their personal details are pulled from the MS SQL cloud database and displayed in the app/can be edited

- They can change their region (from the database list of available regions), add a photo avatar, change their display name the customer will see, etc.

- Once signed into the app, they can toggle a 'start shift' button which sets an 'available' flag in the database


CUSTOMERS:


- They register for access to the app, providing: (email address, region, home address, phone, gender)

- Use a simple text-message verification process to confirm new customer registrations. Then save data to the hosted database

- Give the option to set a 'default' pickup address (but for each booking they can choose default, different address, etc.)

- Option to create NEW PICKUP:
- enter destination address, choose originating address
- choose desired time (pickup NOW or later)
- choose if the pickup is for themself or for a different person
- they select from a list of available drivers in their region
- show confirmation of details, and send the request to the driver.

DRIVER receives the request
(process)

- 'incoming request' message pops up on their screen, showing the details
- they can 'accept' the request, and enter an approximate arrival time (optional)
- they have 5 minutes to accept the request. if no response is received, send the request to the next available driver in the customer's region

REQUEST Accepted:

- When a driver accepts a request, they see a message 'driver (name) has accepted your request, and is on the way' etc.
- Show approximate distance of the driver (using google maps)
- in database: record the distance at the time of acceptance, and customer request time etc
- in database: mark driver as 'on route'

When DRIVER is nearby (5-10 km away)

- Notify customer driver is on his way (using push notification)
- Show last known location on the maps
(For simplicity we dont need to show a moving map of the driver's progress)
- in database: record that the 'nearby' notification was sent, time, etc

When customer is picked up
- provide a way for the driver to indicate he has picked up the customer and on the way to the destination
- in database: record that the customer was picked up, time etc

When customer is dropped off:
- Driver must check a box in the app when the customer is dropped off



CUSTOMERS - If no driver is available, OR if they want to schedule for a later time or day:

- On booking screen, give the option to setup a future booking
- Enter date/time/origin/destination.
- these get stored in the database so admin office user can assign a driver manually (depending on how far in the future the booking is for)
- if less than 1 day away, put it in a 'queue' that can cycle between each driver (1 hour prior to pickup) until it's accepted
- when accepted or assigned, customer gets an email and notification in the app to let them know their booking is scheduled.