Documentation

taxi Flutter- Complete Taxi Booking Solution


  • Created: 5 May, 2022
  • Update: 24 October, 2022
  • Update: 29 November, 2022
  • Update: 05 January, 2023
  • Update: 17 February, 2023
  • Update: 07 April, 2023
  • Update: 20 May, 2023
  • Update: 12 July, 2023
  • Update: 26 July, 2023
  • Update: 01 August, 2023
  • Update: 01 November, 2023
  • Update: 20 November, 2023
  • Update: 01 January, 2024
  • Update: 16 February, 2024

If you have any questions that are beyond the scope of this help file, Please feel free to email via Item Support Page.

Please use the following updated document for an easy installation Setup Document.

Video Tutorials

Server Setup video Tutorial

Flutter Setup Tutorial

Server Installation

We are strongly suggested AWS VPS with ubuntu OS. Because it is quite easy to setup and maintain. For an AWS we can create EC2 T2 medium or large instance. After created an instance from AWS. we need to install the required softwares below.


Installation Instruction

Follow the steps below to setup your admin app:

  1. Create VPS Server with Ubunutu OS
  2. Enable Ports
  3. Install Apache
  4. Install PHP8.1
  5. Install mysql
  6. Install phpmyadmin
  7. Install composer
  8. Setup Laravel Supervisor

Create VPS Server

We prefer AWS/Digitalocean server for better experience, You can use any VPS server with ubuntu OS

Required Configurations

  1. Ram:Minimum 4GB
  2. Storage:Minimum 30GB
  3. Operating Systems:Ubuntu 20.4

Enable Ports

We need some ports should be opened in the server for our backend application running

Required Ports

  1. SSL:443
  2. Apache:80
  3. Jenkins:8080

Install Apache

Follow the below steps to setup apache

  1. Open the ssh terminal using pemfile of your aws instance
  2. Run sudo apt install apache2 to install an apache2
  3. Run sudo apt update
  4. Run "sudo nano /etc/apache2/sites-available/000-default.conf" to edit the config follow next step.
  5. <Directory /var/www/html >
    Options -Indexes
    AllowOverride All
    Require all granted
    ErrorDocument 403 "You Don't have a permission to access this URL"
    ErrorDocument 404 "Requesting Page not Found. Contact admin for further details"
    </Directory /var/www/html >

  6. Run sudo service apache2 restart to restart the apache2.
  7. Reference Link : https://www.digitalocean.com/community/tutorials/how-to-install-the-apache-web-server-on-ubuntu-20-04

Install PHP 8.1

Please follow the instrctions from the reference link below. And Install the php extensions below.

Required Extensions

  1. bcmath,bz2,intl,gd,mbstring,mysql,zip,fpm,curl,xml
Reference Link : https://computingforgeeks.com/how-to-install-php-on-ubuntu/

Install Mysql

Please follow the instrctions from below.

  1. sudo apt-get update
  2. sudo apt-get install mysql-server
  3. mysql_secure_installation
  4. sudo service mysql restart

To create a new user for mysql

  1. sudo mysql -u root
  2. use mysql;
  3. GRANT ALL ON *.* TO 'taxi_user'@'%' IDENTIFIED BY 'TaxiUser@123' WITH GRANT OPTION;
  4. FLUSH PRIVILEGES;
Reference Link : Reference Link : https://www.digitalocean.com/community/tutorials/how-to-install-mysql-on-ubuntu-20-04

Install PhpMyadmin

Please follow the instrctions below.

  1. >Open the path var/www/html and dowonload the phpmyadmin package using below command.
  2. sudo wget https://files.phpmyadmin.net/phpMyAdmin/5.0.1/phpMyAdmin-5.0.1-all-languages.zip
  3. Unzip the downloaded package and rename it to "pma".

Install Composer

Please follow the instrctions from the reference link below.

Reference Link: https://www.digitalocean.com/community/tutorials/how-to-install-and-use-composer-on-ubuntu-20-04

Install Jenkins

jenkins is used to upload the backend app code to the server via git repo.

To install jenkins you need to install JAVA. to install java run this command "sudo apt install openjdk-8-jdk"

Follow the instructions from the reference link below. and skip the firewal setup.

Reference Link: https://www.digitalocean.com/community/tutorials/how-to-install-jenkins-on-ubuntu-20-04

Laravel supervisor setup

Follow the instructions from the reference link below.

Reference Link: https://laravel.com/docs/8.x/queues#supervisor-configuration

Introduction

You are almost finished and ready to setup your back end part. once you setup jenkins and taken a build.

Setup Instructions

  1. rename the .env-example file to ".env"
  2. Create a database using phpmyadmin
  3. Setup DB config in .env file
  4. Sample .env file
  5. APP_NAME=taxi
    APP_ENV=local
    APP_KEY=base64:8zIYjbZv9brVUOy0XdixW2Oxpkg7S7DCe20ptOMbaRU=
    APP_DEBUG=true
    APP_URL=http://localhost/tyt-truck/public
    LOG_CHANNEL=daily
    SYSTEM_DEFAULT_TIMEZONE=Asia/Kolkata
    SYSTEM_DEFAULT_CURRENCY = 'INR'
    APP_FOR=production
    DB_CONNECTION=mysql
    DB_HOST=127.0.0.1
    DB_PORT=3306
    DB_DATABASE=rovon
    DB_USERNAME=tyt_user
    DB_PASSWORD=tyt_user@2020
    BROADCAST_DRIVER=log
    CACHE_DRIVER=array
    QUEUE_CONNECTION=database
    SESSION_DRIVER=file
    SESSION_LIFETIME=120
    MAIL_MAILER=smtp
    MAIL_HOST=smtp.sendgrid.net
    MAIL_PORT=587
    MAIL_USERNAME=username
    MAIL_PASSWORD=SG.TFEnuSBS65fg.qAmjKNd4LUxxowWdtklHgamytGu_mIBGMQhHVINFZiY
    MAIL_ENCRYPTION=tls
    MAIL_FROM_ADDRESS=suport@taxi.com
    MAIL_FROM_NAME="taxi"
    AWS_ACCESS_KEY_ID=
    AWS_DEFAULT_REGION=us-east-1
    AWS_BUCKET=
    FILESYSTEM_DRIVER=local
    SMS_PROVIDER=log
    DEFAULT_ALERT_EMAIL='taxii2021@gmail.com'
    FIREBASE_CREDENTIALS=/var/www/html/tyt-backend/public/push-configurations/firebase.json
    FIREBASE_DATABASE_URL=https://cabeezie.firebaseio.com/
    GOOGLE_MAP_KEY=AIzaSyBeVRuuicwooRpk7ErjCEQCwu0OQowVt9I
    GOOGLE_SHEET_KEY = AIzaSyggE-WE-lwXhxWFHJthZ6FleF1WQ3NmGAU
    DEFAULT_LAT=11.21215
    DEFAULT_LNG=76.54545
  6. Need to configure database config in .env file mentioned above.
  7. run the below commands to run the project.
  8. composer install php artisan migrate php artisan db:seed php artisan passport:install php artisan storage:link

Once you have done all these steps, then its ready to use. Please use the below url for admin apps and dispatcher app

Admin App url: http://your-base-url/login Dispatcher App url: http://your-base-url/dispatch-login

Map Configuration

To create zone & see map view & other map functionalities we need to add google map key in .env file. here is an example below.

GOOGLE_MAP_KEY=AIzaSyBeTRs1icwooRpk7ErjCEQCwu0OQowVt9J

Firebase Configuration

  1. After created the account in firebase, you need to create realtime database by following the explanation in android setup document section.
  2. After created the realtime database you need to copy the database url and paste it to the below .env variable
  3. FIREBASE_DATABASE_URL=https://your-app.firebaseio.com/

    To get realtime drivers from fiebase we need to config web app in firebase. so that we need to create web app.

    Responsive image Responsive image

Queue Setup

  1. for sending notifications & other stuffs we need to configure the supervisor setup to run the queue jobs in the server by following the document https://laravel.com/docs/8.x/queues#supervisor-configuration
  2. sample laraver-worker file
  3. [program:laravel-worker]
    process_name=%(program_name)s_%(process_num)02d
    command=php /var/www/html/project-name/artisan queue:work --sleep=3 --tries=3
    autostart=true
    autorestart=true
    user=ubuntu
    numprocs=8
    redirect_stderr=true
    stdout_logfile=/var/www/html/project-name/worker.log
    stopwaitsecs=3600
  4. We need to run cron jobs so that please open the cronjob file and enter the below line with your projrvt name.
  5. to open cronjob file please use the following command "crontab -e"
  6. * * * * * php /var/www/html/taxi artisan schedule:run >> /dev/null 2>&1

Translation Setup

we have modified the translation package controller file for some reasons. so we have placed the controller file in the server-app folder named "Controller.php". you have to copy the file using below command or do the thing manually.

  1. cp Controller.php vendor/barryvdh/laravel-translation-manager/src.
  2. For Mobile Translation keywords you need to enable the translation sheet api in google cloud console & get the api key from there & paste in to our .environment value below like this.
  3. GOOGLE_SHEET_KEY = AIzaGyBVE-WE-lwXhxWFHJthZ6FleF1WQ3NmGAV GOOGLE_SHEET_ID = AIzaGyBVE-WE-lwXhxWFHJthZ6FleF1WQ3NmGAV
  4. sample laraver-worker file
  5. [program:laravel-worker]
    process_name=%(program_name)s_%(process_num)02d
    command=php /var/www/html/project-name/artisan queue:work --sleep=3 --tries=3
    autostart=true
    autorestart=true
    user=ubuntu
    numprocs=8
    redirect_stderr=true
    stdout_logfile=/var/www/html/project-name/worker.log
    stopwaitsecs=3600
  6. We need to run cron jobs so that please open the cronjob file and enter the below line with your projrvt name.
  7. to open cronjob file please use the following command "crontab -e"
  8. * * * * * php /var/www/html/taxi artisan schedule:run >> /dev/null 2>&1

Introduction

taxi is a taxi ride hailing based system that provides services such as Transportation and Ride Sharing system. taxi provides client with all the much needed service like transportation, booking different kinds of vehicles, booking parameters and booking details. our application supports multiple currency and multiple timezone, so you can launch this application world wide. And taxi supports multilingual as well. you can also customise the localisation contents through translation option in our admin app.


Major Modules are


  1. Dashboard
  2. Service Location Management
  3. Geofencing & Pricing
  4. Admin,Driver & Users Management
  5. Trip Requests Management
  6. Promo Management
  7. Custom Notifications
  8. Cancellation & complaints

Dashboard

Dashboard which helps to manage your whole application there you can see how many users & drivers. trip overview & Earnings overview of the current year.

Responsive image

Service Location Management

Service location represents the area of your service. that is where the service is going to launch. you can restrict the users by setting the service lcoation. only the service available area's users could be used our application other users cannot use our application.

You can set unique currency & timzone for each service location. so that you can launch our application world wide.


please refer the following image to create a service location.


Responsive image

Geofencing & Pricing

Geofencing which helps to create a zone in service location. you can draw multiple zone as polygon on a map in each service location. only the polygon contains area's could be use our application, other area will resemble that is service not available at this location.

Here we are providing an Edit & zone map view options as well, by using these option you can see the drawn zone and also you can edit the coordinates for each zone at any time.


Please refer the following image to create a zone.


Responsive image Responsive image

Before Getting in to the Pricing we need to create a Vehicle types for the system. please refer the below image to create a vehicle types.

Responsive image Responsive image

Assign Type along with pricing

After createing the vehicle types & zone we need to assign the vehicle types for each zone. while assign the vehicle type to the particular zone you can also set some configurations like if you want to allow only cash trip in a particular zone you can choose payment types as only cash. you can set three options i.e `cash,card,wallet`.

Responsive image Responsive image

Geofencing View

Under Geofencing view there are two types of view we have developed these are one is God's Eye and another one is heat map.

God's Eye is help us to see how many drivers are available & busy, the driver markers could be updated in realtime using geofire.

Responsive image Responsive image

Admin,Driver & Users Management

In admin management menu you can create new admin users along with service location. and the super admin can create new super admin users too. And the each admin users can create new admin users with different privileges for the admin roles of our system.

By Using Set privileges option the admin users can set privileges of their admin roles. Please refer the below images.

set-privileges menu `Configurations->Roles & Permissions->Actions->Set privilege`

Responsive image

User Management

In this menu we can see the list of users who registered and using our our applications. we can edit the user's info and delete the user as well.

Driver Management

In this menu we can see the list of drivers who registered and using our our applications. we can edit the driver's info and delete the driver as well. There you can see the document view option in the list of drivers, this option is used to manage the driver's documents. Admin users can able to upload and remove the documents of the driver. And the admin can able to approve & decline the driver's document. we can give the comment while decline the driver's document. the decline comments will be listed in the mobile approval screen. Please refer the below images.

Responsive image

Manage Documents

Responsive image

Trip Requests Management

Here you can see the list of scheduled & ride now requests along with multiple actions and filters. By using View action you can see the detailed view of each request along with bill details if the request is completed. Refer the images below.

Requests List

Responsive image Responsive image

Promo Management

Here you can configure the promo code with expiry dates and other configurations like how manu users can be used & how many times the same user can use the same promo. please refer the following image. Admin users can able to edit or in active the promo code at any time.

Note: Maximum discount amount field is an optional. if you set the maximum discount amount then the promo would be act like an offer upto option. i.e you can configure the promo as 50% discount upto 200$ like this.

Responsive image

Custom Notifications

By using the custom notification option admin users can able to send the custom push notifications to the users & drivers as well. you can choose a single or multiple users at the same time. please refer an image below to send a notifications to the users & drivers.

Responsive image

Cancellation & complaints

By using cancellation menu admin user can configure the cancellation reasons for both users & drivers with arrival state. And also we can configure whether the reason could be compensate or free. if it is componsate the cancellation fee would be charged for the users & drivers as well.

Responsive image

Complaints Management

Here you can see the complaints list that is raised by the users & drivers from the mobile application. And we can configure the complaints titles at which category they want to rise thier complaints. Please refer an image below.


Reports

By using the reports menu admin users can download the travel,drivers & users report along with multiple filters.There you can see the different filters for each reports. Please refer an image below.

Responsive image

System Settings

By using configurations menu we can configure the total system configurations. There you can see the list of tabs the settings would be categorised like trip settings, installation settings, notification settings & General & Referal settings. Please refer an image below.

Responsive image

Introductions

In this article, we are going to set up the TYT App’s initial setup for real-time use cases.


Setup Instructions

  1. flutter version for this project is '3.10.6'
  2. Open your project File the Visual Studio Code which is used to create the project and also it is very powerful.
  3. and in terminal run command flutter pub get
  4. project structure is given in image below
  5. Responsive image

Change Base URL

  1. Change the BASE_URL Variable Presented in the Constants File.
  2. It just updates your server’s primary URL to access all types of API Services From the App to your Server. Like below
  3. Note : File Location : project/lib/functions/functions.dart
    String url = 'your base url here';

Change App Color

  1. just update the below parameter to change the app color
  2. Note : File Location : project/lib/styles/styles.dart
    Color buttonColor = const Color(0xffFCB13D);
    Color loaderColor = const Color(0xffFCB13D);

Change Website URL

  1. change website url in given files
  2. Note : File Location project/lib/pages/login/login.dart

    onTap: () {
    openBrowser(
    'your terms and condition url here');
    },
    child: Text(
    languages[choosenLanguage]['text_terms'],
    style: GoogleFonts.roboto(
    fontSize: media.width * sixteen,
    color: buttonColor),
    ),

    Note : File Location "project/lib/pages/login/login.dart"

    onTap: () {
    openBrowser(
    'your privacy policy url here');
    },
    child: Text(
    languages[choosenLanguage]['text_privacy'],
    style: GoogleFonts.roboto(
    fontSize: media.width * sixteen,
    color: buttonColor),
    ),
    Note : File Location "project/lib/pages/navigatorPages/about.dart"

    onTap: () {
    openBrowser(
    'your terms and conditions url here');
    },
    child: Text(
    languages[choosenLanguage]
    ['text_termsandconditions'],
    style: GoogleFonts.roboto(
    fontSize: media.width * sixteen,
    fontWeight: FontWeight.w600,
    color: textColor),
    ),


    Note : File Location "project/lib/pages/navigatorPages/about.dart"
    onTap: () {
    openBrowser(
    'your privacy policy url here');
    },
    child: Text(
    languages[choosenLanguage]['text_privacy'],
    style: GoogleFonts.roboto(
    fontSize: media.width * sixteen,
    fontWeight: FontWeight.w600,
    color: textColor),),
Note : File Location "project/lib/pages/navigatorPages/about.dart"

onTap: () {
openBrowser('your website main page url here');
},
child: Text(
languages[choosenLanguage]['text_about'],
style: GoogleFonts.roboto(
fontSize: media.width * sixteen,
fontWeight: FontWeight.w600,
color: textColor),),



Google Map & Cloud Configure

  1. Create & configure account for map using Google map & Cloud by following below documents.
  2. Google Cloud console link: https://developers.google.com/maps/documentation/android-sdk/cloud-setup
  3. firebase setup doc: https://firebase.google.com/docs/android/setup
  1. After created & enabled the billing from google cloud & map console
  2. add map api key change the map keys in given locations

    Note : File Location "project/android/app/src/main/AndroidManifest.xml"
    < meta-data android:name="com.google.android.geo.API_KEY"android:value="your maps api key here" /> Note : File Location "project/lib/functions/functions.dart"
    String mapkey = 'your map key here';
  3. We need to create nodes in firebase realtime database, please find the sample json database below or refer firebase setup.
  4. Sample Json: https://taxi-server.ondemandappz.com/firebase-database.json call_FB_OTP node is used to configure whether the firebase otp should used or dummy otp should use for our testing purpose

  5. Please make sure you have created the nodes mentioned below

  6. call_FB_OTP
    driver_android_version:1.0.7
    driver_ios_version:1.0.4
    user_android_version:1.0
    user_ios_version:1.0.3
  7. Update the rules part with below content
  8. { { "rules": { "drivers": { ".read": true, ".write":true, ".indexOn":["is_active","g","service_location_id","vehicle_type","l","ownerid"], }, "requests": { ".read": true, ".write": true, ".indexOn":["service_location_id"], }, "SOS": { ".read": true, ".write": true }, "call_FB_OTP": { ".read": true, ".write": true }, "driver_android_version": { ".read": true, ".write": true }, "driver_ios_version": { ".read": true, ".write": true }, "user_android_version": { ".read": true, ".write": true }, "user_ios_version": { ".read": true, ".write": true }, "request-meta": { ".read": true, ".write": true, ".indexOn":["driver_id","user_id"] }, "owners": { ".read": true, ".write": true, ".indexOn":["driver_id","user_id"] } } }

Change Package Name

  1. Download & Paste the google-services.json into the 'project/android/app' folder properly to make proper communication from your App which is a client to FireBase.
  2. Responsive image
  3. copy the package name from firebase and paste it in the following files
  4. Note : File Location "project/andrroid/app/src/main/AndroidManifest.xml"
    < manifest xmlns:android="http://schemas.android.com/apk/res/android" package="package name here" >

    Note : File Location "project/android/app/src/profile/AndroidManifest.xml"

    <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="package name here" > Note : File Location "project/android/app/src/debug/AndroidManifest.xml"

    <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="package name here" >

    Note : File Location "project/android/app/build.gradle"

    applicationId "package name here" Note : File Location "project/android/app/src/main/kotlin/../../../MainActivity.kt"

    add package name here

    package com.project.name
  5. change folder name
  6. if your package name is com.package.android then,

    project/android/app/src/main/kotlin/com/something/something/ to project/android/app/src/main/kotlin/com/package/android

Change Icons

  1. replace icons images in following folders in given name
    • project/assets/images/ - logo.png
    • project/android/app/src/main/res/mipmap-hdpi - ic_launcher.png (72x72)
    • project/android/app/src/main/res/mipmap-mdpi - ic_launcher.png (48x48)
    • project/android/app/src/main/res/mipmap-xhdpi - ic_launcher.png (96x96)
    • project/android/app/src/main/res/mipmap-xxhdpi - ic_launcher.png (144x144)
    • project/android/app/src/main/res/mipmap-xxxhdpi - ic_launcher.png (192x192)

Change Display Name

  1. change app display name in file,
  2. Note : File Location "project/android/app/src/main/AndroidManifest.xml"

    android:label="project name"
    project/lib/main.dart
    title: 'project name',


Change app version

Note : File Location "project/pubsec.yaml"

version: 1.0.2+3

Create release keys

create release keys by running command in terminal

note: change anyname with any specific name you like, keytool -genkey -v -keystore ~/[name].jks -keyalg RSA -keysize 2048 -validity 10000 -alias [your_alias_name]-storetype JKS
  • after running this command give the data asked in the terminal. after that it will save the jks file and display the location



  • Replace the jks key

    replace the jks key details in file,

    Note : File Location "project/android/key.properties as given below"

    storePassword=password you entered while creating jks file
    keyPassword=password you entered while creating jks file
    keyAlias=alias name you given in the command for creating jks file
    storeFile=jks file name with the location like ../../../jks



    Generate SHA-1

    Generate SHA-1 and SHA-256 keys from the project

    1. you will be able to get these keys in two ways these are
    2. in terminal go to folder 'project/android/' and run the command './gradlew signinReport' then you will get debug and release SHA-1 and SHA-256
    3. Run the below command in the terminal to get SHA keys
    4. Key tool -genkey -v -keystore release.keystore -alias [your_alias_name] -keyalg RSA -keysize 2048 -validity 10000

    5. Finally copy that debug and release keys and paste those in Firebase where

      Click Settings icon (presented right on project overview ) -> project settings -> Your App section -> SHA certificate fingerprints click add button and paste & Submit.


    Google Map Services Setup

    Enable below services in cloud console

    1. Places API - which helps to get address while typing keys from the app
    2. Maps SDK For Android
    3. Google Sheets API - For translation sheets
    4. Android Device Verification - For Identify the App name to append in OTP from Firebase
    5. Geolocation APIs like distance matrix, geocoding, geolocations, Maps JavaScript, Maps static.

    Generate APK

    1. to download apk file run "flutter build apk --release" in terminal from project location, and you will get apk file in folder - project/build/app/outputs/apk/release/app-release.apk

    Generate bundle file

    to download app bundle file run "flutter build appbundle --release" in terminal from project location, and you will get app bundle file in folder - project/build/app/outputs/bundle/release/app-release.aab


    Click Settings icon (presented right on project overview ) -> project settings -> Your App section -> SHA certificate fingerprints click add button and paste & Submit.


    Final Steps

    after uploading app in playstore, then you will get a sha1 key and sha256 key from playstore, add those keys in your project as

    Click Settings icon (presented right on project overview ) -> project settings -> Your App section -> SHA certificate fingerprints click add button and paste & Submit.


    Introduction

    In this article, we are going to set up the TYT App’s initial setup for real-time use cases.


    Note: Before ios setup, please complete all the server & firebase & code changes, map setup which is mentioned in android setup & server setup sections. flutter version for this project is '3.10.6'

    change some details in given files,

    Note : File Location : "project/ios/Runner/Runner.xcodeproj/project.pbxproj"
    PRODUCT_BUNDLE_IDENTIFIER = 'your bundle id here'; (change in 3 places in same file)
    Note : File Location : "project/ios/Runner/info.plist"
    <key >CFBundleDisplayName</key> <string>project name here</string>
  • Open your project File with the Xcode IDE which is used to create the project and also it is very powerful.
  • project file is in location,

    Note : File Location : "project/ios/runner.xcworkspace"

    change map api key in file, Note : File Location : project/ios/Runner/appDelegate.swift


    GMSServices.provideAPIKey("your map key here")

    1. Rename the project with your app name and bundle identifier
    2. in Xcode / Runner / General /

      Responsive image
    3. Create a bundle identifier for your app in developer account.
    4. create development and distribution certificates.
    5. kindly refer this url for reference - https://medium.com/mobile-devops-ci-cd-ct/steps-to-create-ios-developer-and-distribution-certificates-with-and-without-a-mac-8449b973ef9d

    6. Create provisioning profiles for both development and distribution.
    7. kindly refer this url for reference - https://clearbridgemobile.com/how-to-create-a-distribution-provisioning-profile-for-ios/

    8. Create APNS auth key for push notification.
    9. Register your bundle identifier in firebase project that you changed in xcode.
    10. Firebase -: setup phone number authentication, cloud messaging and firebase database.
    11. Download the googleservicePlist json from firebase.
    12. Now open the project.
    13. add googleservice-Info.plist in project/ios/Runner/ or from xcode right click Runner and click Add files to runner and choose googleserviceInfo.plist file as shown in image.
    14. Responsive image
    15. copy the reversed client id from googleserviceplist.json and paste it in url scheme in Xcode / Runner / Info / url types as shown in image

    16. Responsive image Responsive image
    17. replace App Icon in assets in the folder in followin size and names without alpha and transparent background
    18. project/ios/Runner/Assets.xcassets/AppIcon.appiconset/

      Icon-App-20x20@1x.png - (20x20) x1 size - 20x20
      Icon-App-20x20@2x.png - (20x20) x2 size - 40x40
      Icon-App-20x20@3x.png - (20x20) x3 size - 60x60
      Icon-App-29x29@1x.png - (29x29) x1 size - 29x29
      Icon-App-29x29@2x.png - (29x29) x2 size - 58x58
      Icon-App-29x29@3x.png - (29x29) x3 size - 87x87
      Icon-App-40x40@1x.png - (40x40) x1 size - 40x40
      Icon-App-40x40@2x.png - (40x40) x2 size - 80x80
      Icon-App-40x40@3x.png - (40x40) x3 size - 120x120
      Icon-App-60x60@2x.png - (60x60) x2 size - 120x120
      Icon-App-60x60@3x.png - (60x60) x3 size - 180x180
      Icon-App-76x76@1x.png - (76x76) x1 size - 76x76
      Icon-App-76x76@2x.png - (76x76) x2 size - 152x152
      Icon-App-83.5x83.5@2x.png - (83.5x83.5) x2 size - 167x167
      Icon-App-1024x1024@1x.png - (1024x1024) x1 size - 1024x1024
    19. in go to folder 'project/ios' and run command 'flutter build ios'
    20. to create archive file to upload run command 'flutter build ipa' from folder 'project/ios'.

    21. you will find archive file in folder project/build/ios/archive/Runner.xcarchive


    Push Notifications

    For ios create keys from your developer account, with enabling Apple Push Notification service (APNs) and download it.

    refer this url for reference - https://medium.com/@bulkpushs/easy-step-for-creating-apple-push-notification-authentication-key-ffe57344a143 (kindly dont forgot to enable push notification while creating key)

    Then in Firebase -> Project overview -> project settings -> cloud messaging ->
  • Choose your app from Apple app configuration,
  • Upload APNs key with Key id and Apple Team id,

  • Then the push notification will work.


    Translations

    We are using google translation api to translation the key words from english to particular language. in this article we are going to see how we are using google api to translate the keywords.


    1. Find the translation.xlsx file from main-file folder & import into google sheet,
    2. If you want to add new language you can add new column as you prefered language short code

      Example of creating french language

      Create a new column named "fr" . & under fr use the below formula to translate all the keywords.

      Translation Formula

      =GOOGLETRANSLATE(B2,"en","fr")

      In this formula B2 is the row number of english word. Refer The below url to create short code for languages https://developers.google.com/admin-sdk/directory/v1/languages
    3. After Added & Updated all the data. you need to setup your server. & you can call our translation api which is created in our server app. so before trying to build an app from ios/android, please complete the server app setup first.
    4. After setup the server app, You can call the translation api which is "you-server-base-url/api/v1/translation/get" You will get the json response from this api. which is updated json for the translation. copy the json and paste in project/lib/translations/translation.dart
    5. Map <String, dynamic> languages = { "en": {

    Changelog

    Version 1.0 (5 May, 2022)

    Initial Release

    Version 1.1 (24 October, 2022)

    - Minor issues fixed

    - Notifications Panel feature updated in mobile app

    - Profile pic mandatory removed from signup flow

    Version 1.2 (11 November, 2022)

    - Notification count issue fixed

    - Different icon for vehicle type on map updated

    - Minor bug fixes on admin & mobile apps

    Version 2.5 (17 February, 2023)

    - Reduced Google Places Api Calls

    - Myroute Booking feature added

    -Minor Bug Fixes

    Version 2.6 (07 April, 2023)

    - excode verion upgrades from 14.0 to 14.3

    - Wake lock feature updated in android version

    - dispatch algorithm updated by adding setting param i.e"all drivers & one by one"

    Version 2.7 (20 May, 2023)

    - Ios Stuck Issue Fixed

    - Minimize Reload Issue fixed

    - Safetynet api to Playintegrity updated for authentication OTP

    - Minor bug fixes done for both frontend & backend

    Version 2.8 (12 July, 2023)

    - Dark theme feature updated

    - Email OTP feature updated

    - Multiple Vehicle type for driver feature updated

    Version 2.9 (26 July, 2023)

    - Flutter Version Upgraded to 3.10.6

    - Minor Bug Fixes on both server side & flutter side apps

    Version 2.10 (01 August, 2023)

    - CC-Avenue Payment Gateway Implemented

    Version 2.10 (01 November, 2023)

    - Mercadepago payment gateway added

    - Share ride details feature updated

    - Minor bug fixes done for both server side & mobile apps

    Version 2.11 (20 November, 2023)

    - Multiple stop feature added

    - Minor bug fixes done

    Version 3.0 (01 January, 2023)

    - UI changes done for both users & drivers app

    - Waze map button added for navigation

    - Banner feature added for users application

    - Custom make & model input added for driver signup

    - Minor bug fixes done for both server & mobile apps

    Version 3.1 (16 February, 2023)

    - Multiple Rides feature added

    - Bug fixes done in the mobile app & server app