Проект QRKot — приложение для Баготворительного фонда поддержки котов
Фонд может собирать на любые проекты пожертовования.
Проекты
В Фонде QRKot может быть открыто несколько целевых проектов. У каждого проекта есть название, описание и сумма, которую планируется собрать. После того, как нужная сумма собрана — проект закрывается.
Пожертвования в проекты поступают по принципу First In, First Out: все пожертвования идут в проект, открытый раньше других; когда этот проект набирает необходимую сумму и закрывается — пожертвования начинают поступать в следующий проект
Пожертвования
Каждый пользователь может сделать пожертвование и сопроводить его комментарием. Пожертвования не целевые: они вносятся в фонд, а не в конкретный проект. Каждое полученное пожертвование автоматически добавляется в первый открытый проект, который ещё не набрал нужную сумму. Если пожертвование больше нужной суммы или же в Фонде нет открытых проектов — оставшиеся деньги ждут открытия следующего проекта. При создании нового проекта все неинвестированные пожертвования автоматически вкладываются в новый проект.
Пользователи
Целевые проекты создаются администраторами сайта.
Любой пользователь может видеть список всех проектов, включая требуемые и уже внесенные суммы. Это касается всех проектов — и открытых, и закрытых.
Зарегистрированные пользователи могут отправлять пожертвования и просматривать список своих пожертвований.
API проекта соответствует спецификации Openapi
После запуска документация по API доступна по адресами 127.0.0.1:8000/docs
по стандарту Swagger и 127.0.0.1:8000/redoc
API разделены на группы: проекты, пожертвования, пользователи
Проекты
- Просмотр существующих проектов (доступно всем).
- Создавать, удалять и обновлять проекты могут только администраторы (суперпользователи).
Пожертвования
- Просматривать существующие и создавать новые донаты могут все зарегистрированные пользователи.
- Каждый зарегистрированный пользователь может просматривать свои созданные пожертвования.
- Удалять созданные пожертвования нельзя!
Пользователи
- Зарегистрированные пользователи могут просматривать информацию о себе, обновлять данные о себе.
- Клонировать репозиторий:
git clone [email protected]:Andrey-Kugubaev/cat_charity_fund.git
и перейти в директорию проектаcat_charity_fund
Для Linux/macOS
2. Создать и активировать вирутально окружение:
python3 -m venv venv
source venv/bin/activate
3. Установить зависимости из файла requirements.txt:
python3 -m pip install --upgrade pip
pip install -r requirements.txt
4. Применить миграции:
alembic upgrade head
5. Запусить проект:
uvicorn app.main:app --reload
Для Windows
2. Создать и активировать вирутально окружение:
python -m venv venv
source venv/scripts/activate
3. Установить зависимости из файла requirements.txt:
python -m pip install --upgrade pip
pip install -r requirements.txt
4. Применить миграции:
alembic upgrade head
5. Запусить проект:
uvicorn app.main:app --reload