Skip to content

Rent a Car Project offers streamlined access to a vast network of global accommodations, enabling real-time booking and detailed information retrieval. Ideal for enhancing travel platforms and booking systems, it simplifies integration and boosts operational efficiency.

Notifications You must be signed in to change notification settings

mesbol6647/BE-06-RENTACAR-API-

Repository files navigation

BE-06 Project(RENT A CAR-API) Image Example Image Example Image Example

TechnologiesGetting StartedCollaboratorsContribute

Description

Rent A Car Project

  • Customers;

    • can select start and end date and see the list of available cars on selected dates.
    • can not reserve cars which are reserved by other customers on selected time period.
    • can choose a car on the list and reserve that car, but can not reserve more than one car on a selected time period,
    • can see the list of their reservations including past ones.
    • can list, create, read their reservations.
    • can not update, delete reservations.
  • Admins;

    • can make CRUD operations on Car table,
    • can make CRUD operations on Customer (User) table,
    • can make CRUD operations on Reservation table,
  • It can be createdId and updatedId in Car model.

  • There will be searching, sorting and pagination capabilities on list views.


Araç Kiralama Projesi

  • Müşteriler:

    • Tarih aralığı belirtip müsait araç listeleyebilir.
    • Rezerve edilmiş bir aracı, o tarihlerde rezerve edemez.
    • Seçilen tarih aralığında araç rezerve edilebilir, ancak aynı tarih aralığında ikinci bir araç kiralayamaz.
    • Rezervasyonlarını listeyebilir, ekleyebilir, okuyabilir.
    • Rezervasyonlarını güncelleyemez, silemez.
  • Yöneticiler:

    • Araba tablosu CRUD işlemleri
    • Müşteri (User) tablosu CRUD işlemleri
    • Reservasyon tablosu CRUD işlemleri
  • Araba tablosunda createdId ve updatedId olabilir.

  • Listeleme ekranlarında arama, sıralama ve sayfalama imkanları olacaktır.


💻 Features

  • $or :Allows users to query the database to find documents that match any of the specified conditions.
  • $nor:Enables querying the database to find documents that do not match any of the specified conditions.
  • $nin:Provides the ability to query the database to find documents where a specified field's value is not in a given array of values.
  • distinct:Retrieves distinct values for a specified field across a single collection.
  • Custom Filter:Allows users to define and apply custom filtering logic to query the database based on specific criteria. This feature enables complex and flexible data retrieval by combining multiple conditions and logical operators.
  • Populate:Mongoose method used to replace a path in a document with actual documents from other collections. It's commonly used to reference related documents.

🎨 Layout

ERD:

ERD


💻 Technologies

  • Node.js
  • Express.js
  • MongoDB
  • Mongoose
  • Token
  • Filter Search Sorting Pagination
  • Sync
  • Multer
  • Morgan

🚀 Getting started

Here you describe how to run your project locally

Cloning

How to clone your project

git clone 

Starting

How to start your project

cd project-name
npm some-command-to-run

🤝 Collaborators

Special thank you for all people that contributed for this project.

Mesut Bolat Profile Picture
Mesut Bolat

📫 Contribute

Here you will explain how other developers can contribute to your project. For example, explaining how can create their branches, which patterns to follow and how to open an pull request

  1. git clone https://github.com/mesbol6647/BE-06-RENTACAR-API-.git
  2. git checkout -b feature/NAME
  3. Follow commit patterns
  4. Open a Pull Request explaining the problem solved or feature made, if exists, append screenshot of visual modifications and wait for the review!

Documentations that might help

📝 How to create a Pull Request

💾 Commit pattern

Folder/File Structure:

    .env
    .gitignore
    index.js
    readme.md
    src/
        configs/
            dbConnection.js
            swagger.json
        controllers/
            auth.js
            car.js
            reservation.js
            token.js
            user.js
        helpers/
            passwordEncrypt.js
            sync.js
        middlewares/
            authentication.js
            errorHandler.js
            findSearchSortPage.js
            logger.js
            permissions.js
        models/
            car.js
            reservation.js
            token.js
            user.js
        routes/
            auth.js
            car.js
            document.js
            index.js
            reservation.js
            token.js
            user.js

About

Rent a Car Project offers streamlined access to a vast network of global accommodations, enabling real-time booking and detailed information retrieval. Ideal for enhancing travel platforms and booking systems, it simplifies integration and boosts operational efficiency.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published