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 git@github.com: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": "user@example.com",
  "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
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy