Skip to content

aelassas/bookcars

Repository files navigation

build test coverage PRs welcome tested with jest

BookCars

BookCars is a car rental platform, supplier-oriented, with an admin dashboard for managing car fleets and bookings, as well as a frontend and a mobile app for renting cars.

BookCars is built with React for its powerful rendering capabilities, MongoDB for flexible data modeling, and Stripe for secure payment processing.

With BookCars, you can deploy your own customizable car rental marketplace at minimal cost using the Docker-based setup. The platform integrates Stripe for secure payments and can be efficiently hosted on a 1GB RAM droplet, making it an ideal choice for single/multi-supplier operations looking for a scalable and cost-effective solution. You can deploy this solution for under $5/month using cloud providers like Hetzner or DigitalOcean.

BookCars is designed to work with multiple suppliers. Each supplier can manage his car fleet and bookings from the admin dashboard. BookCars can also work with a single supplier and can be used as a car rental aggregator.

From the admin dashboard, admins can create and manage suppliers, cars, locations, customers and bookings.

When new suppliers are created, they receive an email prompting them to create an account in order to access the admin dashboard and manage their car fleet and bookings.

Customers can sign up from the frontend or the mobile app, search for available cars based on pickup and drop-off points and time, choose a car and complete the checkout process.

A key design decision was made to use TypeScript instead of JavaScript due to its numerous advantages. TypeScript offers strong typing, tooling, and integration, resulting in high-quality, scalable, more readable and maintainable code that is easy to debug and test.

Features

  • Supplier management
  • Supplier contracts
  • Ready for one or multiple suppliers
  • Car fleet management
  • Dynamic price calculation
  • Location, country, parking spots and map features
  • Booking management
  • Payment management
  • Customer management
  • Multiple login options (Google, Facebook, Apple, Email)
  • Multiple payment methods (Credit Card, PayPal, Google Pay, Apple Pay, Link, Pay Later)
  • Operational Stripe Payment Gateway
  • Multiple language support (English, French, Spanish)
  • Multiple pagination options (Classic pagination with next and previous buttons, infinite scroll)
  • Responsive admin dashboard and frontend
  • Native Mobile app for Android and iOS with single codebase
  • Push notifications
  • Secure against XSS, XST, CSRF and MITM
  • Supported Platforms: iOS, Android, Web, Docker

Live Demo

Some features are locked down on the demo links provided. To unlock all the features contact me by email and I will give a full access. You can find my email on my GitHub profile page.

Frontend

Admin Dashboard

Mobile App

You can also install the Android App by downloading the APK and installing it on any Android device.

Resources

  1. Overview
  2. Why Use BookCars
  3. Architecture
  4. Installing (Self-hosted)
  5. Installing (VPS)
  6. Installing (Docker)
    1. Docker Image
    2. SSL
  7. Setup Stripe
  8. Build Mobile App
  9. Demo Database
    1. Windows, Linux and macOS
    2. Docker
  10. Run from Source
  11. Run Mobile App
    1. Prerequisites
    2. Instructions
    3. Push Notifications
  12. Change Currency
  13. Add New Language
  14. Unit Tests and Coverage
  15. Price Calculation
  16. Supplier Contracts
  17. Logs

License

BookCars is MIT licensed.