https://github.com/wellwe11well/ibook
Бэкенд часть книжного маркетплейса, написанная на FastAPI
https://github.com/wellwe11well/ibook
alembic dokcer fastapi grafana gunicorn nginx postgresql prometheus pytest rabbitmq redis sentry sqlalchemy
Last synced: 3 months ago
JSON representation
Бэкенд часть книжного маркетплейса, написанная на FastAPI
- Host: GitHub
- URL: https://github.com/wellwe11well/ibook
- Owner: wellwe11well
- Created: 2025-04-17T18:42:23.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-06-14T10:05:43.000Z (about 1 year ago)
- Last Synced: 2025-06-27T12:01:31.637Z (12 months ago)
- Topics: alembic, dokcer, fastapi, grafana, gunicorn, nginx, postgresql, prometheus, pytest, rabbitmq, redis, sentry, sqlalchemy
- Language: Python
- Homepage:
- Size: 111 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# iBook
__Backend__ часть для книжного маркетплейса `ibook`, написаная на современном асинхронном `FastAPI`. Так же используются __PostgreSQL, Redis, RabbitMQ, Celery, Alembic, SQLAlchemy, pytest, gunicorn, Docker, Prometheus, Grafana, Sentry__. Дополнительно проект настроен на использование `Stripe` для оплаты заказов на книги.
## Установка
```bash
git clone https://github.com/wellwe11well/ibook
cd ibook
docker-compose up
```
Проект будет запущен в продакшен режиме на `http://localhost`:
1. `http://localhost/api` - API
2. `http://localhost/docs` - OpenAPI документация
3. `http://localhost:3000` - Grafana (admin : admin)
4. `http://localhost:5050` - pgAdmin (admin@example.com : admin123)
## Функционал
Пользователи имеют роли и соответствующие ролям права:
1. `ADMIN`
2. `SELLER`
3. `CUSTOMER`
Реализована логика:
1. Заказов книг
2. Oтзывов на книги,
3. Kатегорий книг
4. Aдресов покупателей
5. Oплаты заказов через `Stripe`
6. Логин, регистрация, сброс пароля и верификация аккаунта с помощью `FastAPI-Users` и отложенных задач.
`70%` логики покрыты тестами `pytest` (согласно `pytest-cov`). Так же используется технология кэширования.