Final project for Go Web Development at Yandex Lyceum
  • Go 82.1%
  • Vue 8.4%
  • TypeScript 7.8%
  • Dockerfile 1.2%
  • CSS 0.4%
Find a file
linuxfight 306913f6bd
Some checks failed
build / build (agent) (push) Has been cancelled
build / build (orchestrator) (push) Has been cancelled
Update docker.yml
2025-08-14 02:10:25 +03:00
.github Update docker.yml 2025-08-14 02:10:25 +03:00
agent Bump google.golang.org/grpc from 1.72.0 to 1.72.1 in /agent 2025-05-19 16:10:04 +00:00
content add more diagrams 2025-05-12 00:04:13 +03:00
frontend Bump vue from 3.5.14 to 3.5.16 in /frontend 2025-06-02 16:10:05 +00:00
orchestrator Merge pull request #10 from linuxfight/dependabot/go_modules/orchestrator/github.com/jackc/pgx/v5-5.7.5 2025-05-19 22:14:16 +03:00
.gitignore add frontend 2025-05-06 14:00:25 +03:00
compose.yml finalize agent 2025-05-05 14:43:16 +03:00
README.md add more diagrams 2025-05-12 00:04:13 +03:00

Финальный проект 📟

Онлайн демо 🌐

Если вам не подходит ни один из способов запуска, то можете воспользоваться онлайн демо.

Структура проекта 📁

В папках orchestrator, agent и frontend есть описание решений, библиотек и файлов.

Документация API 📃

Документация запросов и ответом доступна по этому адресу. Здесь можно отправить запросы на бэкэнд, посмотреть примерные данные, а также пути и то, что делают запросы.

Функционал

  • CI - тестирование, сборка Docker образов (Готово)
  • Решение простых математических выражений из +,-,*,/,(,) и чисел (Готово)
  • Веб интерфейс (Готово)
  • Документация (Готово)
  • Решение выражений из !,^,% (В разработке)
  • OpenTelemetry (Logging, Tracing, Metrics) (В разработке)
  • Выбор Scope при получении выражений (Свои/Все) (В разработке)
  • CD - автоматическое обновление Docker образов на сервере с помощью WatchTower (В разработке)

Как это работает? 🧪

explain

Схема СУБД

  1. Valkey
taskId -> taskId;arg1;arg2;op;res
  1. PostgreSQL db

Запуск 🚀

1. Docker

  1. Установите Docker
  2. Откройте папку с проектом в терминале
  3. Пропишите:
docker compose up

2. Aeza (нужно, если нет возможности установить Docker)

  1. Перейдите на Terminator
  2. Следуйте шагам из части 1, но чтобы скачать проект - скачайте zip архив с GitHub

3. В ручную

  1. Установите PostgreSQL
  2. Создайте бд со следующими параметрами (см документацию оркестратора)
  3. Установите Valkey
  4. Установите Go
  5. В терминале из папки проекта запустите в разных окнах:
# запуск оркестратора
cd orchestrator
go run cmd/main.go

# запуск агента
cd agent
go run cmd/main.go

Тестирование 🛠

Тестирование завязано на TestContainers, поэтому Docker обязателен, смотрите README в папках agent и orchestrator для информации о каждом тесте.

# agent
cd agent && go test -v -cover ./...

# orchestrator
cd orchestrator && go test -v -cover ./...

Фидбэк 🖋

Если вам не трудно, то напишите ваш Фидбэк по решению в issues :)