Реализация многопользовательской системы загрузки и выгрузки небольших файлов.
- Пользователь взаимодействует с системой через единый шлюз доступа по протоколу HTTP.
- Система состоит из нескольких отдельных сервисов (БД для пользователей, файлов и отчетов).
- У каждого сервиса своя БД.
- Сервисы взаимодействуют асинхронно передавая и получая события об изменениях через шину.
- Падение одного сервиса не должно приводить к недоступности всей системы.
-
python -m venv venv
- создание виртуальной среды. -
source venv/bin/activate
- активация созданного пространства для Linux, MacOS. Для Windows команда выглядит так:.\venv\Scripts\activate
-
pip install -r requirements.txt
- установка зависимостей.
Перед началом работы нужно запустить docker-compose для запуска контейнеров, на котором находятся сервисы:
docker-compose -f docker-compose.local.yml up
Подключаемся к PostgeSQL (datagrip, инструменты ide, иные инструменты).
К трем БД по 5495, 5496, 5497 портам. Также необходимо прописать необходимые данные в переменных окружения.
Находясь в виртуальном окружении, выполняем:
python manage.py migrate
python manage.py migrate files --database=files
python manage.py migrate reports --database=reports
Выполняем:
python manage.py createsuperuser
Запускаем проект:
python manage.py runserver