Проект 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 git@github.com: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": "user@example.com",
"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