Inspiration

India is notorious for its cell connectivity. We still have a massive 2G subscriber base in the country. In fact, roughly 50% of Airtel’s users are still on 2G. We can empower people for making offline payments for travel just like cash using our platform.

Japan recently tried paying everyone in Japan to travel during the pandemic. We want to do a similar test run on Indian soil, but add our own spin to it. It'd be a Post COVID-19 stimulus offer from government which will encourage pubic and employees to travel anywhere in India using government modes of transport.

We built a prototype for bus transports throughout India which offers last mile connectivity (offline-offline) and blockchain, to solve

  • Bus fare with exact change issues.
  • Digital history of travel expenses for employees to claim later.
  • To buy tickets in an over crowded bus.

What it does

  • Enabling Offline-Offline Payments for traveling anywhere in India for the masses.
  • Completely contactless and cashless ticketing system.
  • Offering Last mile connectivity for travel payments.
  • Employees able to claim their travel expenses from their employers.

How we built it

Android:

  • Offline-offline payments are supported using Google Nearby API
  • The Android app was built using 100% Kotlin, while using Google's SOTA set of libraries like Jetpack. For lifecycle management and background DB syncing. Used Room ORM for Android to store the transaction.
  • Ticket details are hashed using SHA-256 and persisted in mobile device until tickets are synced.

Backend:

  • It's built using Postgres for storing user data.
  • We used JWT token based authentication for authentication, authorization and fraudulent prevention.
  • APIs are built using Django REST framework, Django ORM and other 3rd party libraries.
  • We have two microservices deployed on AWS.
  • The blockchain microservice uses Redis, a key-value store, for securely storing wallet credentials. It uses Fernet. Fernet is basically AES128 in CBC mode with a SHA256 HMAC message authentication code.

Blockchain:

  • It proudly runs on top of Stellar.

  • It is based on the new Rupee token we'd be issuing as an asset on stellar (hypothetically, it is still on Horizon's testnet)

  • It is called INRx, a rupee token.

  • Public and Employees onboarding the platform get stimulus of 2,500 INRx.

  • All the transactions (deposit, buy ticket) at the Android app level are mostly Payment Operations at blockchain level.

Stellar Blockchain features we are using:

  • Fee bumps, which allow an account to cover another account's transaction fees. We use it because everyone likes transaction-fee free transactions. xD.

  • Sponsored reserves, which allow an account to cover lumen reserves for another account. We use it for creating new accounts with a small lumen minimum balance from sponsored account.

  • Claimable balances, which allow an account to create a balance of any asset, and to designate another account to claim it. We use it for employees claiming their travel expenses from their employer in a hassle-free fashion. Employee transactions create ClaimableBalance in Employer's account at the time of registered payment from Employee to Government Staff. Later the Employee can claim their expenses anytime.

System Architecture

image.png

Challenges we ran into

  • Android:

    • Nearby API state management, between phones (Passenger and Conductor).
    • Syncing tickets with DataBase without inconsistencies.
  • Backend:

    • Integration between 2 backend micro services.
    • Syncing tickets with DataBase without inconsistencies.
  • Blockchain:

    • two versions of docs. new and old
    • py-stellar-base doesn't directly support extracting balance_id for a CreateClaimableBalance Transaction. Had to patiently re-read the docs to get more clarity. finally fixed it though.
  • Others:

    • Remote hackathon for an offline-offline app.
    • demo video production skills.

Accomplishments that we're proud of

  • That we're actually solving a real world problems for our own people which has potential to replace paper cash.

  • First blockchain hackathon for us.

What we learned

  • Android:

    • Nearby API
    • Offline first mobile architecture
  • Backend:

    • First ever deployment on AWS
  • Blockchain:

    • Stellar is really fast for a blockchain.

What's next for InTrip

Even though demo video shows only for Indian Bus scenario, it potentially be used for every form of Government mode of transports like:

  • Trams for Kolkata people.
  • Ferry for Alappuzha people.
  • Metro Trains for Delhi people.
  • SubUrban Trains for Chennai people.
  • KSRTC Bus for Bengaluru people.
  • Mofussil Trains for Indian people in general.

these are just few examples.

Another thing is like acting like Google / Gojek for multimodal mode of transportation all over India. Enter destination it'll show what kind of paths you can take to go cashless-contactless-and-with-swag.

+ 1 more
Share this project:

Updates