Coder Social home page Coder Social logo

yadistributedcalculator's Introduction

Distributed Arithmetic Expression Calculator

Run project:

  1. Install or update Docker
  2. Install Git
  3. Get the source code
git clone https://github.com/ShamilGudaev/YaDistributedCalculator
  1. Change the directory
cd YaDistributedCalculator
  1. Run
docker-compose --project-directory ./ --file ./docker/dev/compose.dev.yml up

The project starts at http://127.0.0.1:5173/

Rules for expression:

  1. Supported arithmetic operations +, -, *, /
  2. Сompound expressions using parentheses brackets.

Features:

  1. The implementation is based on the principle of REST API with data transfer between services in json format.
  2. The orchestrator and agents are automatically restarted when disconnected.
  3. Added the possibility of monitoring agents, taking into account the number of tasks on each.
  4. The frontend is implemented on Vue.js using the Event Stream principle.
  5. There is no implementation of parallel calculation of a single expression on multiple agents.
  6. User registration and authorization is implemented using JWT.
  7. Communication between the agent and the computing server has been fixed on gRPC.
  8. User data is stored in the database.

How it works:

The key endpoints of the project are shown in the diagram

Contact @tosybosy

yadistributedcalculator's People

Contributors

shamilgudaev avatar

Stargazers

Anton avatar mlcv avatar

Watchers

 avatar

yadistributedcalculator's Issues

Оценка

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

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

Результаты тестирования

Продублирую тут

Если что пиши: @moolcoov, если что-то улучшил, балл повышу

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

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

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

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

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

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

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

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

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

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

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.