Это API Благотворительного фонда поддержки котиков. Фонд собирает пожертвования на различные целевые проекты: на медицинское обслуживание нуждающихся хвостатых, на обустройство кошачьей колонии в подвале, на корм оставшимся без попечения кошкам — на любые цели, связанные с поддержкой кошачьей популяции.
- возможность регистрации пользователей,
- добавление благотворительных проектов и пожертвований, которые распределяются по открытым проектам.
- создание нового суперпользователя при первом запуске проекта.
- возможность формирования отчёта в вашем Google-аккаунте в виде таблицы.
Владимир Васильев | chem1sto
- Python 3.10.6
- FastAPI 0.78.0
- FastAPI-Users 10.0.4
- SQLAlchemy 1.4.36
- Alembic 1.7.7
- Uvicorn 0.17.6
- Aiogoogle 4.2.0
- Склонировать репозиторий:
git clone git@github.com:chem1sto/QRkot_spreadsheets.git
- Создать и активировать виртуальное окружение:
python3 -m venv venv source venv/bin/activate pip install -r requirements.txt
- Создать в корневой директории файл .env. Его необходимо заполнить согласно полученного Json ключа в Google Cloud Platform, создав сервисный аккаунт:
APP_TITLE=QRKot DESCRIPTION=Приложение для Благотворительного фонда поддержки котиков DATABASE_URL=sqlite+aiosqlite:///./<название базы данных>.db FIRST_SUPERUSER_EMAIL=<email суперюзера> FIRST_SUPERUSER_PASSWORD="<пароль суперюзера>" SECRET="<секретное слово>" EMAIL="<адрес Вашей электронной почты от Google-аккаунта>" TYPE="service_account" PROJECT_ID="<Ваш google project id>" PRIVATE_KEY_ID="<Ваш private key id>" PRIVATE_KEY="-----BEGIN PRIVATE KEY-----\n<Ваш private_key>\n-----END PRIVATE KEY-----\n" CLIENT_EMAIL="<Ваша электронная почта сервисного google-клиента>" CLIENT_ID="<Ваш сервисный google-клиент id>" AUTH_URI="https://accounts.google.com/o/oauth2/auth" TOKEN_URI="https://oauth2.googleapis.com/token" AUTH_PROVIDER_X509_CERT_URL="https://www.googleapis.com/oauth2/v1/certs" CLIENT_X509_CERT_URL="<Ваш google-клиент x509 cert url>"
- Применить миграции для создания базы данных SQLite:
alembic upgrade head
- Проект готов к запуску.
Для локального запуска выполните команду:
uvicorn app.main:app --reload
Сервис будет запущен и доступен по следующим адресам:
- http://127.0.0.1:8000 - API
- http://127.0.0.1:8000/docs - автоматически сгенерированная документация Swagger
- http://127.0.0.1:8000/redoc - автоматически сгенерированная документация ReDoc
После запуска доступны следующие эндпоинты:
- Регистрация и аутентификация:
- /auth/register - регистрация пользователя
- /auth/jwt/login - аутентификация пользователя (получение jwt-токена)
- /auth/jwt/logout - выход (сброс jwt-токена)
- Пользователи:
- /users/me - получение и изменение данных аутентифицированного пользователя
- /users/{id} - получение и изменение данных пользователя по id
- Благотворительные проекты:
- /charity_project/ - получение списка проектов и создание нового
- /charity_project/{project_id} - изменение и удаление существующего проекта
- Пожертвования:
- /donation/ - получение списка всех пожертвований и создание пожертвования
- /donation/my - получение списка всех пожертвований аутентифицированного пользователя
- Google-отчёт:
- /google/ - формирование отчёта в вашем Google-аккаунте в виде таблицы