Skip to content

Проект QRkot | API Благотворительного фонда поддержки котиков

Notifications You must be signed in to change notification settings

chem1sto/QRkot_spreadsheets

Repository files navigation

Проект QRkot | API Благотворительного фонда поддержки котиков

Описание

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

Ключевые возможности сервиса:

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

Автор

Владимир Васильев | chem1sto

Техно-стек

  • Python 3.10.6
  • FastAPI 0.78.0
  • FastAPI-Users 10.0.4
  • SQLAlchemy 1.4.36
  • Alembic 1.7.7
  • Uvicorn 0.17.6
  • Aiogoogle 4.2.0

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

  1. Склонировать репозиторий:
    git clone git@github.com:chem1sto/QRkot_spreadsheets.git
  2. Создать и активировать виртуальное окружение:
    python3 -m venv venv
    source venv/bin/activate
    pip install -r requirements.txt
  3. Создать в корневой директории файл .env. Его необходимо заполнить согласно полученного Json ключа в Google Cloud Platform, создав сервисный аккаунт:
    APP_TITLE=QRKot
    DESCRIPTION=Приложение для Благотворительного фонда поддержки котиков
    DATABASE_URL=sqlite+aiosqlite:///./<название базы данных>.db
    FIRST_SUPERUSER_EMAIL=<email суперюзера>
    FIRST_SUPERUSER_PASSWORD="<пароль суперюзера>"
    SECRET="<секретное слово>"
    EMAIL="<адрес Вашей электронной почты от Google-аккаунта>"
    TYPE="service_account"
    PROJECT_ID="<Ваш google project id>"
    PRIVATE_KEY_ID="<Ваш private key id>"
    PRIVATE_KEY="-----BEGIN PRIVATE KEY-----\n<Ваш private_key>\n-----END PRIVATE KEY-----\n"
    CLIENT_EMAIL="<Ваша электронная почта сервисного google-клиента>"
    CLIENT_ID="<Ваш сервисный google-клиент id>"
    AUTH_URI="https://accounts.google.com/o/oauth2/auth"
    TOKEN_URI="https://oauth2.googleapis.com/token"
    AUTH_PROVIDER_X509_CERT_URL="https://www.googleapis.com/oauth2/v1/certs"
    CLIENT_X509_CERT_URL="<Ваш google-клиент x509 cert url>"
    
  4. Применить миграции для создания базы данных SQLite:
    alembic upgrade head
  5. Проект готов к запуску. Для локального запуска выполните команду:
    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 - получение списка всех пожертвований аутентифицированного пользователя
  • Google-отчёт:
    • /google/ - формирование отчёта в вашем Google-аккаунте в виде таблицы

About

Проект QRkot | API Благотворительного фонда поддержки котиков

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published