Ryde is a feature-rich ride-hailing app built with modern web and mobile technologies. Designed to provide a seamless user experience, Ryde integrates real-time location tracking, secure payments, and responsive design to deliver a platform optimized for both Android and iOS devices.
- Features
- Technologies Used
- Important Links
- File Structure
- Getting Started
- Configuration
- Acknowledgements
- License
- Onboarding Flow: Seamless user registration and setup process.
- Email Password Authentication with Verification: Secure login with email verification.
- OAuth Using Google: Easy login with Google credentials.
- 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.
- Create Rides After Successful Payment: Book a ride after confirming payment.
- Pay for Ride Using Stripe: Secure payments via multiple methods like cards.
- Profile Management: Manage account details in the profile screen.
- Ride History: Review all rides booked so far.
- Responsive on Android and iOS: Optimized for both Android and iOS devices.
- Eslint and Prettier Setup
- Expo NativeWind Setup
- TypeScript Support for NativeWind
- Serverless NeonDB
- Clerk Auth
- Clerk Expo Quickstart
- Clerk Expo OAuth
- Geoapify Map
- Stripe React Native SDK
- Stripe
.
├── app
│ ├── (api)
│ │ ├── driver+api.ts
│ │ ├── ride
│ │ │ ├── create+api.ts
│ │ │ └── [id]+api.ts
│ │ ├── (stripe)
│ │ │ ├── create+api.ts
│ │ │ └── pay+api.ts
│ │ └── user+api.ts
│ ├── (auth)
│ │ ├── _layout.tsx
│ │ ├── sign-in.tsx
│ │ ├── sign-up.tsx
│ │ └── welcome.tsx
│ ├── index.tsx
│ ├── _layout.tsx
│ ├── +not-found.tsx
│ └── (root)
│ ├── book-ride.tsx
│ ├── confirm-ride.tsx
│ ├── find-ride.tsx
│ ├── _layout.tsx
│ └── (tabs)
│ ├── chat.tsx
│ ├── home.tsx
│ ├── _layout.tsx
│ ├── profile.tsx
│ └── rides.tsx
├── assets
│ ├── fonts
│ ├── icons
│ └── images
├── components
├── constants
├── lib
├── store
├── scripts
├── types
├── babel.config.js
├── package.json
├── .env
├── tailwind.config.js
└── tsconfig.json
-
Clone the repository:
git clone https://github.com/iamfitsum/ryde.git
-
Navigate to the project directory:
cd ryde
-
Install dependencies:
npm install
-
Start the Expo development server:
expo start
-
Run the app on your device or simulator:
- Press
a
for Android - Press
i
for iOS
- Press
- Create a
.env
file in the project root and add the following environment variables:EXPO_PUBLIC_CLERK_PUBLISHABLE_KEY= EXPO_PUBLIC_PLACES_API_KEY= EXPO_PUBLIC_DIRECTIONS_API_KEY= DATABASE_URL= EXPO_PUBLIC_SERVER_URL=https://ryde.com/ EXPO_PUBLIC_GEOAPIFY_API_KEY= EXPO_PUBLIC_STRIPE_PUBLISHABLE_KEY= STRIPE_SECRET_KEY=
This project is licensed under the MIT License. See the LICENSE file for details.