Coder Social home page Coder Social logo

lms's Introduction

Установка:

git clone https://github.com/IIIUBA/lms.git
go run main.go

API:

  • Отправить выражение, где " 2p3*4 " ваш пример | в http нельзя использовать +, поэтому вместо него пишите - p
curl -X POST -d "expression=2p3*4" http://localhost:8080/expression
  • Статус выражений.
curl -X GET http://localhost:8080/expressions
  • Статус агентов.
curl -X GET http://localhost:8080/agents_status
  • Добавить агента(ов), где " add=2 " кол-во агентов
curl -X POST -d "add=2" http://localhost:8080/computation_agent

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

  1. ArithmeticExpression: представляет одно выражение с его идентификатором, строкой выражения, состоянием, временем создания, временем последнего обновления, результатом оценки и оцененным флагом.

  2. ExpressionStore: хранит объекты ArithmeticExpression и управляет ими потокобезопасным способом с использованием карты.

  3. ComputationAgent: имитирует работника, который обрабатывает выражения в фоновом режиме. У него есть идентификатор и состояние (простой, рабочий).

  4. ComputationManager: контролирует создание и управление ComputationAgents, назначает им выражения и отслеживает их состояния.

Наглядная схема:

Диаграмма потока данных:

+---------------+       +-------------------+       +----------------------------+
| Пользователь  | ----> |    HTTP-сервер    | ----> |     Менеджер вычислений    |
+---------------+       +-------------------+       +----------------------------+
                                                                   |
                                                                   v
                                                     +-------------------------+       +------------------+        +------------------+
                                                     |   Хранилище выражений   | ----> | Агент вычислений |  ----> |    Результат     |
                                                     +-------------------------+       +------------------+        +------------------+

Диграмма связей:

+----------------------+        +---------------------+ 
| ArithmeticExpression | ----> | (1) ExpressionStore  |
+----------------------+        +---------------------+      
                                           |
                                           v
                                 +-------------------+       +--------------------------+
                                 | ComputationAgent  | ----> | (2) ComputationManager   |
                                 +-------------------+       +--------------------------+

lms's People

Contributors

iiiuba avatar

Stargazers

 avatar mlcv avatar

Watchers

 avatar

lms's Issues

Оценка

  1. Необходимые требования
    10 баллов
  2. Программа запускается и все примеры с вычислением арифметических выражений корректно работают
    10 баллов
  3. Программа запускается и выполняются произвольные примеры с вычислением арифметических выражений
    9 баллов (При делении на ноль сервер отвечает с кодом 200 но без тела ответа)
  4. Можно перезапустить любой компонент системы и система корректно обработает перезапуск (результаты сохранены, система продолжает работать)
    0 баллов (Выражения не сохраняются)
  5. Система предосталяет графический интерфейс для вычисления арифметических выражений
    0 баллов
  6. Реализован мониторинг воркеров
    20 баллов
  7. Реализован интерфейс для мориторинга воркеров
    10 баллов
  8. Вам понятна кодовая база и структура проекта
    10 баллов
  9. У системы есть документация со схемами, которая наглядно отвечает на вопрос: "Как это все работает"
    0 баллов
  10. Выражение должно иметь возможность выполняться разными агентами
    10 баллов

Итого 79 баллов

Проверено - #24319

  • Необходимые требования:
    Существует Readme документ, в котором описано, как запустить систему и как ей пользоваться; Это может быть docker-compose, makefile, подробная инструкция - на ваш вкус. Если вы предоставляете только http-api, то - в Readme описаны примеры запросов с помощью curl-a или любым дргуми понятными образом - примеры полны и понятно как их запустить 10/10

  • Программа запускается и все примеры с вычислением арифметических выражений корректно работают 10/10

  • Программа запускается и выполняются произвольные примеры с вычислением арифметических выражений 10/10

  • Можно перезапустить любой компонент системы и система корректно обработает перезапуск (результаты сохранены, система продолжает работать) 0/10

  • Система предосталяет графический интерфейс для вычисления арифметических выражений 0/10

  • Реализован мониторинг воркеров 20/20

  • Реализован интерфейс для мориторинга воркеров 0/10

  • Вам понятна кодовая база и структура проекта 10/10

  • У системы есть документация со схемами, которая наглядно отвечает на вопрос: Как это все работает 10/10

  • Выражение должно иметь возможность выполняться разными агентами 0/10

ИТОГО 70/110

docker-compose ошибка

При попытке запустить проект:

docker-compose up -d --build

time="2024-02-23T14:52:39+01:00" level=warning msg="The \"PROJECT_NAME\" variable is not set. Defaulting to a blank string."
time="2024-02-23T14:52:39+01:00" level=warning msg="The \"PROJECT_NAME\" variable is not set. Defaulting to a blank string."
time="2024-02-23T14:52:39+01:00" level=warning msg="The \"PROJECT_NAME\" variable is not set. Defaulting to a blank string."
time="2024-02-23T14:52:39+01:00" level=warning msg="The \"PROJECT_NAME\" variable is not set. Defaulting to a blank string."
time="2024-02-23T14:52:39+01:00" level=warning msg="The \"DB_NAME\" variable is not set. Defaulting to a blank string."
time="2024-02-23T14:52:39+01:00" level=warning msg="The \"DB_USERNAME\" variable is not set. Defaulting to a blank string."
time="2024-02-23T14:52:39+01:00" level=warning msg="The \"DB_PASSWORD\" variable is not set. Defaulting to a blank string."
time="2024-02-23T14:52:39+01:00" level=warning msg="The \"TZ\" variable is not set. Defaulting to a blank string."
time="2024-02-23T14:52:39+01:00" level=warning msg="The \"PROJECT_NAME\" variable is not set. Defaulting to a blank string."
service "nginx" depends on unknown service "server_for_match_for_match"

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.