Фонд собирает пожертвования на различные целевые проекты: на медицинское обслуживание нуждающихся хвостатых, на обустройство кошачьей колонии в подвале, на корм оставшимся без попечения кошкам — на любые цели, связанные с поддержкой кошачьей популяции.
- Проекты
В Фонде QRKot может быть открыто несколько целевых проектов. У каждого проекта есть название, описание и сумма, которую планируется собрать. После того, как нужная сумма собрана — проект закрывается. Пожертвования в проекты поступают по принципу First In, First Out: все пожертвования идут в проект, открытый раньше других; когда этот проект набирает необходимую сумму и закрывается — пожертвования начинают поступать в следующий проект.
- Пожертвования
Каждый пользователь может сделать пожертвование и сопроводить его комментарием. Пожертвования не целевые: они вносятся в фонд, а не в конкретный проект. Каждое полученное пожертвование автоматически добавляется в первый открытый проект, который ещё не набрал нужную сумму. Если пожертвование больше нужной суммы или же в Фонде нет открытых проектов — оставшиеся деньги ждут открытия следующего проекта. При создании нового проекта все неинвестированные пожертвования автоматически вкладываются в новый проект.
Клонируйте репозиторий, перейдите в папку, создайте виртуальное окружение и активируйте:
python3 -m venv env
MacOS/Linux:
. venv/bin/activate
Windows:
. venv\Scripts\activate
Обновите менеджер пакетов (pip) и установите зависимости из файла requirements.txt:
(venv) python3 -m pip install --upgrade pip
(venv) pip install -r requirements.txt
Создать файл .env
- Если у вас Linux/MacOS
touch .env
- Если у вас Windows
type nul > .env
Заполнить файл .env:
APP_TITLE=Благотворительный фонд котиков
DESCRIPTION=Сбор пожертвований на нужды хвостатых
DATABASE_URL=your_database_url
SECRET=your_secret_key (any symbols)
Выполнить миграции:
alembic upgrade head
Выполнить запус сервиса:
uvicorn app.main:app --reload
Сервис будет доступен по адресу http://127.0.0.1:8000/
Документация по API доступна по адрессу: http://127.0.0.1:8000/swagger#/
Selivanov Dmitry