- Project Overview
- Key Features
- Tech Stack
- Getting Started
- Application Architecture
- Screenshots & Demonstrations
- Challenges & Solutions
- Future Improvements
- License
Cabify is a feature-rich, application designed to deliver a seamless and dynamic user experience similar to leading ride-hailing platforms. Built with modern technologies, Cabify allows users to book rides, track locations, and engage with a real-time map interface. The app offers secure user authentication, payment integration, and responsive design, making it scalable and user-friendly.
- Dynamic Ride Booking: Book and manage rides in real-time 🚗.
- Onboarding & Authentication: Smooth onboarding screens and secure authentication via email and Google sign-in with Clerk 🔒.
- Interactive Map Integration: Real-time GPS location and nearby drivers shown using Google Maps and Places API 🗺️.
- Ride History & Profile Management: View past rides and manage user profile data seamlessly 📝.
- Stripe Payment Integration: Enable smooth and secure ride payments 💳.
- Custom Navigation: Enhanced navigation with bottom sheets, modals, and multi-tab screens 🧭.
- Frameworks & Libraries: React Native, Expo
- Backend & Realtime Services: Neon Postgres, Expo API Routes
- Authentication: Clerk
- State Management: Zustand
- UI & Styling: NativeWind, Tailwind CSS
- Map Integration: Google Maps
- Payments: Stripe
- Code Quality & Development: ESLint, Prettier
To get started with Cabify locally:
- Node.js and npm
- Expo CLI installed
- Clone the repository:
git clone https://github.com/yourusername/cabify.git cd cabify
- Install dependencies:
npm install
- Configure environment variables:
- Create a
.env
file in the root directory. - Add your API keys for Clerk, Google Maps, Neon Postgres, etc.
- Create a
- Run the development server:
npm run start
- Use Expo Go (or a simulator) to scan the QR code and launch the app 📱.
- Driver Locations: Displays nearby drivers using real-time data.
- Ride Booking: Utilizes Google Maps for route planning and ride tracking.
- Email & Password Login: Implemented with email verification.
- Google Authentication: Smooth OAuth login experience.
- Splash & Onboarding Screens: Welcomes users with a clean onboarding flow.
- Reusable Components: Custom input fields, buttons, and navigational elements.
Solution: Integrated Neon Postgres and optimized API routes to ensure seamless real-time data synchronization for ride tracking.
Solution: Used Expo Router to create a robust file-based navigation structure with dynamic screens and route guards.
Solution: Utilized Stripe's API for secure and flexible payment methods.
- Enhanced Ride Matching: Incorporate AI-driven ride matching algorithms 🤖.
- Push Notifications: Add push notifications for ride status updates 🔔.
- Offline Support: Implement caching and offline functionality for user data 📶.
This project is licensed under the MIT License.
For suggestions, contributions, or to report issues, please open an issue or reach out.