World-Network-Simulator/Readme.md
2024-09-15 17:39:33 +07:00

3.2 KiB
Raw Permalink Blame History

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

Отдельные примечания для работы с репозиториями

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