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 можно увидеть по адресам:
- http://localhost:8000/docs в формате Swagger
- http://localhost:8000/redoc в формате ReDoc
Артур Печенюк
- ✅ avpech