Skip to content

🐾📊 Сервис для Благотворительного фонда поддержки котиков QRkot с возможностью формирования отчёта в гугл-таблице

Notifications You must be signed in to change notification settings

meteopavel/Aiogoogle_QRkot_Spreadsheets

Repository files navigation

Проект QRkot_spreadseets

Проект QRKot_spreadseets — это расширенная версия сервиса для Благотворительного фонда поддержки котиков QRkot.

Расширение базовой версии заключается в добавлении возможности формирования отчёта в гугл-таблице. В таблицу добавляются закрытые проекты, отсортированные по скорости сбора средств: от тех, что закрылись быстрее всего, до тех, что долго собирали нужную сумму.

Функционал базовой версии

В Фонде QRKot может быть открыто несколько целевых проектов. У каждого проекта есть название, описание и сумма, которую планируется собрать. После того, как нужная сумма собрана — проект закрывается.

Пожертвования в проекты поступают по принципу First In, First Out: все пожертвования идут в проект, открытый раньше других; когда этот проект набирает необходимую сумму и закрывается — пожертвования начинают поступать в следующий проект.

Для управления пользователями используется библиотека FastAPI Users. Транспорт Bearer и стратегия JWT.

Ссылка на репозиторий базовой версии

Основные используемые инструменты

  • python 3.9
  • fastapi
  • fastapi-users
  • alembic
  • uvicorn
  • sqlalchemy
  • aiogoogle
  • python-dotenv

Развёртывание проекта на локальном компьютере

  1. Клонировать репозиторий и перейти в него в командной строке:
git clone [email protected]:meteopavel/QRkot_spreadsheets.git
  1. Cоздать и активировать виртуальное окружение:
python3 -m venv venv
linux: source env/bin/activate
windows: source venv/Scripts/activate
  1. Установить зависимости из файла requirements.txt:
python3 -m pip install --upgrade pip
pip install -r requirements.txt
  1. Создать файл переменных окружения .env:
touch .env
  1. Наполнить файл переменными по образцу .env.example

Использование

  1. Применить миграции:
alembic upgrade head
  1. Запустить проект:
uvicorn app.main:app

Команда запустит сервер uvicorn. После этого ресурс станет доступен по адресу http://127.0.0.1:8000.

Пример запроса API для расширенной версии

/google/ — POST-запрос на формирование отчёта в Google-таблице;

Ожидаемый ответ:

{
  "report_url": "string"
}

Сформированная Google-таблица станет доступна на вашем личном аккаунте.

Примеры некоторых запросов API для базового функционала

/donation/ — POST-запрос на создание нового пожертвования;

Пример запроса:

{
  "full_amount": 0,
  "comment": "string"
}

Ожидаемый ответ:

{
  "full_amount": 0,
  "comment": "string",
  "id": 0,
  "create_date": "2019-08-24T14:15:22Z"
}

/users/me — GET-запрос на получение информации о текущем пользователе.

Ожидаемый ответ:

{
  "id": null,
  "email": "[email protected]",
  "is_active": true,
  "is_superuser": false,
  "is_verified": false
}
  1. Полная документация Swagger доступна по адресу: http://127.0.0.1:8000/swagger

  2. Полная документация ReDoc доступна по адресу: http://127.0.0.1:8000/redoc

Автор

Павел Найденов

About

🐾📊 Сервис для Благотворительного фонда поддержки котиков QRkot с возможностью формирования отчёта в гугл-таблице

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published