Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/trivedijeet/expo-uber-clone

A full-stack Uber clone built with React Native, showcasing real-time location tracking, seamless booking, and secure payments.
https://github.com/trivedijeet/expo-uber-clone

clerk expo nativewind neon postgresql react-native reactjs tailwindcss

Last synced: about 2 months ago
JSON representation

A full-stack Uber clone built with React Native, showcasing real-time location tracking, seamless booking, and secure payments.

Awesome Lists containing this project

README

        



reactnative
postgresql
expo
stripe

## Table of Contents

1. [Introduction](#introduction)
2. [Tech Stack](#tech-stack)
3. [Features](#features)
4. [Quick Start](#quick-start)
6. [Links](#links)
7. [Assets](#assets)

## Introduction

Built with React Native, Google Maps for rendering maps with directions, stripe for
handling payments, serverless Postgres for managing databases, and styled with TailwindCSS.

## Tech Stack

- React Native
- Expo
- Stripe
- PostgreSQL
- Google Maps
- zustand
- Clerk
- Tailwind CSS

## Features

- **Onboarding Flow**: Seamless user registration and setup process.

- **Email Password Authentication with Verification**: Secure login with email verification.

- **oAuth Using Google**: Easy login using Google credentials.

- **Authorization**: Secure access control for different user roles.

- **Home Screen with Live Location & Google Map**: Real-time location tracking with markers on a map.

- **Recent Rides**: View a list of recent rides at a glance.

- **Google Places Autocomplete**: Search any place on Earth with autocomplete suggestions.

- **Find Rides**: Search for rides by entering 'From' and 'To' locations.

- **Select Rides from Map**: Choose available cars near your location from the map.

- **Confirm Ride with Detailed Information**: View complete ride details, including time and fare price.

- **Pay for Ride Using Stripe**: Make payments using multiple methods like cards and others.

- **Create Rides After Successful Payment**: Book a ride after confirming payment.

- **Profile**: Manage account details in the profile screen.

- **History**: Review all rides booked so far.

- **Responsive on Android and iOS**: Optimized for both Android and iOS devices.

and many more, including code architecture and reusability

## Quick Start

Follow these steps to set up the project locally on your machine.

**Prerequisites**

Make sure you have the following installed on your machine:

- [Git](https://git-scm.com/)
- [Node.js](https://nodejs.org/en)
- [npm](https://www.npmjs.com/) (Node Package Manager)

**Cloning the Repository**

```bash
git clone https://github.com/TrivediJeet/expo-uber-clone.git
cd expo-uber-clone
```

**Installation**

Install the project dependencies using npm:

```bash
npm install
```

**Set Up Environment Variables**

Create a new file named `.env` in the root of your project and add the following content:

```env
EXPO_PUBLIC_CLERK_PUBLISHABLE_KEY=

EXPO_PUBLIC_PLACES_API_KEY=
EXPO_PUBLIC_DIRECTIONS_API_KEY=

DATABASE_URL=

EXPO_PUBLIC_SERVER_URL=https://expo-uber-clone.dev/

EXPO_PUBLIC_GEOAPIFY_API_KEY=

EXPO_PUBLIC_STRIPE_PUBLISHABLE_KEY=
STRIPE_SECRET_KEY=
```

Replace the placeholder values with your actual Clerk, Stripe, NeonDB, Google Maps, andgeoapify credentials. You can
obtain these credentials by signing up on
the [Clerk](https://clerk.com/), [Stripe](https://stripe.com/in), [NeonDB](https://neon.tech/), [Google Maps](https://console.cloud.google.com/)
and [geoapify](https://www.geoapify.com/) websites respectively.

**Running the Project**

```bash
npx expo start
```

Download the [Expo Go](https://expo.dev/go) app and Scan the QR code on your respective device to view the project.

## Links

- Expo NativeWind Setup
- TypeScript Support for
NativeWind

- Eslint and Prettier Setup
- Serverless NeonDB
- Clerk Auth
- Clerk Expo Quickstart
- Clerk Expo OAuth
- Geoapify Map
-
Stripe React Native SDK

- Stripe

## Assets

Assets used in the project can be
found [here](https://drive.google.com/file/d/1ekttG-aCyy4g0SKqLSrEn_uHf2MJMRJ4/view?usp=sharing)