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.3%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

Basic Info
  • Host: GitHub
  • Owner: WenCreatives
  • License: mit
  • Language: TypeScript
  • Default Branch: main
  • Size: 3.63 MB
Statistics
  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created 8 months ago · Last pushed 8 months ago
Metadata Files
Readme Contributing Funding License Code of conduct Citation

README.md

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 is designed for startups looking to launch a single-supplier car rental business, companies that need a multi-supplier rental solution, developers who want to study a full-stack codebase for learning, and anyone looking for a solid foundation to build a custom car rental platform.

It comes with built-in support for Stripe and PayPal payment gateways, allowing you to choose the one best suited for your country or business model. If Stripe isn't available in your region, PayPal serves as a secure and reliable alternative.

You can deploy BookCars with minimal cost using the Docker-based setup. It runs efficiently on a small virtual server with just 1GB of RAM—ideal for startups and small businesses. Hosting can cost around $5/month using cloud providers like Hetzner or DigitalOcean.

BookCars supports both single-supplier and multi-supplier modes. Suppliers can manage their fleets and bookings through a dedicated admin panel. Each new supplier receives an email prompting them to create their account and gain access to the system.

The admin panel allows admins to manage suppliers, cars, countries, locations, parking spots, customers, bookings, and payments.

Customers can register through the web frontend or mobile app, search for available cars based on pickup and drop-off points and time, choose a car and complete the checkout process in a few clicks.

Features

Supplier & Fleet Management

Pricing & Payments

Locations & Search

User Experience

Security & Performance

  • Secure against XSS, XST, CSRF, MITM, and DDoS attacks
  • Responsive admin panel and frontend
  • Native mobile app for Android and iOS (single codebase)
  • Docker support for easy deployment and a better developer experience
  • Error monitoring and performance tracing with Sentry

Supported Platforms

  • iOS
  • Android
  • Web
  • Docker

Support & Contributing

If this project helped you, saved you time, or inspired you in any way, please consider supporting its future growth and maintenance. You can show your support by starring the repository (it helps increase visibility and shows your appreciation), sharing the project (recommend it to colleagues, communities, or on social media), or making a donation (if you'd like to financially support the development) via GitHub Sponsors (one-time or monthly), PayPal, or Buy Me a Coffee. Open-source software requires time, effort, and resources to maintain—your support helps keep this project alive, up-to-date, and accessible to everyone. Every contribution, big or small, makes a difference and motivates continued work on features, bug fixes, and new ideas.

PayPal Buy Me A Coffee

To contribute code or report issues, please read the Contribution Guide to learn about the process, coding standards, and how to submit pull requests.

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
    1. Frontend
    2. Admin Panel
    3. Mobile App
  2. Why Use BookCars
  3. Software Architecture
  4. Advanced Features
  5. Installing (Self-hosted)
  6. Installing (Docker)
    1. Docker Image
    2. SSL
  7. Setup Sentry
  8. Payment Gateways
  9. Setup Stripe
  10. Social Login Setup
  11. Build Mobile App
  12. Demo Database
    1. Windows, Linux and macOS
    2. Docker
  13. Run from Source
  14. Run from Source (Docker)
  15. Run Mobile App
    1. Prerequisites
    2. Instructions
    3. Push Notifications
    4. Run iOS App
  16. Locations
  17. Auto‐Notification System
  18. Price Calculation
    1. Pricing Fields
    2. Discounted Prices
    3. Date Based Price Rates
    4. Price Change Rate
    5. Calculation Algorithm
  19. Supplier Contracts
  20. Add New Language
  21. Add New Currency
  22. Logs
  23. Testing
    1. Unit Tests and Coverage
    2. Manual Tests
  24. FAQ
  25. Release Notes
  26. Contribution Guide
  27. Code of Conduct

License

BookCars is MIT licensed.

Owner

  • Login: WenCreatives
  • 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: "Akram El Assas"
year: 2025
repository-code: "https://github.com/aelassas/bookcars"
license: "MIT"
keywords:
  - car rental
  - booking system
  - aggregator
  - react
  - react native
  - mongodb
  - stripe
  - paypal
  - bookcars
url: "https://github.com/aelassas/bookcars"
type: software

GitHub Events

Total
  • Member event: 1
  • Push event: 9
Last Year
  • Member event: 1
  • Push event: 9

Dependencies

.github/workflows/admin.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/releases.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
admin/Dockerfile docker
  • nginx stable-alpine build
  • node lts-alpine build
backend/Dockerfile docker
  • node lts-alpine build
docker-compose.dev.yml docker
  • mongo latest
  • mongo-express latest
docker-compose.yml docker
  • mongo latest
  • mongo-express latest
frontend/Dockerfile docker
  • nginx stable-alpine build
  • node lts-alpine build
admin/package-lock.json npm
  • 554 dependencies
admin/package.json npm
  • @babel/plugin-transform-runtime ^7.27.4 development
  • @types/nprogress ^0.2.3 development
  • @types/react ^19.1.8 development
  • @types/react-dom ^19.1.6 development
  • @types/validator ^13.15.2 development
  • @typescript-eslint/eslint-plugin ^8.35.0 development
  • @typescript-eslint/parser ^8.35.0 development
  • @vitejs/plugin-react ^4.6.0 development
  • babel-plugin-react-compiler ^19.1.0-rc.2 development
  • cross-env ^7.0.3 development
  • eslint ^9.30.0 development
  • eslint-plugin-react ^7.37.5 development
  • eslint-plugin-react-compiler ^19.1.0-rc.2 development
  • eslint-plugin-react-hooks ^5.2.0 development
  • eslint-plugin-react-refresh ^0.4.20 development
  • globals ^16.2.0 development
  • npm-check-updates ^18.0.1 development
  • stylelint ^16.21.0 development
  • stylelint-config-standard ^38.0.0 development
  • terser ^5.43.1 development
  • typescript ^5.8.3 development
  • vite ^7.0.0 development
  • vite-plugin-html ^3.2.2 development
  • @emotion/react ^11.14.0
  • @emotion/styled ^11.14.1
  • @hookform/resolvers ^5.1.1
  • @mui/icons-material ^7.1.2
  • @mui/material ^7.1.2
  • @mui/x-data-grid ^8.6.0
  • @mui/x-date-pickers ^8.6.0
  • axios ^1.10.0
  • date-fns ^4.1.0
  • history ^5.3.0
  • localized-strings ^2.0.3
  • nprogress ^0.2.0
  • react ^19.1.0
  • react-dom ^19.1.0
  • react-hook-form ^7.59.0
  • react-router-dom ^7.6.3
  • react-toastify ^11.0.5
  • rrule ^2.8.1
  • validator ^13.15.15
  • zod ^3.25.67
backend/package-lock.json npm
  • 897 dependencies
backend/package.json npm
  • @babel/cli ^7.27.2 development
  • @babel/core ^7.27.7 development
  • @babel/plugin-transform-modules-commonjs ^7.27.1 development
  • @babel/preset-env ^7.27.2 development
  • @babel/preset-typescript ^7.27.1 development
  • @types/bcrypt ^5.0.2 development
  • @types/compression ^1.8.1 development
  • @types/cookie-parser ^1.4.9 development
  • @types/cors ^2.8.19 development
  • @types/express ^4.17.21 development
  • @types/jest ^30.0.0 development
  • @types/multer ^1.4.13 development
  • @types/node ^24.0.6 development
  • @types/nodemailer ^6.4.17 development
  • @types/supertest ^6.0.3 development
  • @types/validator ^13.15.2 development
  • @typescript-eslint/eslint-plugin ^8.35.0 development
  • @typescript-eslint/parser ^8.35.0 development
  • babel-jest ^30.0.2 development
  • babel-plugin-add-import-extension ^1.6.0 development
  • babel-plugin-module-resolver ^5.0.2 development
  • cross-env ^7.0.3 development
  • eslint ^9.30.0 development
  • eslint-plugin-import ^2.32.0 development
  • eslint-plugin-jest ^29.0.1 development
  • globals ^16.2.0 development
  • jest ^30.0.3 development
  • nodemon ^3.1.10 development
  • npm-check-updates ^18.0.1 development
  • rimraf ^6.0.1 development
  • supertest ^7.1.1 development
  • tsx ^4.20.3 development
  • typescript ^5.8.3 development
  • @sentry/node ^9.33.0
  • axios ^1.10.0
  • bcrypt ^6.0.0
  • compression ^1.8.0
  • cookie-parser ^1.4.7
  • cors ^2.8.5
  • dotenv ^17.0.0
  • escape-string-regexp ^5.0.0
  • expo-server-sdk ^3.15.0
  • express ^4.18.2
  • helmet ^8.1.0
  • i18n-js ^4.5.1
  • jose ^6.0.11
  • mongoose ^8.16.1
  • multer ^2.0.1
  • nanoid ^5.1.5
  • nocache ^4.0.0
  • nodemailer ^7.0.3
  • stripe ^18.2.1
  • validator ^13.15.15
  • winston ^3.17.0
frontend/package-lock.json npm
  • 579 dependencies
frontend/package.json npm
  • @babel/plugin-transform-runtime ^7.27.4 development
  • @types/leaflet ^1.9.19 development
  • @types/leaflet-boundary-canvas ^1.0.3 development
  • @types/nprogress ^0.2.3 development
  • @types/react ^19.1.8 development
  • @types/react-dom ^19.1.6 development
  • @types/react-recaptcha-v3 ^1.1.5 development
  • @types/react-slick ^0.23.13 development
  • @types/validator ^13.15.2 development
  • @typescript-eslint/eslint-plugin ^8.35.0 development
  • @typescript-eslint/parser ^8.35.0 development
  • @vitejs/plugin-react ^4.6.0 development
  • babel-plugin-react-compiler ^19.1.0-rc.2 development
  • cross-env ^7.0.3 development
  • eslint ^9.30.0 development
  • eslint-plugin-react ^7.37.5 development
  • eslint-plugin-react-compiler ^19.1.0-rc.2 development
  • eslint-plugin-react-hooks ^5.2.0 development
  • eslint-plugin-react-refresh ^0.4.20 development
  • globals ^16.2.0 development
  • npm-check-updates ^18.0.1 development
  • stylelint ^16.21.0 development
  • stylelint-config-standard ^38.0.0 development
  • terser ^5.43.1 development
  • typescript ^5.8.3 development
  • vite ^7.0.0 development
  • vite-plugin-html ^3.2.2 development
  • @emotion/react ^11.14.0
  • @emotion/styled ^11.14.1
  • @hookform/resolvers ^5.1.1
  • @mui/icons-material ^7.1.2
  • @mui/material ^7.1.2
  • @mui/x-data-grid ^8.6.0
  • @mui/x-date-pickers ^8.6.0
  • @paypal/react-paypal-js ^8.8.3
  • @stripe/react-stripe-js ^3.7.0
  • @stripe/stripe-js ^7.4.0
  • axios ^1.10.0
  • date-fns ^4.1.0
  • 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-hook-form ^7.59.0
  • react-leaflet ^5.0.0
  • react-router-dom ^7.6.3
  • react-slick ^0.30.3
  • react-toastify ^11.0.5
  • slick-carousel ^1.8.1
  • validator ^13.15.15
  • zod ^3.25.67
mobile/package-lock.json npm
  • 904 dependencies
mobile/package.json npm
  • @babel/core ^7.27.7 development
  • @types/lodash.debounce ^4.0.9 development
  • @types/mime ^4.0.0 development
  • @types/prop-types ^15.7.15 development
  • @types/react ~19.0.10 development
  • @types/react-native-dotenv ^0.2.2 development
  • @types/react-native-vector-icons ^6.4.18 development
  • @types/validator ^13.15.2 development
  • @typescript-eslint/eslint-plugin ^8.35.0 development
  • @typescript-eslint/parser ^8.35.0 development
  • babel-plugin-module-resolver ^5.0.2 development
  • cross-env ^7.0.3 development
  • eslint ^9.30.0 development
  • eslint-plugin-react ^7.37.5 development
  • eslint-plugin-react-hooks ^5.2.0 development
  • typescript ~5.8.3 development
  • @babel/runtime ^7.27.6
  • @react-native-async-storage/async-storage 2.1.2
  • @react-native-community/datetimepicker 8.4.1
  • @react-navigation/drawer ^7.5.2
  • @react-navigation/native ^7.1.14
  • @react-navigation/native-stack ^7.3.21
  • @react-navigation/stack ^7.4.2
  • @stripe/stripe-react-native 0.45.0
  • axios ^1.10.0
  • axios-retry ^4.5.0
  • date-fns ^4.1.0
  • expo ^53.0.13
  • expo-asset ~11.1.5
  • expo-constants ~17.1.6
  • expo-device ~7.1.4
  • expo-document-picker ~13.1.6
  • expo-image-picker ~16.1.4
  • expo-linking ~7.1.5
  • expo-localization ~16.1.5
  • expo-location ~18.1.5
  • expo-notifications ~0.31.3
  • expo-splash-screen ~0.30.9
  • expo-status-bar ~2.2.3
  • expo-updates ~0.28.15
  • i18n-js ^4.5.1
  • lodash.debounce ^4.0.8
  • mime ^4.0.7
  • prop-types ^15.8.1
  • react 19.0.0
  • react-native 0.79.4
  • react-native-animatable ^1.4.0
  • react-native-dotenv ^3.4.11
  • react-native-feather ^1.1.2
  • react-native-gesture-handler ~2.24.0
  • react-native-keyboard-aware-scroll-view ^0.9.5
  • react-native-modal-datetime-picker ^18.0.0
  • react-native-paper ^5.14.5
  • react-native-reanimated ~3.17.4
  • react-native-safe-area-context 5.4.0
  • react-native-screens ^4.11.1
  • react-native-size-matters ^0.4.2
  • react-native-toast-message ^2.3.2
  • react-native-vector-icons ^10.2.0
  • validator ^13.15.15
package-lock.json npm
  • @eslint-community/eslint-utils 4.7.0 development
  • @eslint-community/regexpp 4.12.1 development
  • @eslint/config-array 0.20.0 development
  • @eslint/config-helpers 0.2.2 development
  • @eslint/core 0.14.0 development
  • @eslint/eslintrc 3.3.1 development
  • @eslint/js 9.27.0 development
  • @eslint/object-schema 2.1.6 development
  • @eslint/plugin-kit 0.3.1 development
  • @humanfs/core 0.19.1 development
  • @humanfs/node 0.16.6 development
  • @humanwhocodes/module-importer 1.0.1 development
  • @humanwhocodes/retry 0.4.3 development
  • @humanwhocodes/retry 0.3.1 development
  • @types/estree 1.0.7 development
  • @types/json-schema 7.0.15 development
  • acorn 8.14.1 development
  • acorn-jsx 5.3.2 development
  • ajv 6.12.6 development
  • ansi-styles 4.3.0 development
  • argparse 2.0.1 development
  • balanced-match 1.0.2 development
  • brace-expansion 1.1.11 development
  • callsites 3.1.0 development
  • chalk 4.1.2 development
  • chalk 5.4.1 development
  • color-convert 2.0.1 development
  • color-name 1.1.4 development
  • concat-map 0.0.1 development
  • cross-spawn 7.0.6 development
  • debug 4.4.1 development
  • deep-is 0.1.4 development
  • escape-string-regexp 4.0.0 development
  • eslint 9.27.0 development
  • eslint-scope 8.3.0 development
  • eslint-visitor-keys 3.4.3 development
  • eslint-visitor-keys 4.2.0 development
  • espree 10.3.0 development
  • esquery 1.6.0 development
  • esrecurse 4.3.0 development
  • estraverse 5.3.0 development
  • esutils 2.0.3 development
  • fast-deep-equal 3.1.3 development
  • fast-json-stable-stringify 2.1.0 development
  • fast-levenshtein 2.0.6 development
  • file-entry-cache 8.0.0 development
  • find-up 5.0.0 development
  • flat-cache 4.0.1 development
  • flatted 3.3.3 development
  • glob-parent 6.0.2 development
  • globals 14.0.0 development
  • has-flag 4.0.0 development
  • husky 9.1.7 development
  • ignore 5.3.2 development
  • import-fresh 3.3.1 development
  • imurmurhash 0.1.4 development
  • is-extglob 2.1.1 development
  • is-glob 4.0.3 development
  • isexe 2.0.0 development
  • js-yaml 4.1.0 development
  • json-buffer 3.0.1 development
  • json-schema-traverse 0.4.1 development
  • json-stable-stringify-without-jsonify 1.0.1 development
  • keyv 4.5.4 development
  • levn 0.4.1 development
  • locate-path 6.0.0 development
  • lodash.merge 4.6.2 development
  • minimatch 3.1.2 development
  • ms 2.1.3 development
  • natural-compare 1.4.0 development
  • optionator 0.9.4 development
  • p-limit 6.2.0 development
  • p-limit 3.1.0 development
  • p-locate 5.0.0 development
  • parent-module 1.0.1 development
  • path-exists 4.0.0 development
  • path-key 3.1.1 development
  • prelude-ls 1.2.1 development
  • punycode 2.3.1 development
  • resolve-from 4.0.0 development
  • shebang-command 2.0.0 development
  • shebang-regex 3.0.0 development
  • strip-json-comments 3.1.1 development
  • supports-color 7.2.0 development
  • type-check 0.4.0 development
  • uri-js 4.4.1 development
  • which 2.0.2 development
  • word-wrap 1.2.5 development
  • yocto-queue 0.1.0 development
  • yocto-queue 1.2.1 development
package.json npm
  • chalk ^5.4.1 development
  • eslint ^9.27.0 development
  • husky ^9.1.7 development
  • p-limit ^6.2.0 development
packages/bookcars-helper/package-lock.json npm
  • 146 dependencies
packages/bookcars-helper/package.json npm
  • @typescript-eslint/eslint-plugin ^8.34.0 development
  • @typescript-eslint/parser ^8.34.0 development
  • eslint ^9.28.0 development
  • rimraf ^6.0.1 development
  • typescript ^5.8.3 development
  • @babel/runtime ^7.27.6
packages/bookcars-types/package-lock.json npm
  • 145 dependencies
packages/bookcars-types/package.json npm
  • @typescript-eslint/eslint-plugin ^8.34.0 development
  • @typescript-eslint/parser ^8.34.0 development
  • eslint ^9.28.0 development
  • rimraf ^6.0.1
  • typescript ^5.8.3
packages/currency-converter/package-lock.json npm
  • 173 dependencies
packages/currency-converter/package.json npm
  • @types/node ^24.0.3 development
  • @typescript-eslint/eslint-plugin ^8.34.1 development
  • @typescript-eslint/parser ^8.34.1 development
  • eslint ^9.29.0 development
  • rimraf ^6.0.1 development
  • typescript ^5.8.3 development
  • @babel/runtime ^7.27.6
  • easy-currencies ^1.8.3
packages/disable-react-devtools/package-lock.json npm
  • 145 dependencies
packages/disable-react-devtools/package.json npm
  • @typescript-eslint/eslint-plugin ^8.34.0 development
  • @typescript-eslint/parser ^8.34.0 development
  • eslint ^9.28.0 development
  • rimraf ^6.0.1
  • typescript ^5.8.3
packages/reactjs-social-login/package-lock.json npm
  • 661 dependencies
packages/reactjs-social-login/package.json npm
  • @types/node ^24.0.0 development
  • @types/react ^19.1.7 development
  • @typescript-eslint/eslint-plugin ^8.34.0 development
  • @typescript-eslint/parser ^8.34.0 development
  • eslint ^9.28.0 development
  • microbundle-crl ^0.13.11 development
  • react ^19.1.0 development
  • rimraf ^6.0.1 development
  • typescript ^5.8.3 development