Skip to content
This repository was archived by the owner on Sep 9, 2025. It is now read-only.

linuxfight/yndxFinal

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

68 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

Онлайн демо 🌐

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

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

В папках 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 :)

About

Yandex Lyceum final task

Resources

Stars

Watchers

Forks

Contributors