Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/mesbol6647/be-06-rentacar-api-

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.
https://github.com/mesbol6647/be-06-rentacar-api-

authorization customfiltering distinct permission-manager token-based-authentication

Last synced: 9 days ago
JSON representation

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.

Awesome Lists containing this project

README

        

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


Technologies
Getting Started
Collaborators
Contribute


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](./erdRentACarAPI.png)

---

💻 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

```bash
git clone
```

Starting

How to start your project

```bash
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](https://www.atlassian.com/br/git/tutorials/making-a-pull-request)

[💾 Commit pattern](https://gist.github.com/joshbuchea/6f47e86d2510bce28f8e7f42ae84c716)

### 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
```