World-Network-Simulator/Readme.md

74 lines
3.2 KiB
Markdown
Raw Permalink Normal View History

2024-09-15 13:39:33 +03:00
## WORLD-NETWORK-SIMULATOR
##### В данном репозитории храниться проект WNS, в начальной имплементации - симуляция дронов
#### Запуск проекта
У вас должен быть установлен следующий инструментарий:
- Docker
- Docker-compose (на win достаточно docker)
- Make (утилита для работы с Makefile)
- И прочие конкретные компиляторы и тд, в зависимости от потребности
Запуск
```
make build - сборка кода
make up -d --force-recreate - поднять контейнеры с перекомпиляцией измененных переменных окружений
make devf - build + up + logs - соберет, поднимет и даст логи
#> прочее <#
make stop - остановит контейнеры
make exterminatus - снесет все контейнеры и их данные
```
#### Описание структуры папок
```
// >Tree -L 2
.
├── Api - серверная часть
│ ├── Application - FastApi с конечными точками фронта
│ ├── Dockerfile
│ └── Kernel - "Ядро" всей программы
├── docker-compose.yaml
├── Frontend - интерфейс и клиентская часть
│ └── Dockerfile
├── Makefile - файл-сборщик
├── Readme.md
└── Services - микросервисы (сервер)
├── Updater - Раздает обновления фротенд ПО
├── Lister - Обновляет необходимые таблицы БД
└── Dockerfile
```
Как выглядит Диаграмма межсервисных связей:
![wires](./Docs/Images/wires.png)
### Отдельные примечания для работы с репозиториями
#### Api/Application - главное api с которым работает фронтенд
```
# В корне проекта (а это уровень где лежит .env docker-compose и тд), открываем терминал
# САМОЕ ПЕРВОЕ ДЕЙСТВИЕ: для разработки без docker пишем след. команды:
python -m venv .venv # создаем локальное вирт. окружение
pip install -r Api/Application/requirements.txt # устанавливаем зависимости
source .venv/bin/activate # Активируем окружение (если на винде пишем: .venv/Scripts/activate)
# Далее рассматриваем команды относительно папки Api/Applicaition, тобишь при команде ls/dir вы должны увидеть:
app Dockerfile requirements.txt
# Полезные команды
pip freeze > requirements.txt -> "заморозит" зависимости, нужно когда устанавливаете новый пакет в pip
```