Skip to content

πŸš• A full-stack Uber Clone mobile app built with React Native, Expo, and TypeScript. It features real-time maps, Clerk authentication, Stripe payments, Zustand for state management, and NeonDB for backend data. Built by following the JavaScript Mastery course to strengthen mobile and full-stack development skills.

Notifications You must be signed in to change notification settings

WilliamRossCrane/uber-clone

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

85 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸš• Full Stack Uber Clone

Project Status Two errors need amending and then initial development will finalise.

This project is a comprehensive Uber Clone mobile app built during the JavaScript Mastery course. It uses the latest features of React Native, Expo, TypeScript, and a lightning-fast edge-ready Postgres database (NeonDB).

Designed and taught by Adrian Hajdin of JavaScript Mastery, this build demonstrates how to architect a scalable, responsive, and production-grade application with advanced features like authentication, geolocation, payments, and state management.

React Native Expo Stripe PostgreSQL Google Maps TailwindCSS TypeScript Clerk Zustand


πŸ› Bugs

  • Splash Screen Issues
    The splash screen may not render correctly on certain devices or emulators. This is currently being investigated.

  • API Parsing Errors
    Some API calls may fail due to misconfiguration in the environment or server settings (I believe), resulting in data parsing errors. Placeholder data is currently used, but the underlying functionality is implemented and requires final testing after configuration adjustments.


βš™οΈ Tech Stack

  • React Native (Expo) – Frontend mobile development
  • TypeScript – Typed JavaScript for better maintainability
  • NeonDB (PostgreSQL) – Edge-ready serverless relational database
  • Stripe – Payment integration
  • Tailwind CSS – Utility-first styling
  • Zustand – Lightweight state management
  • Google Maps API – Location services and routing
  • Google Places API – Location autocomplete
  • Clerk – Authentication and user management

πŸ”‹ Features

πŸ‘‰ Onboarding Flow
πŸ‘‰ Email & Password Authentication with Verification
πŸ‘‰ OAuth Using Google
πŸ‘‰ Home Screen with Live Location & Google Map
πŸ‘‰ Recent Rides Overview
πŸ‘‰ Find Rides by Location
πŸ‘‰ Select Rides from Nearby Cars on Map
πŸ‘‰ Confirm Ride with Time and Price Details
πŸ‘‰ Pay for Ride Using Stripe
πŸ‘‰ Ride Created After Successful Payment
πŸ‘‰ User Profile Management
πŸ‘‰ View Ride History


🀸 Quick Start

βœ… Prerequisites

Make sure you have the following installed:

πŸ“¦ Install Dependencies

npm install

πŸ” Set Up Environment Variables

Create a .env file in the root of your project and add:

  • EXPO_PUBLIC_CLERK_PUBLISHABLE_KEY=
  • EXPO_PUBLIC_PLACES_API_KEY=
  • EXPO_PUBLIC_DIRECTIONS_API_KEY=
  • DATABASE_URL=
  • EXPO_PUBLIC_SERVER_URL=https://uber.dev/
  • EXPO_PUBLIC_GEOAPIFY_API_KEY=
  • EXPO_PUBLIC_STRIPE_PUBLISHABLE_KEY=
  • STRIPE_SECRET_KEY=

Start the App

  • npx expo start

πŸ“Ί Course Link

This project was built using the JavaScript Mastery Uber Clone Course.
Watch the full tutorial on YouTube:
πŸ”— Build a Full Stack Uber Clone App (YouTube)


πŸ“„ License

This project is licensed under the MIT License.


⭐ Support

If you found this project helpful, consider giving it a ⭐ on GitHub and joining the JSMastery community:

About

πŸš• A full-stack Uber Clone mobile app built with React Native, Expo, and TypeScript. It features real-time maps, Clerk authentication, Stripe payments, Zustand for state management, and NeonDB for backend data. Built by following the JavaScript Mastery course to strengthen mobile and full-stack development skills.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published