Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (9.0%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

Basic Info
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created 11 months ago · Last pushed 11 months ago
Metadata Files
Readme Funding License Citation

README.md

<<<<<<< HEAD

bookcars-main

======= build test coveralls loc docs live demo

BookCars

BookCars is a highly customizable, scalable, and cost-efficient solution for car rental businesses. Its robust feature set and open-source nature make it a sustainable choice for long-term growth in the rental industry.

BookCars integrates Stripe and PayPal payment gateways. You can choose either to use Stripe or PayPal for payments. If Stripe isn't available in your country, simply check if PayPal is supported and use it as an alternative for smooth and secure payments.

With BookCars, you can deploy your own customizable car rental marketplace at minimal cost using the Docker-based setup. The platform integrates Stripe and PayPal for secure payments and can be efficiently hosted on a 1GB RAM droplet, making it an ideal choice for single or multi-supplier operations looking for a scalable and cost-effective solution. You can deploy it for under $5/month using cloud providers like Hetzner or DigitalOcean. <!-- BookCars is free and open source. You can customize it as you want and deploy it yourself by following the documentation. If you want me to customize it and deploy it for you, contact me by email. You can find my email in my GitHub profile page. You need to be logged in to GitHub to view my email. I can deploy the platform to the cloud for you, configure your DNS, emailing, webmail and all related tasks. --> BookCars is designed to work with multiple suppliers. Suppliers can manage their car fleets 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, countries, locations, parking spots, customers, bookings and payments.

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 fleets 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.

Features

  • Supplier management
  • Supplier contracts
  • Ready for one or multiple suppliers
  • Car fleet management
  • Dynamic price calculation
  • Date Based Price Rates
  • Price Change Rate
  • Location, country, parking spots and map features
  • Booking management
  • Vehicle scheduler
  • Payment management
  • Customer management
  • Multiple login options (Google, Facebook, Apple, Email)
  • Multiple payment methods (Credit Card, PayPal, Google Pay, Apple Pay, Link, Pay at the counter, Pay in full, Pay deposit)
  • Multiple language support (English, French, Spanish)
  • Multiple currencies support
  • Multiple pagination options (Classic pagination with next and previous buttons, infinite scroll)
  • Multiple Payment Gateways supported (Stripe, PayPal)
  • Responsive admin dashboard and frontend
  • Native Mobile app for Android and iOS with single codebase
  • Push notifications
  • Secure against XSS, XST, CSR, MITM and DDoS
  • Supported Platforms: iOS, Android, Web, Docker

Live Demo

Frontend

  • URL: https://bookcars.dynv6.net:3002/
  • Login: jdoe@bookcars.ma
  • Password: B00kC4r5

Admin Dashboard

  • URL: https://bookcars.dynv6.net:3001/
  • Login: admin@bookcars.ma
  • Password: B00kC4r5

Mobile App

You can install the Android app on any Android device.

Scan this code with a device

Open the Camera app and point it at this code. Then tap the notification that appears.

How to install the Mobile App on Android

  • On devices running Android 8.0 (API level 26) and higher, you must navigate to the Install unknown apps system settings screen to enable app installations from a particular location (i.e. the web browser you are downloading the app from).

  • On devices running Android 7.1.1 (API level 25) and lower, you should enable the Unknown sources system setting, found in Settings > Security on your device.

Alternative Way

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

Documentation

  1. Overview
  2. Why Use BookCars
  3. Architecture
  4. Installing (Self-hosted)
  5. Installing (Docker)
    1. Docker Image
    2. SSL
  6. Payment Gateways
  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
    4. Run iOS App
  12. Add New Language
  13. Add New Currency
  14. Unit Tests and Coverage
  15. Manual Tests
  16. Price Calculation
    1. Pricing Fields
    2. Discounted Prices
    3. Date Based Price Rates
    4. Price Change Rate
    5. Calculation Algorithm
  17. Supplier Contracts
  18. Logs
  19. FAQ

Support

If you find this project helpful, consider buying me a coffee.

Buy Me A Coffee

License

BookCars is MIT licensed.

62c698c (Initial commit)

Owner

  • Login: PaluruSubbaNarasaiah
  • Kind: user

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use BookCars in your research or projects, please cite it using the following metadata."
title: "BookCars: A Car Rental Booking System"
authors:
  - name: " "
year: 2025
repository-code: " "
license: " "
keywords:
  - car rental
  - booking system
  - aggregator
  - web application
  - mobile app
  - react
  - react native
  - mongodb
  - stripe
  - paypal
url: " "
type: software

GitHub Events

Total
  • Push event: 3
  • Create event: 2
Last Year
  • Push event: 3
  • Create event: 2

Dependencies

packages/reactjs-social-login/package.json npm
  • @types/node ^22.13.14 development
  • @types/react ^19.0.12 development
  • microbundle-crl ^0.13.11 development
  • react ^19.1.0 development
  • rimraf ^6.0.1 development
  • typescript ^5.8.2 development
  • reactjs-social-login file:
.github/workflows/api.yml actions
  • actions/checkout v4 composite
  • actions/setup-node v4 composite
.github/workflows/backend.yml actions
  • actions/checkout v4 composite
  • actions/setup-node v4 composite
.github/workflows/build.yml actions
  • actions/checkout v4 composite
  • actions/setup-node v4 composite
.github/workflows/frontend.yml actions
  • actions/checkout v4 composite
  • actions/setup-node v4 composite
.github/workflows/loc.yml actions
  • actions/checkout v4 composite
  • peaceiris/actions-gh-pages v3 composite
  • shadowmoose/GHA-LoC-Badge 1.0.0 composite
.github/workflows/mobile.yml actions
  • actions/checkout v4 composite
  • actions/setup-node v4 composite
.github/workflows/test.yml actions
  • actions/checkout v4 composite
  • actions/github-script v7 composite
  • actions/setup-node v4 composite
  • codecov/codecov-action v5 composite
  • coverallsapp/github-action v2 composite
api/Dockerfile docker
  • node lts-alpine build
backend/Dockerfile docker
  • nginx stable-alpine build
  • node lts-alpine build
docker-compose.yml docker
  • mongo latest
frontend/Dockerfile docker
  • nginx stable-alpine build
  • node lts-alpine build
api/package-lock.json npm
  • 837 dependencies
api/package.json npm
  • @typescript-eslint/eslint-plugin ^8.29.0 development
  • @typescript-eslint/parser ^8.29.0 development
  • eslint ^9.23.0 development
  • eslint-plugin-import ^2.31.0 development
  • eslint-plugin-jest ^28.11.0 development
  • globals ^16.0.0 development
  • nodemon ^3.1.9 development
  • npm-check-updates ^17.1.16 development
  • tsx ^4.19.3 development
  • @babel/cli ^7.27.0
  • @babel/core ^7.26.10
  • @babel/plugin-transform-modules-commonjs ^7.26.3
  • @babel/preset-env ^7.26.9
  • @babel/preset-typescript ^7.27.0
  • @types/bcrypt ^5.0.2
  • @types/compression ^1.7.5
  • @types/cookie-parser ^1.4.8
  • @types/cors ^2.8.17
  • @types/express ^5.0.1
  • @types/jest ^29.5.14
  • @types/multer ^1.4.12
  • @types/node ^22.14.0
  • @types/nodemailer ^6.4.17
  • @types/supertest ^6.0.3
  • @types/validator ^13.12.3
  • api file:
  • axios ^1.8.4
  • babel-jest ^29.7.0
  • babel-plugin-add-import-extension ^1.6.0
  • babel-plugin-module-resolver ^5.0.2
  • bcrypt ^5.1.1
  • compression ^1.8.0
  • cookie-parser ^1.4.7
  • cors ^2.8.5
  • cross-env ^7.0.3
  • dotenv ^16.4.7
  • escape-string-regexp ^5.0.0
  • expo-server-sdk ^3.14.0
  • express ^5.1.0
  • helmet ^8.1.0
  • i18n-js ^4.5.1
  • jest ^29.7.0
  • jose ^6.0.10
  • mongoose ^8.13.2
  • multer ^1.4.5-lts.2
  • nanoid ^5.1.5
  • nocache ^4.0.0
  • nodemailer ^6.10.0
  • rimraf ^6.0.1
  • stripe ^18.0.0
  • supertest ^7.1.0
  • typescript ^5.8.2
  • validator ^13.15.0
  • winston ^3.17.0
backend/package-lock.json npm
  • 550 dependencies
backend/package.json npm
  • @babel/plugin-transform-runtime ^7.26.10 development
  • @typescript-eslint/eslint-plugin ^8.29.0 development
  • @typescript-eslint/parser ^8.29.0 development
  • babel-plugin-react-compiler ^19.0.0-beta-e993439-20250328 development
  • eslint ^9.23.0 development
  • eslint-plugin-react ^7.37.4 development
  • eslint-plugin-react-compiler ^19.0.0-beta-e993439-20250328 development
  • eslint-plugin-react-hooks ^5.2.0 development
  • globals ^16.0.0 development
  • npm-check-updates ^17.1.16 development
  • stylelint ^16.17.0 development
  • stylelint-config-standard ^37.0.0 development
  • terser ^5.39.0 development
  • vite-plugin-html ^3.2.2 development
  • @emotion/react ^11.14.0
  • @emotion/styled ^11.14.0
  • @mui/icons-material ^7.0.1
  • @mui/material ^7.0.1
  • @mui/x-data-grid ^7.28.3
  • @mui/x-date-pickers ^7.28.3
  • @types/node ^22.14.0
  • @types/nprogress ^0.2.3
  • @types/react ^19.1.0
  • @types/react-dom ^19.1.1
  • @types/validator ^13.12.3
  • @vitejs/plugin-react ^4.3.4
  • axios ^1.8.4
  • backend file:
  • cross-env ^7.0.3
  • date-fns ^4.1.0
  • eslint-plugin-react-refresh ^0.4.19
  • history ^5.3.0
  • localized-strings ^2.0.3
  • nprogress ^0.2.0
  • react ^19.1.0
  • react-dom ^19.1.0
  • react-router-dom ^7.4.1
  • react-toastify ^11.0.5
  • rrule ^2.8.1
  • typescript ^5.8.2
  • validator ^13.15.0
  • vite ^6.2.5
frontend/package-lock.json npm
  • 575 dependencies
frontend/package.json npm
  • @babel/plugin-transform-runtime ^7.26.10 development
  • @typescript-eslint/eslint-plugin ^8.29.0 development
  • @typescript-eslint/parser ^8.29.0 development
  • babel-plugin-react-compiler ^19.0.0-beta-e993439-20250328 development
  • eslint ^9.23.0 development
  • eslint-plugin-react ^7.37.4 development
  • eslint-plugin-react-compiler ^19.0.0-beta-e993439-20250328 development
  • eslint-plugin-react-hooks ^5.2.0 development
  • globals ^16.0.0 development
  • npm-check-updates ^17.1.16 development
  • stylelint ^16.17.0 development
  • stylelint-config-standard ^37.0.0 development
  • terser ^5.39.0 development
  • vite-plugin-html ^3.2.2 development
  • @emotion/react ^11.14.0
  • @emotion/styled ^11.14.0
  • @mui/icons-material ^7.0.1
  • @mui/material ^7.0.1
  • @mui/x-data-grid ^7.28.3
  • @mui/x-date-pickers ^7.28.3
  • @paypal/react-paypal-js ^8.8.2
  • @stripe/react-stripe-js ^3.6.0
  • @stripe/stripe-js ^7.0.0
  • @types/leaflet ^1.9.17
  • @types/leaflet-boundary-canvas ^1.0.3
  • @types/node ^22.14.0
  • @types/nprogress ^0.2.3
  • @types/react ^19.1.0
  • @types/react-dom ^19.1.1
  • @types/react-recaptcha-v3 ^1.1.5
  • @types/react-slick ^0.23.13
  • @types/validator ^13.12.3
  • @vitejs/plugin-react ^4.3.4
  • axios ^1.8.4
  • cross-env ^7.0.3
  • date-fns ^4.1.0
  • eslint-plugin-react-refresh ^0.4.19
  • frontend file:
  • github-fork-ribbon-css ^0.2.3
  • history ^5.3.0
  • leaflet ^1.9.4
  • leaflet-boundary-canvas ^1.0.0
  • localized-strings ^2.0.3
  • nprogress ^0.2.0
  • react ^19.1.0
  • react-circle-flags ^0.0.23
  • react-dom ^19.1.0
  • react-ga4 ^2.1.0
  • react-leaflet ^5.0.0
  • react-router-dom ^7.4.1
  • react-slick ^0.30.3
  • react-toastify ^11.0.5
  • slick-carousel ^1.8.1
  • typescript ^5.8.2
  • validator ^13.15.0
  • vite ^6.2.5
mobile/package-lock.json npm
  • 1066 dependencies
mobile/package.json npm
  • @babel/core ^7.26.10 development
  • @types/react ~18.3.12 development
  • @typescript-eslint/eslint-plugin ^8.29.0 development
  • @typescript-eslint/parser ^8.29.0 development
  • cross-env ^7.0.3 development
  • eslint ^9.24.0 development
  • eslint-plugin-react ^7.37.5 development
  • eslint-plugin-react-hooks ^5.2.0 development
  • npm-check-updates ^17.1.16 development
  • typescript ~5.8.3 development
  • @babel/runtime ^7.27.0
  • @react-native-async-storage/async-storage 1.23.1
  • @react-native-community/datetimepicker 8.2.0
  • @react-navigation/drawer ^7.3.7
  • @react-navigation/native ^7.1.4
  • @react-navigation/native-stack ^7.3.8
  • @react-navigation/stack ^7.2.8
  • @stripe/stripe-react-native 0.38.6
  • @types/lodash.debounce ^4.0.9
  • @types/mime ^4.0.0
  • @types/react-native-dotenv ^0.2.2
  • @types/react-native-vector-icons ^6.4.18
  • @types/validator ^13.12.3
  • axios ^1.8.4
  • axios-retry ^4.5.0
  • babel-plugin-module-resolver ^5.0.2
  • bookcars file:
  • date-fns ^4.1.0
  • expo ~52.0.44
  • expo-asset ~11.0.5
  • expo-constants ~17.0.8
  • expo-device ~7.0.3
  • expo-document-picker ~13.0.3
  • expo-image-picker ~16.0.6
  • expo-linking ^7.0.5
  • expo-localization ~16.0.1
  • expo-location ~18.0.10
  • expo-notifications ~0.29.14
  • expo-splash-screen ~0.29.22
  • expo-status-bar ~2.0.1
  • expo-updates ~0.27.4
  • i18n-js ^4.5.1
  • lodash.debounce ^4.0.8
  • mime ^4.0.7
  • prop-types ^15.8.1
  • react 18.3.1
  • react-native 0.76.9
  • react-native-animatable ^1.4.0
  • react-native-dotenv ^3.4.11
  • react-native-feather ^1.1.2
  • react-native-gesture-handler ~2.20.2
  • react-native-keyboard-aware-scroll-view ^0.9.5
  • react-native-modal-datetime-picker ^18.0.0
  • react-native-paper ^5.13.1
  • react-native-reanimated ~3.16.1
  • react-native-safe-area-context 4.12.0
  • react-native-screens ~4.4.0
  • react-native-size-matters ^0.4.2
  • react-native-toast-message ^2.2.1
  • react-native-vector-icons ^10.2.0
  • validator ^13.15.0
packages/bookcars-helper/package-lock.json npm
  • @isaacs/cliui 8.0.2 development
  • @pkgjs/parseargs 0.11.0 development
  • ansi-regex 5.0.1 development
  • ansi-regex 6.0.1 development
  • ansi-styles 6.2.1 development
  • ansi-styles 4.3.0 development
  • balanced-match 1.0.2 development
  • brace-expansion 2.0.1 development
  • color-convert 2.0.1 development
  • color-name 1.1.4 development
  • cross-spawn 7.0.3 development
  • eastasianwidth 0.2.0 development
  • emoji-regex 9.2.2 development
  • emoji-regex 8.0.0 development
  • foreground-child 3.1.1 development
  • glob 10.3.12 development
  • is-fullwidth-code-point 3.0.0 development
  • isexe 2.0.0 development
  • jackspeak 2.3.6 development
  • lru-cache 10.2.0 development
  • minimatch 9.0.4 development
  • minipass 7.0.4 development
  • path-key 3.1.1 development
  • path-scurry 1.10.2 development
  • rimraf 5.0.5 development
  • shebang-command 2.0.0 development
  • shebang-regex 3.0.0 development
  • signal-exit 4.1.0 development
  • string-width 4.2.3 development
  • string-width 5.1.2 development
  • string-width-cjs 4.2.3 development
  • strip-ansi 7.1.0 development
  • strip-ansi 6.0.1 development
  • strip-ansi-cjs 6.0.1 development
  • typescript 5.2.2 development
  • which 2.0.2 development
  • wrap-ansi 8.1.0 development
  • wrap-ansi-cjs 7.0.0 development
  • @babel/runtime 7.26.0
  • bookcars-helper *
  • regenerator-runtime 0.14.1
packages/bookcars-helper/package.json npm
  • rimraf ^5.0.5 development
  • typescript ^5.2.2 development
  • @babel/runtime ^7.26.0
  • bookcars-helper file:
packages/bookcars-types/package-lock.json npm
  • @isaacs/cliui 8.0.2
  • @pkgjs/parseargs 0.11.0
  • ansi-regex 6.0.1
  • ansi-regex 5.0.1
  • ansi-styles 6.2.1
  • ansi-styles 4.3.0
  • balanced-match 1.0.2
  • bookcars-types *
  • brace-expansion 2.0.1
  • color-convert 2.0.1
  • color-name 1.1.4
  • cross-spawn 7.0.3
  • eastasianwidth 0.2.0
  • emoji-regex 8.0.0
  • emoji-regex 9.2.2
  • foreground-child 3.1.1
  • glob 10.3.4
  • is-fullwidth-code-point 3.0.0
  • isexe 2.0.0
  • jackspeak 2.3.3
  • lru-cache 10.0.1
  • minimatch 9.0.3
  • minipass 7.0.3
  • path-key 3.1.1
  • path-scurry 1.10.1
  • rimraf 5.0.1
  • shebang-command 2.0.0
  • shebang-regex 3.0.0
  • signal-exit 4.1.0
  • string-width 5.1.2
  • string-width 4.2.3
  • string-width-cjs 4.2.3
  • strip-ansi 7.1.0
  • strip-ansi 6.0.1
  • strip-ansi-cjs 6.0.1
  • typescript 5.2.2
  • which 2.0.2
  • wrap-ansi 8.1.0
  • wrap-ansi-cjs 7.0.0
packages/bookcars-types/package.json npm
  • bookcars-types file:
  • rimraf ^5.0.1
  • typescript ^5.2.2
packages/currency-converter/package-lock.json npm
  • @isaacs/cliui 8.0.2 development
  • @types/node 22.13.0 development
  • ansi-regex 5.0.1 development
  • ansi-regex 6.1.0 development
  • ansi-styles 6.2.1 development
  • ansi-styles 4.3.0 development
  • balanced-match 1.0.2 development
  • brace-expansion 2.0.1 development
  • color-convert 2.0.1 development
  • color-name 1.1.4 development
  • cross-spawn 7.0.6 development
  • eastasianwidth 0.2.0 development
  • emoji-regex 8.0.0 development
  • emoji-regex 9.2.2 development
  • foreground-child 3.3.0 development
  • glob 11.0.0 development
  • is-fullwidth-code-point 3.0.0 development
  • isexe 2.0.0 development
  • jackspeak 4.0.2 development
  • lru-cache 11.0.2 development
  • minimatch 10.0.1 development
  • minipass 7.1.2 development
  • package-json-from-dist 1.0.1 development
  • path-key 3.1.1 development
  • path-scurry 2.0.0 development
  • rimraf 6.0.1 development
  • shebang-command 2.0.0 development
  • shebang-regex 3.0.0 development
  • signal-exit 4.1.0 development
  • string-width 5.1.2 development
  • string-width 4.2.3 development
  • string-width-cjs 4.2.3 development
  • strip-ansi 7.1.0 development
  • strip-ansi 6.0.1 development
  • strip-ansi-cjs 6.0.1 development
  • typescript 5.7.3 development
  • undici-types 6.20.0 development
  • which 2.0.2 development
  • wrap-ansi 8.1.0 development
  • wrap-ansi-cjs 7.0.0 development
  • @babel/runtime 7.26.7
  • asynckit 0.4.0
  • axios 1.7.9
  • combined-stream 1.0.8
  • currency-converter *
  • delayed-stream 1.0.0
  • easy-currencies 1.8.1
  • follow-redirects 1.15.9
  • form-data 4.0.1
  • mime-db 1.52.0
  • mime-types 2.1.35
  • proxy-from-env 1.1.0
  • regenerator-runtime 0.14.1
packages/currency-converter/package.json npm
  • @types/node ^22.13.0 development
  • rimraf ^6.0.1 development
  • typescript ^5.7.3 development
  • @babel/runtime ^7.26.7
  • currency-converter file:
  • easy-currencies ^1.8.1
packages/disable-react-devtools/package-lock.json npm
  • @isaacs/cliui 8.0.2
  • @pkgjs/parseargs 0.11.0
  • ansi-regex 6.0.1
  • ansi-regex 5.0.1
  • ansi-styles 6.2.1
  • ansi-styles 4.3.0
  • balanced-match 1.0.2
  • brace-expansion 2.0.1
  • color-convert 2.0.1
  • color-name 1.1.4
  • cross-spawn 7.0.3
  • disable-react-devtools *
  • eastasianwidth 0.2.0
  • emoji-regex 8.0.0
  • emoji-regex 9.2.2
  • foreground-child 3.1.1
  • glob 10.3.4
  • is-fullwidth-code-point 3.0.0
  • isexe 2.0.0
  • jackspeak 2.3.3
  • lru-cache 10.0.1
  • minimatch 9.0.3
  • minipass 7.0.3
  • path-key 3.1.1
  • path-scurry 1.10.1
  • rimraf 5.0.1
  • shebang-command 2.0.0
  • shebang-regex 3.0.0
  • signal-exit 4.1.0
  • string-width 5.1.2
  • string-width 4.2.3
  • string-width-cjs 4.2.3
  • strip-ansi 7.1.0
  • strip-ansi 6.0.1
  • strip-ansi-cjs 6.0.1
  • typescript 5.2.2
  • which 2.0.2
  • wrap-ansi 8.1.0
  • wrap-ansi-cjs 7.0.0
packages/disable-react-devtools/package.json npm
  • disable-react-devtools file:
  • rimraf ^5.0.1
  • typescript ^5.2.2
packages/reactjs-social-login/package-lock.json npm
  • 571 dependencies