Проект QRKot_spreadseets — это расширенная версия сервиса для Благотворительного фонда поддержки котиков QRkot.
Расширение базовой версии заключается в добавлении возможности формирования отчёта в гугл-таблице. В таблицу добавляются закрытые проекты, отсортированные по скорости сбора средств: от тех, что закрылись быстрее всего, до тех, что долго собирали нужную сумму.
В Фонде QRKot может быть открыто несколько целевых проектов. У каждого проекта есть название, описание и сумма, которую планируется собрать. После того, как нужная сумма собрана — проект закрывается.
Пожертвования в проекты поступают по принципу First In, First Out: все пожертвования идут в проект, открытый раньше других; когда этот проект набирает необходимую сумму и закрывается — пожертвования начинают поступать в следующий проект.
Для управления пользователями используется библиотека FastAPI Users. Транспорт Bearer и стратегия JWT.
Ссылка на репозиторий базовой версии
- python 3.9
- fastapi
- fastapi-users
- alembic
- uvicorn
- sqlalchemy
- aiogoogle
- python-dotenv
- Клонировать репозиторий и перейти в него в командной строке:
git clone [email protected]:meteopavel/QRkot_spreadsheets.git- Cоздать и активировать виртуальное окружение:
python3 -m venv venv
linux: source env/bin/activate
windows: source venv/Scripts/activate- Установить зависимости из файла requirements.txt:
python3 -m pip install --upgrade pip
pip install -r requirements.txt- Создать файл переменных окружения .env:
touch .env- Наполнить файл переменными по образцу .env.example
- Применить миграции:
alembic upgrade head- Запустить проект:
uvicorn app.main:appКоманда запустит сервер uvicorn. После этого ресурс станет доступен по адресу http://127.0.0.1:8000.
Ожидаемый ответ:
{
"report_url": "string"
}Сформированная Google-таблица станет доступна на вашем личном аккаунте.
Пример запроса:
{
"full_amount": 0,
"comment": "string"
}Ожидаемый ответ:
{
"full_amount": 0,
"comment": "string",
"id": 0,
"create_date": "2019-08-24T14:15:22Z"
}Ожидаемый ответ:
{
"id": null,
"email": "[email protected]",
"is_active": true,
"is_superuser": false,
"is_verified": false
}-
Полная документация Swagger доступна по адресу: http://127.0.0.1:8000/swagger
-
Полная документация ReDoc доступна по адресу: http://127.0.0.1:8000/redoc