Skip to content

API сервис благотворительного фонда

Notifications You must be signed in to change notification settings

avpech/QRkot_spreadsheets

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Спринт 23 - QRKot + google_sheets


Описание

QRKot - приложение для Благотворительного фонда поддержки котиков. Фонд собирает пожертвования на различные целевые проекты: на медицинское обслуживание нуждающихся хвостатых, на обустройство кошачьей колонии в подвале, на корм оставшимся без попечения кошкам — на любые цели, связанные с поддержкой кошачьей популяции. В Фонде QRKot может быть открыто несколько целевых проектов. У каждого проекта есть название, описание и сумма, которую планируется собрать. После того, как нужная сумма собрана — проект закрывается. Каждый пользователь может сделать пожертвование и сопроводить его комментарием. Пожертвования не целевые: они вносятся в фонд, а не в конкретный проект. Каждое полученное пожертвование автоматически добавляется в первый открытый проект, который ещё не набрал нужную сумму. Если пожертвование больше нужной суммы или же в Фонде нет открытых проектов — оставшиеся деньги ждут открытия следующего проекта. При создании нового проекта все неинвестированные пожертвования автоматически вкладываются в новый проект.

Стек технологий использованный в проекте:

  • Python 3.9
  • FastAPI
  • SQLAlchemy
  • Alembic
  • Aiogoogle

Локальная установка и запуск сервиса

  • Клонировать репозиторий и перейти в него в командной строке.
  • Установить и активировать виртуальное окружение c учетом версии Python 3.9:
py -3.9 -m venv venv
source venv/Scripts/activate
  • Установить все зависимости из файла requirements.txt
python -m pip install --upgrade pip
pip install -r requirements.txt
  • В корне проекта создать файл .env со следующими переменными
DATABASE_URL=sqlite+aiosqlite:///./fastapi.db
SECRET=<набор произвольных символов>

Примечание: если не указать DATABASE_URL, то будет использовано зачение по умолчанию sqlite+aiosqlite:///./fastapi.db

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

FIRST_SUPERUSER_EMAIL=<email>
FIRST_SUPERUSER_PASSWORD=<password>

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

  • Выполнить миграции
alembic upgrade head
  • Запустить сервис
uvicorn app.main:app

Сервис будет доступен по адресу http://localhost:8000

API сервиса

После запуска сервиса документацию к API можно увидеть по адресам:

Об авторе

Артур Печенюк

About

API сервис благотворительного фонда

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published