GithubHelp home page GithubHelp logo

lift's Introduction

Lift

Lift is designed as an online taxi booking app which have all the necessary features of a cab booking app. Design and functionalities are mostly inspired from Uber. Provides REST API endpoints to build a web app or a mobile app. The two main parts of Lift are the user who can book a trip from their location to a destination and the driver.

Lift is a study project. The main objective of building this project was to learn how to build real world working applications using Go integrated with other technologies and tools.

API Reference

The complete API Documentation can be found here

Features

  • In app wallet for payments
  • Admin can create discount coupons for users
  • Cross platform

Technologies and tools used

Server: Go

HTTP Routing: Gorilla mux

Primary database: PostgreSQL

Message broker & Temporary data store: Redis

Authentication: JWT

Payment gateway: Razorpay

Maps: Distance Matrix API

Container: Docker

Run Locally

Clone the project

  git clone https://github.com/shyamvlmna/lift

Go to the api directory

  cd api

Create mod file

  go mod init lift

Add module requirements and sums

  go mod tidy

Start the server

  go run main.go

App will listen to localhost:8080

To Run in Docker

Add module requirements and sums

Run in detached mode

  docker compose up -d --build

App will listen to localhost:8080

Environment Variables

To run this project, you will need to add the following environment variables to your .env file

DB_NAME DB_PASSWORD DB_USER DB_TYPE DB_HOST DB_PORT DB_VOLUME REDIS_HOST REDIS_PORT JWT_SECRET_KEY RAZORPAYPKEY RAZORPAYSECRET MAPSKEY

Workflow

  • User can book a trip from their location to a destination
  • User need to confirm the created trip which will have trip fare, distance, eta
  • User can select payment options between in app wallet or cash
  • A verification code will generate for the user to match with the driver to start the trip
  • Only verified and approved drivers can accept/reject trips
  • Driver will get the user location when accepting the trip
  • Driver need to verify the trip using the code from user to start the trip
  • Trip fare will deducted from user wallet
  • A commission amount will be deducted from driver reward and will credited to the admin wallet
  • Trip trip reward will credited to driver wallet after commission amount
  • Drivers can request payout to debit money from wallet to their bank account
  • Users can add money to the wallet using Razorpay Payment Gateway

Feedback

If you have any feedback, please reach out at [email protected]

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.