# Testing Complete Platform

{% embed url="<https://www.youtube.com/watch?v=bUVuqzMe3mw&t=62s>" %}
Ride Booking Flow - Ionic 5 Taxi Complete Platform using Firebase
{% endembed %}

Before proceeding further, please make sure that you have completed all the steps from&#x20;

\
1\. [Taxi User App - Setup](https://enappd.gitbook.io/ionic-taxi-booking-app-starter/how-to-use-this-starter/setting-up-and-running-taxi-user-app)

2\. [Taxi Driver App - Setup](https://enappd.gitbook.io/ionic-taxi-booking-app-starter/how-to-use-this-starter/setting-up-and-running-taxi-driver-app)

3\. [Taxi Admin App - Setup](https://enappd.gitbook.io/ionic-taxi-booking-app-starter/how-to-use-this-starter/untitled)

### Check Driver App

1. Go to Driver app. (You must have approved this driver from **Admin App**)
2. Refresh the app to see the driver profile appears now, as shown below.&#x20;

{% hint style="danger" %}
It shows the following error "Firebase Error - the query requires index and you can create it here".&#x20;
{% endhint %}

Click on the Link given in Above error to **Create Index.** Firebase Index is a way to search using complex queries. So without these enabled you will be facing issues in the app.

![](https://833912930-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LqKtay1j36CbfXCRwWg%2F-M5CZm6P4XOBi0Q49Waf%2F-M5CjNJKFgy3NXRXJiKT%2FScreenshot%202020-04-18%20at%202.51.08%20PM.png?alt=media\&token=b10c08dd-a981-4a3c-ad58-7eeb5546db99)

Click on Above link will open a your **firebase project console** in your browser with the title “**Create a composite index**”, as shown below. Click on “**Create index**”.&#x20;

![](https://833912930-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LqKtay1j36CbfXCRwWg%2F-M5CZm6P4XOBi0Q49Waf%2F-M5Cjp85fqLN71m7tAxQ%2FScreenshot%202020-04-18%20at%202.52.54%20PM.png?alt=media\&token=5d475887-f9a6-4d16-9c46-ef5a48b46c05)

It should show the status as "**Building**" for the composite index as shown below. This may take a long time to build index. So wait for it to be completed. It may take 2-3 minutes.

![](https://833912930-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LqKtay1j36CbfXCRwWg%2F-M5CZm6P4XOBi0Q49Waf%2F-M5ClhpdCYMEU8XHega_%2FScreenshot%202020-04-18%20at%202.54.45%20PM.png?alt=media\&token=7fb4cd41-8a7a-408e-a486-25b1c43a9c54)

After the status changes to "**Enabled**" (Sometime it doesn't change the status - but a simple alert comes on completion of index) . Open you **Driver App** running in the browser and refresh it to see that error is fixed.\
\
You will need to build one more index in this app as coming up next.&#x20;

###

### Testing the Booking Flow&#x20;

Go to **User App** and book a ride again. It has a default 60 seconds timeout period so you can quickly jump to Driver app after this.

![](https://833912930-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LqKtay1j36CbfXCRwWg%2F-M5CZm6P4XOBi0Q49Waf%2F-M5CmY97qr8PUVtCig7a%2FScreenshot%202020-04-18%20at%202.56.47%20PM.png?alt=media\&token=265a8257-8d49-4ac0-878e-5533eb65f2b2)

Open **Driver App** switch the **offline to online mode** . Here also you will need to build an index which is required to search for rides. So repeat same steps to build the index. Screens are given below.

![](https://833912930-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LqKtay1j36CbfXCRwWg%2F-M5CZm6P4XOBi0Q49Waf%2F-M5CoHiLVwHghk-wMBEs%2FScreenshot%202020-04-18%20at%202.58.56%20PM.png?alt=media\&token=dc8be677-b83d-4281-9d20-6a1598d4f15e)

Click on **Create index**

![](https://833912930-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LqKtay1j36CbfXCRwWg%2F-M5CZm6P4XOBi0Q49Waf%2F-M5CoTo5j5bWbvvz_UC2%2FScreenshot%202020-04-18%20at%202.59.55%20PM.png?alt=media\&token=6a114298-5ed1-46f6-94e9-aa457d678be2)

Wait for status to change to **Enabled** or appearance of **Completion** **Alert**

![](https://833912930-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LqKtay1j36CbfXCRwWg%2F-M5CZm6P4XOBi0Q49Waf%2F-M5Coam_ySx7Y2uJic8P%2FScreenshot%202020-04-18%20at%203.00.38%20PM.png?alt=media\&token=932d0c24-8e35-4645-a220-ace4b94be733)

Go back to **User App** and book a ride.

![](https://833912930-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LqKtay1j36CbfXCRwWg%2F-M5CZm6P4XOBi0Q49Waf%2F-M5CmY97qr8PUVtCig7a%2FScreenshot%202020-04-18%20at%202.56.47%20PM.png?alt=media\&token=265a8257-8d49-4ac0-878e-5533eb65f2b2)

Jump to **Driver App** . You should see a *Ride Alert*

![](https://833912930-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LqKtay1j36CbfXCRwWg%2F-M5CZm6P4XOBi0Q49Waf%2F-M5Cq6rnUVahUtb5zs-d%2FScreenshot%202020-04-18%20at%203.04.42%20PM.png?alt=media\&token=408e5da4-fca3-4a00-b765-c965a038735d)

**Driver App -** Once you **Accept** the ride, the app will show you **Go to Pick up** status, after which driver should go to the pick up location of the user.

![](https://833912930-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LqKtay1j36CbfXCRwWg%2F-M5CZm6P4XOBi0Q49Waf%2F-M5CqCjWtIKrq2UV-L3l%2FScreenshot%202020-04-18%20at%203.04.54%20PM.png?alt=media\&token=c82ed098-1c60-4657-ae32-1466b9bfa340)

**User App** will show that driver has been assigned

![](https://833912930-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LqKtay1j36CbfXCRwWg%2F-M5CZm6P4XOBi0Q49Waf%2F-M5CqKqNMJbFGCvXEsK4%2FScreenshot%202020-04-18%20at%203.05.37%20PM.png?alt=media\&token=79d4cd4e-91e3-47bd-9469-df58666439bb)

**Driver App - Go to Pickup** will not do anything significant in this testing case here. You can click on **Start Ride.**

![](https://833912930-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LqKtay1j36CbfXCRwWg%2F-M5CZm6P4XOBi0Q49Waf%2F-M5CqRerZBGIuYHm1UVC%2FScreenshot%202020-04-18%20at%203.06.16%20PM.png?alt=media\&token=ad9ed729-36c3-48b4-9674-b5593d8d54f1)

After starting the Ride. **Driver** screen should look like this.

![](https://833912930-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LqKtay1j36CbfXCRwWg%2F-M5CZm6P4XOBi0Q49Waf%2F-M5CqaolsnwAi2fvEjQd%2FScreenshot%202020-04-18%20at%203.06.46%20PM.png?alt=media\&token=20021619-baa1-43c0-8fea-0747b859903c)

After starting the Ride. **User** screen should look like this.

![](https://833912930-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LqKtay1j36CbfXCRwWg%2F-M5CZm6P4XOBi0Q49Waf%2F-M5CqiACeuoOsdNruTlm%2FScreenshot%202020-04-18%20at%203.07.07%20PM.png?alt=media\&token=3ca43edb-82e9-4754-b857-97d7895ab5d2)

**Driver App -** Driver completes the ride and user gets the notification

![](https://833912930-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LqKtay1j36CbfXCRwWg%2F-M5CZm6P4XOBi0Q49Waf%2F-M5CqoOjPlZ4XQiuxvOO%2FScreenshot%202020-04-18%20at%203.07.43%20PM.png?alt=media\&token=ca9a4577-907b-4ceb-b7c7-6a190b088ff8)

###

### Admin App - Ride History&#x20;

Admin App can be now used to check - Ride history. It generally shows all rides completed or cancelled. This can be customised by the developer.

![](https://833912930-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LqKtay1j36CbfXCRwWg%2F-M5CZm6P4XOBi0Q49Waf%2F-M5Cqvoj8VZCdvlA51hd%2FScreenshot%202020-04-18%20at%203.08.40%20PM.png?alt=media\&token=8e96da20-c3c3-4ce5-9620-4bc1961d7a9d)

You can click on a **Ride** **Card** and check its details.\ <br>

**This completes our sample Booking flow !!**\
\
There are few more flows which you can explore the app in more detail via our Demo APK or Feature videos.
