antonata-c / QRkot_charity_fund

Сервис фонда поддержки домашних животных QRKot

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Сервис фонда пожертвования QRKot

Используемые технологии:

  • Python 3.10
  • FastAPI
  • Alembic
  • Pydantic
  • SQLAlchemy
  • Aiogoogle API

Описание проекта

Фонд собирает пожертвования на различные целевые проекты:

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

Проекты

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

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

Пожертвования

Каждый пользователь может сделать пожертвование и сопроводить его комментарием. Пожертвования не целевые: они вносятся в фонд, а не в конкретный проект.

Каждое полученное пожертвование автоматически добавляется в первый открытый проект, который ещё не набрал нужную сумму. Если пожертвование больше нужной суммы или же в Фонде нет открытых проектов — оставшиеся деньги ждут открытия следующего проекта.

При создании нового проекта все неинвестированные пожертвования автоматически вкладываются в новый проект.

Подготовка

Клонировать репозиторий и перейти в него в командной строке:
git clone https://github.com/antonata-c/cat_charity_fund.git
cd cat_charity_fund
Cоздать и активировать виртуальное окружение:
  • Если у вас Linux/macOS
    python3 -m venv venv
    source venv/bin/activate
    
  • Если у вас windows
    python -m venv venv
    source venv/Scripts/activate
    
Установить зависимости из файла requirements.txt:
python3 -m pip install --upgrade pip
pip install -r requirements.txt
Создайте файл .env, содержащий переменные окружения, пример представлен в файле .env.example

Развертывание и запуск

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

Проект готов к использованию!

Ссылка на документацию (OpenAPI)

Для просмотра документации загрузите файл на сайт https://redocly.github.io/redoc/. Вверху страницы есть кнопка Upload a file, нажмите её и загрузите скачанный файл. Спецификация проекта отобразится в формате ReDoc.

Также документация доступна при запущенном сервере по адресам:

Swagger ReDoc


Автор работы:

Антон Земцов

About

Сервис фонда поддержки домашних животных QRKot


Languages

Language:Python 99.4%Language:Mako 0.6%