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

https://github.com/pacmancity/bookingexperts

BookingExperts - πŸ¨πŸ“… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для бронирования ΠΎΡ‚Π΅Π»Π΅ΠΉ. ΠœΠ³Π½ΠΎΠ²Π΅Π½Π½Ρ‹Π΅ Ρ€Π΅Π·Π΅Ρ€Π²Π°Ρ†ΠΈΠΈ ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ бронями. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π±Π°Π·Π΅ FastAPI ΠΈ SQLAlchemy, с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ… PostgreSQL
https://github.com/pacmancity/bookingexperts

alembic asyncpg fast-api passlib postgresql python python-jose sql-alchemy

Last synced: 11 months ago
JSON representation

BookingExperts - πŸ¨πŸ“… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для бронирования ΠΎΡ‚Π΅Π»Π΅ΠΉ. ΠœΠ³Π½ΠΎΠ²Π΅Π½Π½Ρ‹Π΅ Ρ€Π΅Π·Π΅Ρ€Π²Π°Ρ†ΠΈΠΈ ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ бронями. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π±Π°Π·Π΅ FastAPI ΠΈ SQLAlchemy, с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ… PostgreSQL

Awesome Lists containing this project

README

          

# BookingExperts

### АдрСс Π²Π΅Π±-сайта: [BookingExperts](http://kluev.dynnamn.ru/hotels)

## Π‘Ρ‚Π΅ΠΊ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

![Python](https://img.shields.io/badge/python-3.10-blue.svg?style=for-the-badge&logo=python&logoColor=ffdd54)
![FastAPI](https://img.shields.io/badge/fastapi-0.103.2-blue.svg?style=for-the-badge)
![SQLAlchemy](https://img.shields.io/badge/sqlalchemy-2.0.21-blue.svg?style=for-the-badge)
![Alembic](https://img.shields.io/badge/alembic-1.12.0-blue.svg?style=for-the-badge)
![asyncpg](https://img.shields.io/badge/asyncpg-0.28.0-blue.svg?style=for-the-badge)
![python-jose](https://img.shields.io/badge/python--jose-3.3.0-blue.svg?style=for-the-badge)
![passlib](https://img.shields.io/badge/passlib-1.7.4-blue.svg?style=for-the-badge)
![fastapi-cache2](https://img.shields.io/badge/fastapi--cache2-0.2.1-blue.svg?style=for-the-badge)
![celery](https://img.shields.io/badge/celery-5.3.4-blue.svg?style=for-the-badge)
![flower](https://img.shields.io/badge/flower-2.0.1-blue.svg?style=for-the-badge)
![pillow](https://img.shields.io/badge/pillow-10.1.0-blue.svg?style=for-the-badge)
![sqladmin](https://img.shields.io/badge/sqladmin-0.15.2-blue.svg?style=for-the-badge)
![pytest](https://img.shields.io/badge/pytest-7.4.3-blue.svg?style=for-the-badge)
![pytest-asyncio](https://img.shields.io/badge/pytest--asyncio-0.21.1-blue.svg?style=for-the-badge)
![gunicorn](https://img.shields.io/badge/gunicorn-21.2.0-blue.svg?style=for-the-badge)
![Nginx](https://img.shields.io/badge/nginx-1.19.3-blue.svg?style=for-the-badge&logo=nginx&logoColor=11FF44)
![PostgreSQL](https://img.shields.io/badge/postgreSQL-15.0-blue.svg?style=for-the-badge&logo=postgresql&logoColor=66EEFF)
![Docker](https://img.shields.io/badge/docker-24.0.5-blue.svg?style=for-the-badge&logo=docker&logoColor=33AAFF)
[![Docker-compose](https://img.shields.io/badge/Docker%20compose-2.10.0-blue?style=for-the-badge&logo=Docker&logoColor=white)](https://www.docker.com/)
[![ЛицСнзия](https://img.shields.io/github/license/kluev-evga/BookingExperts?color=blue&style=for-the-badge&labelColor=333333&logo=github)](https://github.com/kluev-evga/BookingExperts/blob/master/LICENSE)
[![Π Π°Π·ΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°](https://img.shields.io/github/languages/code-size/kluev-evga/BookingExperts?style=for-the-badge&labelColor=333333&logo=github)](https://github.com/kluev-evga/BookingExperts)

## О ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅:

BookingExperts - это Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠ΅ для ΡƒΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ бронирования ΠΈ управлСния бронями Π² гостиницах. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚
создан с Ρ†Π΅Π»ΡŒΡŽ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠ΅ ΠΈ эффСктивноС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для управлСния бронями ΠΈ бронирования Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ².

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ:

* Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π’Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ: BookingExperts построСн Π½Π° основС Π²Ρ‹ΡΠΎΠΊΠΎΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° FastAPI ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚
PostgreSQL Π² качСствС Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠΉ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, взаимодСйствуя с ΠΌΠΎΡ‰Π½Ρ‹ΠΌ SQLAlchemy.

* ΠœΠ³Π½ΠΎΠ²Π΅Π½Π½Ρ‹Π΅ Π Π΅Π·Π΅Ρ€Π²Π°Ρ†ΠΈΠΈ: ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ прСдоставляСт ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌ быстрый ΠΈ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ способ бронирования Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ² ΠΈ
Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… услуг.

* АутСнтификация ΠΈ Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ: ΡƒΠ΄Π΅Π»Π΅Π½ΠΎ большоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ бСзопасности Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ соврСмСнныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹
Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Π·Π°Ρ‰ΠΈΡ‚Ρƒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ.

Для запуска Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ Ρ„Π°ΠΉΠ» .env Π² ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ с ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ:

```plaintext
DB_HOST= # НапримСр, localhost
DB_PORT= # НапримСр, 5432
DB_USER= # НапримСр, postgres
DB_PASS= # НапримСр, postgres
DB_NAME= # НапримСр, booking

SECRET_KEY= # МоТно ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹: openssl rand -base64 32
ALGORITHM= # НапримСр, HS256

TEST_DB_HOST=localhost
TEST_DB_PORT=5432
TEST_DB_USER=booking
TEST_DB_PASS=admin
TEST_DB_NAME=test

REDIS_HOST='localhost'
REDIS_PORT=6379

SMTP_HOST=smtp.gmail.com
SMTP_PORT=465
SMTP_USER=
SMTP_PASSWORD=
```

Для Π½Π°Ρ‡Π°Π»Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹, создайтС ΡƒΠΊΠ°Π·Π°Π½Π½ΡƒΡŽ Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… Π² PostgreSQL, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, с ΠΈΠΌΠ΅Π½Π΅ΠΌ "booking". Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ шаги:

1. ЗапуститС PostgreSQL с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ Π² .env:
```
sudo -u postgres psql
```

2. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… "booking":
```
CREATE DATABASE booking;
```

3. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ создана:
```
\l
```

4. Π’Ρ‹ΠΉΠ΄ΠΈΡ‚Π΅ ΠΈΠ· psql:
```
\q
```

5. Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Alembic:
```
alembic revision --autogenerate -m 'initial' # ГСнСрация ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΉ
alembic upgrade head # ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΉ
```

## ЛицСнзия πŸ“œ

Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ распространяСтся ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ `Apache License`. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ
Π² [LICENSE](https://github.com/kluev-evga/BookingExperts/blob/master/LICENSE).