Skip to content

valerashankorenko/QRkot_spreadsheets

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

QRKot

О проекте

QRkot - это API сервиса по сбору средств для финансирования Благотворительного фонда поддержки котиков.Фонд собирает пожертвования на различные целевые проекты: на медицинское обслуживание нуждающихся хвостатых, на обустройство кошачьей колонии в подвале, на корм оставшимся без попечения кошкам — на любые цели, связанные с поддержкой кошачьей популяции.

В сервисе реализована возможность регистрации пользователей, добавления благотворительных проектов и пожертвований, которые распределяются по открытым проектам.

Настроено автоматическое создание первого суперпользователя при запуске проекта.

Добавлена возможность формирования отчёта в гугл-таблице с помощью сервисов Google Cloud Platform:

  • Google Sheets API - управление электронными таблицами
  • Google Drive API - упрвление файлами на гугл-диске

Автор проекта:

Валерий Шанкоренко
Github: Valera Shankorenko
Telegram:@valeron007
E-mail:valerashankorenko@yandex.by

Стек технологий

Как запустить проект:

  1. Клонировать репозиторий и перейти в его директорию в командной строке:
git clone git@github.com:valerashankorenko/QRkot_spreadsheets.git
cd QRkot_spreadsheets
  1. Cоздать и активировать виртуальное окружение:
  • для Linux/MacOS
python3 -m venv venv
source venv/bin/activate
  • для Windows
python -m venv venv
source venv/Scripts/activate
  1. Обновить пакетный менеджер pip
python3 -m pip install --upgrade pip
  1. Установить зависимости из файла requirements.txt:
pip install -r requirements.txt
  1. Создайте в корневой директории файл .env со следующим наполнением:
APP_TITLE=Приложение QRKot.
APP_DESC=Благотворительный фонд для сбора пожертвований.
DATABASE_URL=sqlite+aiosqlite:///./<название базы данных>.db
SECRET=<секретное слово>
FIRST_SUPERUSER_EMAIL=<email суперюзера>
FIRST_SUPERUSER_PASSWORD=<пароль суперюзера>
#Вводим данные сервисного гугл аккаунта
TYPE=service_account
PROJECT_ID=
PRIVATE_KEY_ID=
PRIVATE_KEY=
CLIENT_EMAIL=
CLIENT_ID=
AUTH_URI=
TOKEN_URI=
AUTH_PROVIDER_X509_CERT_URL=
CLIENT_X509_CERT_URL=
UNIVERSE_DOMAIN=
EMAIL=email гугл аккаунта
  1. Автоматическое создание файла миграции для базы данных SQLite:
alembic revision --autogenerate -m "Название миграции" 
  1. Применение всех неприменённых миграций:
alembic upgrade head
  1. Запуск проекта:
uvicorn app.main:app --reload

Проект будет запущен и доступен по следующим адресам:

После запуска доступны следующие эндпоинты:

  • Регистрация и аутентификация:
    • /auth/register - регистрация пользователя
    • /auth/jwt/login - аутентификация пользователя (получение jwt-токена)
    • /auth/jwt/logout - выход (сброс jwt-токена)
  • Пользователи:
    • /users/me - получение и изменение данных аутентифицированного пользователя
    • /users/{id} - получение и изменение данных пользователя по id
  • Благотворительные проекты:
    • /charity_project/ - получение списка проектов и создание нового
    • /charity_project/{project_id} - изменение и удаление существующего проекта
  • Пожертвования:
    • /donation/ - получение списка всех пожертвований и создание пожертвования
    • /donation/my - получение списка всех пожертвований аутентифицированного пользователя
  • GoogleAPI:
    • /google/ - создание отчёта в гугл-таблице