▌ Описание ℹ️
Задача проекта QRKot - освоить фреймворк FastAPI. В результате работы было написано api-приложение с логикой инвестирования благотворительных проектов.
▌ Функции приложения
- Регистрация, аутентифицация и авторизация пользователей
- Создание благотворительных проектов (для суперпользователя)
- Создание пожертвований (для зарегистрированных пользователей)
- Автоматическое распределение свободных средств из пожертвований в благотворительные проекты
- Создание отчёта по закрытым проектам в Google Sheets (для суперпользователя)
▌ Стек технологий
- Python(FastAPI, SQLAlchemy, Alembic)
- Git (система контроля версий)
▌ Установка и запуск 🛠️
- Клонируйте репозиторий:
git clone https://github.com/DmitryAlexandrov91/fastapi_example.git
-
Разверните виртуальное окружение и установите зависимости из файла requiremetns.txt (проект разработан на версии Python 3.19)
-
Создайте файл .env с необходимыми для работы приложения переменными окружения.
- APP_TITLE=Благотворительный фонд поддержки котиков QRKot
- DATABASE_URL=sqlite+aiosqlite:///./fastapi.db (вместо fastapi можно выбрать любое название БД)
- SECRET=секретное слово для генерации ключей авторизации
- FIRST_SUPERUSER_EMAIL=почта суперюзера
- FIRST_SUPERUSER_PASSWORD=пароль суперпасуперюзерароль
Для создания отчётов в google таблицах создайте необходимые переменные окружения с учётными данными проекта google cloud
- TYPE=...
- PROJECT_ID=...
- PRIVATE_KEY_ID=...
- PRIVATE_KEY=ваш приватный ключ(с символами переноса строки \n)
- CLIENT_EMAIL=...
- CLIENT_ID=...
- AUTH_URI=...
- TOKEN_URI=...
- AUTH_PROVIDER_X509_CERT_URL=...
- CLIENT_X509_CERT_URL=...
- UNIVERSE_DOMAIN=...
И переменную с почтой пользователя, которому будет предоставлен доступ к google таблице
- EMAIL=...
- Для создания чистой базы данных удалите или переместите существующий файл с бд. В корневой директории в папке alembic/versions удалите файлы миграций. Cоздайте файл миграций:
alembic revision --autogenerate -m "ваш комментарий"
Примените миграции:
alembic upgrade head
В корневой директории проекта появится файл с чистой базой данных
- Запустите приложение
uvicorn app.main:app
В базе данных автоматически создатся пользователь с правами суперпользователя с данными, переданными в полях FIRST_SUPERUSER_EMAIL и FIRST_SUPERUSER_PASSWORD в файле .env
- Проект доступен по адресу http://127.0.0.1:8000
Документация по всем доступным эндпоинтам - http://127.0.0.1:8000/docs
▌ Автор 📝
Александров Дмитрий
GitHub
Telegram
Habr Career