Сервис для хранения данных о пользователях
Что делает приложение?
Функционал:- Пользователь логиниться на сервисе и ему присваиваться bearer token в cookie браузера
- Работа с бд PostgreSQL
- Создавать пользователя может только админ
- К сервису к кадому эндпоинту написаны тесты
- Подключена докуменация и swagger для работы через браузер.
- Пользователь может получиться информация о себе, может ее изменять информация о себе и выводить список пользователей
- Админ может создавать, изменять, удалять и получаться постраничный список пользователей
Important
Добавлен файл .env-sample (для использования надо привести к ввиду <.env>) с помощью, которого можно настроить работу проекта. В нем лежат настройки (далее идут примеры заполнения полей):
Настройки, которые надо установить для работы приложения
| Значение | Содержание | Примечание |
|---|---|---|
| SECRET_KEY | ahrfgyu34hfy3qh4fy4hufy3qfyb3k4f | код генерируется командой, которая указана ниже |
| POSTGRES_DB | NAME_BD | название базы данных |
| POSTGRES_USER | USER_BD | название пользователя базы данных |
| POSTGRES_PASSWORD | PASSWORD_BD | пароль базы данных |
| POSTGRES_SERVER | HOST_BD | подключение к базе данных |
| POSTGRES_DRIVER | postgresql | типы подключение к базе данных PostgreSQL |
| SUPERUSER_EMAIL | email_superuser | установить почту суперюзера |
| SUPERUSER_PASSWORD | password_superuser | установить пароль суперюзера |
| COOKIE_NAME | bearer | название ключа cookie, который присвается пользователю при вхождение на сервис |
| EMAIL_TEST_USER | test@test.ru | установить email для тестового пользоватлея |
| PASSWORD_TEST_USER | test | установить пароль для тестового пользователя |
Как использовать?
-
Переходим в папку где будет лежать код
-
Копируем код с git:
git clone git@github.com:Plutarxi99/storage_user.git -
Создаем виртуальное окружение:
python3 -m venv envsource env/bin/activate -
После установки нужных настроeк в файле <.env>. Надо выполнить команду для установки пакетов:
pip install -r requirements.txt -
Создать секретный ключ:
openssl rand -hex 32 -
Удалить все миграции storage_user/backend/migrations/versions;
-
Создать базу данных:
psql -U postgrescreate database storage_user; -
Заполнить файл .env и приложение готово к запуску;
-
Создать первого пользователя в сервеси. Перейти в файл и исполнить его
python3 backend/src/backend_pre_start.py
Что использовалось в приложение?
Функционал:- Подключено fastapi_filter для пагинации
- Подключено jwt для авторизации пользователя Bearer token
- Подключено PostgreSQL
- Обложил тестами все эндпоинты сервиса
- Добавил миграции с помощью alembic
- Добавил инструкции для создания docker-compose
Как запустить приложение в docker?
Функционал:-
Выполняем код:
docker-compose builddocker-compose up -
Для создания первого пользователя и начать пользоваться сервисом:
docker exec app python3 backend/src/backend_pre_start.py