Updated Jul 11, 2025

Step-by-Step Guide: Building an Uber Clone with Adalo

Table of Contents
Text Link

Step-by-Step Guide: Building an Uber Clone with Adalo

This comprehensive tutorial will walk you through building a functional ride-sharing app using Adalo's no-code platform. While Adalo has some limitations for real-time features, you'll learn how to create a working app with rider/driver matching, booking flow, payments, and ratings.

Prerequisites and Initial Setup

Step 1: Create Your Adalo Account and App

  1. Go to Adalo.com and sign up
  2. Click "Create New App"
  3. Choose "Mobile App" (recommended for ride-sharing)
  4. Name your app (e.g., "RideShare")
  5. Select "Start from Scratch" (no ride-sharing templates available)

Step 2: Set Your App Theme

  1. Choose a primary color (e.g., black for professional look)
  2. Select a secondary color (e.g., green for CTAs)
  3. Pick a clean, modern font
  4. Click "Continue" to enter the editor

Building the Database Structure

Step 3: Enhance the Users Collection

  1. Click the Database icon in left sidebar
  2. Click on "Users" collection (already exists)
  3. Add these properties (click "+ Add Property" for each):
    • Phone Number (Text)
    • Profile Image (Image)
    • User Type (Text) - Values: "Rider", "Driver"
    • Driver Status (Text) - Values: "Available", "Busy", "Offline"
    • Current Location (Location)
    • Average Rating (Number)
    • Total Ratings (Number)
    • Vehicle Make (Text)
    • Vehicle Model (Text)
    • Vehicle Color (Text)
    • License Plate (Text)
    • Driver License (Text)

Learn more about databases

Step 4: Create the Trips Collection

  1. Click "+ Add Collection"
  2. Name it "Trips"
  3. Add these properties:
    • Trip ID (Text - set to "Auto-Generated")
    • Pickup Location (Location)
    • Pickup Address (Text)
    • Destination (Location)
    • Destination Address (Text)
    • Status (Text) - Values: "Pending", "Accepted", "Arriving", "In Progress", "Completed", "Cancelled"
    • Fare Amount (Number)
    • Distance (Number)
    • Duration (Number)
    • Car Type (Text) - Values: "Economy", "Comfort", "XL"
    • Created Date (Date & Time - Automatic)
    • Completed Date (Date & Time)

Step 5: Create the Payments Collection

  1. Click "+ Add Collection"
  2. Name it "Payments"
  3. Add properties:
    • Payment ID (Text - Auto-Generated)
    • Amount (Number)
    • Payment Method (Text)
    • Card Last 4 (Text)
    • Status (Text) - Values: "Pending", "Completed", "Failed"
    • Stripe Payment ID (Text)
    • Created Date (Date & Time - Automatic)

Step 6: Create the Ratings Collection

  1. Click "+ Add Collection"
  2. Name it "Ratings"
  3. Add properties:
    • Rating Value (Number)
    • Comment (Text - Multiline)
    • Created Date (Date & Time - Automatic)

Step 7: Set Up Database Relationships

  1. In Trips collection:


    • Add relationship to Users: "Rider" (A User can have many Trips as Rider)
    • Add relationship to Users: "Driver" (A User can have many Trips as Driver)
    • Add relationship to Payments: One-to-One
  2. In Ratings collection:


    • Add relationship to Users: "Rater" (User giving rating)
    • Add relationship to Users: "Rated" (User receiving rating)
    • Add relationship to Trips: Many-to-One

Installing Required Components

Step 8: Install Maps Component

  1. Go to Adalo Marketplace
  2. Search for "Maps"
  3. Click "Install" on the Maps component
  4. You'll need a Google Maps API key (Get one here)

Step 9: Install Payment Component

  1. In Marketplace, search "Stripe"
  2. Install "Stripe Payment" component
  3. You'll need Stripe API keys later

Step 10: Install Rating Component

  1. Search for "Star Rating" in Marketplace
  2. Click "Install"
  3. Return to your app editor

Creating User Authentication

Step 11: Build the Welcome Screen

  1. On the default screen, rename it to "Welcome"
  2. Add an Image for your logo
  3. Add Text: "Get rides at the tap of a button"
  4. Add two Buttons:
    • "Sign Up" → Link to new screen "Sign Up"
    • "Login" → Link to new screen "Login"

Step 12: Create Sign Up Screen

  1. Add new screen "Sign Up"
  2. Add Form component:
    • Connect to Users collection
    • Include fields: Email, Password, Full Name, Phone Number
  3. Add Dropdown for User Type:
    • Options: "I'm a Rider", "I'm a Driver"
    • This will set the User Type property
  4. Add conditional actions on submit:
    • If User Type = "Driver" → Link to "Driver Info" screen
    • If User Type = "Rider" → Link to "Rider Home" screen

Step 13: Create Driver Information Screen

  1. Add new screen "Driver Info"
  2. Add Form to update Logged In User:
    • Vehicle Make (Text Input)
    • Vehicle Model (Text Input)
    • Vehicle Color (Dropdown)
    • License Plate (Text Input)
    • Driver License (Text Input)
    • Profile Image (Image Picker)
  3. Submit button → Link to "Driver Home"

Building the Rider Interface

Step 14: Create Rider Home Screen

  1. Add new screen "Rider Home"
  2. Install and add Maps component:
    • Set to show Current User Location
    • Height: 60% of screen
  3. Below map, add booking section:
    • Text: "Where to?"
    • Button: "Enter Destination" → Link to "Book Ride" screen

Step 15: Build the Book Ride Screen

  1. Add new screen "Book Ride"
  2. Add Form component connected to Trips:
    • Location Input for Pickup (default to current location)
    • Location Input for Destination
    • Dropdown for Car Type (Economy, Comfort, XL)
  3. Add fare estimate section:
    • Text: "Estimated Fare"
    • Text with formula: Base fare ($5) + (Distance * $2)
    • Note: Real distance calculation requires external API

Step 16: Create Finding Driver Screen

  1. Add new screen "Finding Driver"
  2. Add loading animation or spinner
  3. Add Text: "Finding your driver..."
  4. Add Button: "Cancel" → Update trip status to "Cancelled"
  5. Set up automatic navigation:
    • Add countdown timer (60 seconds)
    • If no driver accepts → Show "No drivers available"

Step 17: Build Driver Match Screen

  1. Add new screen "Driver Matched"
  2. Add driver info section:
    • Image: Current Trip → Driver → Profile Image
    • Text: Current Trip → Driver → Full Name
    • Text: Current Trip → Driver → Average Rating
    • Text: Vehicle details
  3. Add Map showing:
    • Driver location
    • Pickup location
    • Route between them
  4. Add action buttons:
    • Button: "Call Driver" → tel:[Driver Phone]
    • Button: "Cancel Ride" → Update status + penalty

Step 18: Create Trip In Progress Screen

  1. Add new screen "Trip Active"
  2. Add Map component showing:
    • Current location
    • Destination
    • Route
  3. Add trip info bar:
    • Driver name and photo
    • Estimated arrival time
    • Fare amount
  4. Status updates section

Building the Driver Interface

Step 19: Create Driver Home Screen

  1. Add new screen "Driver Home"
  2. Add Toggle component:
    • Label: "Go Online"
    • Action: Update Logged In User → Driver Status
    • Online = "Available", Offline = "Offline"
  3. Add Map showing driver's current location
  4. Add earnings summary:
    • Today's earnings (sum of trips where date = today)
    • This week's earnings

Step 20: Build Ride Request Screen

  1. Add new screen "Ride Request"
  2. Show when new trip with Status = "Pending" exists
  3. Display ride details:
    • Map with pickup and destination
    • Text: Estimated fare
    • Text: Distance and duration
    • Text: Rider name
  4. Add response buttons:
    • Button: "Accept" → Update Trip (Driver = Logged In User, Status = "Accepted")
    • Button: "Decline" → Navigate back

Step 21: Create Driver Navigation Screen

  1. Add new screen "Driver Navigation"
  2. Add Map component
  3. Add Button: "Open in Maps"
    • Link: https://maps.google.com/?q=[Pickup Latitude],[Pickup Longitude]
  4. Add status buttons:
    • "I've Arrived" → Update Status to "Arriving"
    • "Start Trip" → Update Status to "In Progress"
    • "Complete Trip" → Update Status to "Completed"

Implementing Payments

Step 22: Set Up Stripe Payment

  1. On trip completion, navigate to "Payment" screen
  2. Add Stripe Payment component:
    • Amount: Current Trip → Fare Amount
    • Save payment method for future use
  3. Add payment form:
    • Card number
    • Expiry
    • CVC
    • Billing zip
  4. On successful payment:
    • Create Payment record
    • Update Trip payment status
    • Navigate to Rating screen

Step 23: Create Saved Cards Screen

  1. Add "Payment Methods" screen
  2. Add List of user's saved cards:
    • Show last 4 digits
    • Card type
    • Default indicator
  3. Add "Add New Card" button

Building the Rating System

Step 24: Create Rating Screen

  1. Add new screen "Rate Your Trip"
  2. Add trip summary:
    • Driver/Rider photo and name
    • Trip distance and fare
  3. Add Star Rating component:
    • Connected to Ratings collection
    • Set Rated User based on logged in user type
  4. Add Text Input for comments (optional)
  5. Submit → Create Rating → Update user's average

Step 25: Calculate Average Ratings

  1. Create custom action on rating submission:
    • Count total ratings for user
    • Sum all rating values
    • Update Average Rating: Sum / Count
    • Update Total Ratings count

Setting Up Notifications

Step 26: Configure Push Notifications

  1. In Actions, use "Request Notification Permission"
  2. For new ride requests:
    • Filter available drivers within radius
    • Send notification: "New ride request nearby!"
  3. For status updates:
    • Driver accepted: "Your driver is on the way"
    • Driver arrived: "Your driver has arrived"
    • Trip complete: "Rate your trip"

Learn about notifications

Creating Additional Features

Step 27: Build Trip History

  1. Add "My Trips" screen
  2. Add List of Trips:
    • Filter: Rider = Logged In User OR Driver = Logged In User
    • Sort by: Created Date (Newest First)
  3. Show for each trip:
    • Date and time
    • Pickup → Destination
    • Fare amount
    • Status

Step 28: Add Driver Earnings Dashboard

  1. Create "Earnings" screen for drivers
  2. Add date range selector
  3. Display:
    • Total trips
    • Total earnings
    • Average rating
    • List of trips with earnings

Step 29: Implement Surge Pricing

  1. Add "Surge Multiplier" property to Trips
  2. Create logic based on:
    • Time of day
    • Number of pending requests
    • Available drivers
  3. Update fare calculation formula

Step 30: Create Admin Dashboard

  1. Add admin user type
  2. Build screens for:
    • User management
    • Trip monitoring
    • Payment reconciliation
    • Report generation

Working with Limitations

Step 31: Handle Real-Time Updates

Since Adalo doesn't support true real-time:

  1. Use Countdown Timer components to refresh data
  2. Set refresh intervals (e.g., every 5 seconds)
  3. Update map markers on each refresh
  4. Use push notifications for major updates

Step 32: Implement Location Workarounds

  1. For background tracking (not supported):
    • Update location only when app is open
    • Use "last known location" for estimates
  2. For precise GPS:

Testing Your App

Step 33: Add Test Data

  1. Create test users:
    • 3-4 riders
    • 5-6 drivers with vehicles
  2. Add sample trips in various statuses
  3. Test payment flows with Stripe test cards

Step 34: Test Core Flows

  1. Rider booking flow
  2. Driver acceptance flow
  3. Trip completion and payment
  4. Rating submission
  5. Trip history viewing

Step 35: Preview and Debug

  1. Use Adalo previewer for desktop testing
  2. Download Adalo app for mobile testing
  3. Check all conditional logic
  4. Verify calculations work correctly

Publishing and Beyond

Step 36: Prepare for Launch

  1. Set up production API keys (Stripe, Google Maps)
  2. Configure push notification certificates
  3. Add privacy policy and terms
  4. Set up customer support flow

Step 37: Explore Advanced Features

Consider Barrett Nash's delivery app course for:

  • Advanced location features
  • Optimization techniques
  • Scaling strategies

Resources for Continued Learning

Remember: This Uber clone will have limitations compared to the native Uber app, particularly in real-time tracking and background location updates. However, it's perfect for validating your ride-sharing concept or serving smaller communities with basic transportation needs.

Start Building With An App Template
Build your app fast with one of our pre-made app templates
Try it now
Read This Next

Looking For More?

Ready to Get Started on Adalo?