Вымышленный благотворительный фонд поддержки котиков QRKot собирает пожертвования на всевозможные задачи, связанные с помощью кошачьей популяции: на корм, на медицинское обслуживание, организацию приютов и на другую помощь котам, кошкам и котятам.
В проекте реализована регистрация пользователей, персонализация пожертвований и разграничение прав доступа.
- Благотворительные проекты (charity_projects)
- Просмотреть список всех целевых проектов (доступно всем пользователям, включая анонимных)
- Создать целевой проект (только суперпользователи)
- Редактировать целевой проект (только суперпользователи)
- Удалить целевой проект (только суперпользователи)
- Пожертвования (donations)
- Просмотреть список всех пожертвований (только суперпользователи)
- Создать пожертвование (только авторизованные пользователи)
- Просмотреть список своих пожертвований (только авторизованные пользователи)
- Авторизация (auth)
- Логин (получение JWT токена)
- Logout (только авторизованные пользователи)
- Регистрация
- Пользователи (users)
- Получить данные о текущем пользователе (только авторизованные пользователи)
- Изменить данные текущего пользователя (только авторизованные пользователи)
- Получить данные пользователя по id (только суперпользователи)
- Обновить данные пользователя по id (только суперпользователи)
- Google
- Формирование отчета в Google Sheets (только суперпользователи)
- Удалять пользователей,
- Редактировать или удалять пожертвования,
- Редактировать или удалять закрытые проекты,
- Удалять проекты, в которые инвестированы средства,
- Изменять даты создания и закрытия проектов.
- Склонируйте репозиторий:
git clone https://github.com/levinadev/QRkot_spreadsheets.git
cd QRkot_spreadsheets
- Настройте переменные окружения:
cp .env.example .env
(Замените значения на свои)
- Установите зависимости:
uv sync
- Примените миграции:
alembic upgrade head
- Запустите API:
uvicorn app.main:app --reload
-
После запуска документация доступна по адресу: http://localhost:8000/docs
-
Для остановки нажмите в консоли
CTRL+C
- Создайте
.env:
cp .env.example .env
- Запустите контейнеры:
docker compose -f docker-compose.production.yml up -d --build
- API-документация будет доступна по адресу:
http://localhost:8012/docs
- Остановка:
docker compose -f docker-compose.production.yml down
- Создать проект
POST /charity_project/
{
"name": "Новый дом для котиков",
"description": "Строим большой дом для 20 котов",
"full_amount": 5000
}
- Получить все проекты
GET /charity_project/
- Обновить проект
PATCH /charity_project/{project_id}
{
"name": "Обновлённый проект",
"full_amount": 8000
}
- Удалить проект
DELETE /charity_project/{project_id}
- Создать пожертвование
POST /donation/
{
"full_amount": 2000,
"comment": "От доброго человека"
}
- Получить все пожертвования
GET /donation/all
- Получить пожертвование текущего пользователя
GET /donation/my
- Login
POST /auth/login
{
"username": "user@example.com",
"password": "password123"
}
- Logout
POST /auth/logout- (требуется передавать токен в заголовке Authorization: Bearer )
- Регистрация
POST /auth/register
{
"email": "user@example.com",
"password": "string",
"is_active": true,
"is_superuser": false,
"is_verified": false
}
- Получить данные о текущем пользователе
GET /users/me
- Изменить данные текущего пользователя
PATCH /users/me
{
"email": "updated@example.com"
}
- Получить данные пользователя по id
GET /users/{user_id}
- Обновить данные пользователя по id
PATCH /users/{user_id}
{
"is_active": false
}
- Сформировать отчет в Google Sheets
POST /google/
- Python 3.9
- FastAPI
- FastAPI Users
- SQLAlchemy (async)
- Alembic
- Pydantic
- Uvicorn
- SQLite (aiosqlite)
- uv (менеджер зависимостей)
- Имя: Анна
- Email: anna45dd@yandex.ru
- GitHub: https://github.com/levinadev