Giter Site home page Giter Site logo

aelassas / bookcars Goto Github PK

View Code? Open in Web Editor NEW
278.0 20.0 172.0 25.26 MB

Car Rental Platform with Mobile App

Home Page: https://bookcars.github.io

License: MIT License

HTML 0.04% CSS 6.94% JavaScript 0.33% Shell 0.13% Dockerfile 0.07% TypeScript 92.49%
car-rental car-rental-system aggregator react react-native mongodb nodejs

bookcars's Introduction

build test codecov

BookCars

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

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

From the backend, 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 backend 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.

BookCars can run in a Docker container. Follow this step by step guide to walk you through on how to build BookCars Docker image and run it in a Docker container.

Features

  • Supplier management
  • Ready for one or multiple suppliers
  • Car fleet management
  • Booking management
  • Payment management
  • Customer management
  • Multiple payment methods (Credit Card, PayPal, Google Pay, Apple Pay, Link, Pay Later)
  • Operational Stripe Payment Gateway
  • Multiple language support (English, French)
  • Multiple pagination options (Classic pagination with next and previous buttons, infinite scroll)
  • Responsive backend 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

Frontend

Backend

Mobile App

Resources

  1. Overview
  2. Architecture
  3. Installing
  4. Installing on VPS
  5. Setup Stripe
  6. Docker
    1. Docker Image
    2. SSL
  7. Build Mobile App
  8. Demo Database
    1. Windows, Linux and macOS
    2. Docker
  9. Run from Source
  10. Run Mobile App
    1. Prerequisites
    2. Instructions
    3. Push Notifications
  11. Change Currency
  12. Add New Language
  13. Unit Tests and Coverage
  14. Logs

License

BookCars is MIT licensed.

bookcars's People

Contributors

aelassas avatar bookcars avatar dependabot[bot] avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

bookcars's Issues

Middleware

Hi! So while I was editing the database, I realised that when I change the car values in the database, the front end cars do not show anymore. However, the changes are reflected on the backend. So when I update the car changes from the backend, the front end will reflect after that. How do i remove this middleware that's passing message from backend to frontend? and enable the frontend to get the data from the database directly?

./gradlew clean give this error

i can't run mobile app successfully so i try to run command ./gradlew clean on android folder and got this


* What went wrong:
A problem occurred configuring project ':app'.
> Could not determine the dependencies of null.
   > Could not resolve all task dependencies for configuration ':app:classpath'.
      > Could not find com.google.code.gson:gson:2.8.5.
        Searched in the following locations:
          - https://dl.google.com/dl/android/maven2/com/google/code/gson/gson/2.8.5/gson-2.8.5.pom
        If the artifact you are trying to retrieve can be found in the repository but without metadata in 'Maven POM' format, you need to adjust the 'metadataSources { ... }' of the repository declaration.
        Required by:
            project :app > com.google.gms:google-services:4.3.12
      > Could not find com.google.guava:guava:27.0.1-jre.
        Searched in the following locations:
          - https://dl.google.com/dl/android/maven2/com/google/guava/guava/27.0.1-jre/guava-27.0.1-jre.pom
        If the artifact you are trying to retrieve can be found in the repository but without metadata in 'Maven POM' format, you need to adjust the 'metadataSources { ... }' of the repository declaration.
        Required by:
            project :app > com.google.gms:google-services:4.3.12
            project :app > com.google.gms:google-services:4.3.12 > com.google.android.gms:strict-version-matcher-plugin:1.2.4
      > Could not find com.google.code.findbugs:jsr305:3.0.2.
        Searched in the following locations:
          - https://dl.google.com/dl/android/maven2/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.pom
        If the artifact you are trying to retrieve can be found in the repository but without metadata in 'Maven POM' format, you need to adjust the 'metadataSources { ... }' of the repository declaration.
        Required by:
            project :app > com.google.gms:google-services:4.3.12 > com.google.android.gms:strict-version-matcher-plugin:1.2.4
      > Could not find org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.4.10.
        Searched in the following locations:
          - https://dl.google.com/dl/android/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.4.10/kotlin-stdlib-jdk8-1.4.10.pom
        If the artifact you are trying to retrieve can be found in the repository but without metadata in 'Maven POM' format, you need to adjust the 'metadataSources { ... }' of the repository declaration.
        Required by:
            project :app > com.google.gms:google-services:4.3.12 > com.google.android.gms:strict-version-matcher-plugin:1.2.4

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 1m 25s
6 actionable tasks: 6 executed

code=exited, status=203/EXEC

bookcars.service - BookCars API
Loaded: loaded (/etc/systemd/system/bookcars.service; enabled; vendor preset: enabled)
Active: activating (auto-restart) (Result: exit-code) since Wed 2023-05-03 19:49:37 PDT; 10ms ago
Process: 26827 ExecStart=/usr/bin/node -r dotenv/config app.js (code=exited, status=203/EXEC)
Main PID: 26827 (code=exited, status=203/EXEC)
BookCars API deployed in 0 minutes and 3 seconds.
Deploying BookCars backend...

How do I debug this error when I was following your instructions for installation, thanks!

Unble to get locations in the android app

i have run the app but on the index screen i am unable to get locations it doesnt show any suggestions and i have sucessfully run api and connected the database also so help me with the above concen

VPS HOWTO

Hello,

Would be very important to have a install HOWTO for Apache with VPS.

I tried but was too complicated.

Thank you.

Error install

I have an error that i cant understand why is happening

"1388 timing reify:rollback:retireShallow Completed in 237ms
1389 timing command:install Completed in 5714ms
1390 verbose stack Error: ENOTEMPTY: directory not empty, rename '/opt/bookcars/frontend/node_modules/ajv-formats' -> '/opt/bookcars/frontend/node_modules/.ajv-formats-RUOYCnfG'
1391 verbose cwd /opt/bookcars/frontend
1392 verbose Linux 6.1.0-17-cloud-amd64
1393 verbose node v18.19.0
1394 verbose npm v9.2.0
1395 error code ENOTEMPTY
1396 error syscall rename
1397 error path /opt/bookcars/frontend/node_modules/ajv-formats
1398 error dest /opt/bookcars/frontend/node_modules/.ajv-formats-RUOYCnfG
1399 error errno -39
1400 error ENOTEMPTY: directory not empty, rename '/opt/bookcars/frontend/node_modules/ajv-formats' -> '/opt/bookcars/frontend/node_modules/.ajv-formats-RUOYCnfG'
1401 verbose exit -39
1402 timing npm Completed in 5788ms
1403 verbose unfinished npm timer reify 1713129007276
1404 verbose unfinished npm timer reify:retireShallow 1713129012202
1405 verbose code -39
1406 error A complete log of this run can be found in:"

how to solve this error

file:///E:/bookcars/api/server.js:18
const DB_SSL = process.env.BC_DB_SSL.toLowerCase() === 'true'
^

TypeError: Cannot read properties of undefined (reading 'toLowerCase')
at file:///E:/bookcars/api/server.js:18:38
at ModuleJob.run (node:internal/modules/esm/module_job:194:25)

Node.js v18.16.1
[nodemon] app crashed - waiting for file changes before starting...

bookcars.service - BookCars API (Failed to start)

Hey team, I was trying to install the project on my local machine running Ubuntu 22.04.4, everything went well until the step where i have to check if the bookcars.service is active. I have tried to restart but i cant start the service. kindly help. am getting this error

× bookcars.service - BookCars API
Loaded: loaded (/etc/systemd/system/bookcars.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Mon 2024-06-24 23:40:51 EAT; 15s ago
Process: 40499 ExecStart=/usr/bin/npm start (code=exited, status=1/FAILURE)
Main PID: 40499 (code=exited, status=1/FAILURE)
CPU: 1.143s

Jun 24 23:40:51 OGOLA systemd[1]: bookcars.service: Failed with result 'exit-code'.
Jun 24 23:40:51 OGOLA systemd[1]: bookcars.service: Consumed 1.143s CPU time.
Jun 24 23:40:51 OGOLA systemd[1]: bookcars.service: Scheduled restart job, restart counter is at 5.
Jun 24 23:40:51 OGOLA systemd[1]: Stopped BookCars API.
Jun 24 23:40:51 OGOLA systemd[1]: bookcars.service: Consumed 1.143s CPU time.
Jun 24 23:40:51 OGOLA systemd[1]: bookcars.service: Start request repeated too quickly.
Jun 24 23:40:51 OGOLA systemd[1]: bookcars.service: Failed with result 'exit-code'.
Jun 24 23:40:51 OGOLA systemd[1]: Failed to start BookCars API.

api issue on user signUp

Hello, While trying to install your solution locally to test it out,

It appears that in your documentation, at the admin sign-up part i am getting this error in the API containter :

[user.signup] Échec de la requête dans la base de données : [object Object] [Error: D07B66BCAAAA0000:error:0A000410:SSL routines:ssl3_read_bytes:sslv3 alert handshake failure:../deps/openssl/openssl/ssl/record/rec_layer_s3.c:1586:SSL alert number 40
2024-01-18T13:10:02.844802500Z ] {
2024-01-18T13:10:02.844807708Z library: 'SSL routines',
2024-01-18T13:10:02.844809333Z reason: 'sslv3 alert handshake failure',
2024-01-18T13:10:02.844810833Z code: 'ESOCKET',
2024-01-18T13:10:02.844812583Z command: 'CONN'
2024-01-18T13:10:02.844813916Z }

can you help?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.