Skip to content

ivab1/distribcalc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Распределенный вычислитель арифметических выражений

Содержание

Запуск проекта

Для запуска проекта необходимо:

  1. Открыть папку проекта в терминале
  2. Открыть Docker
  3. Ввести в терминал команду для старта контейнера с приложением:
docker-compose up --build

Чтобы сохранить доступ к текущему терминалу, запустить команду:

docker-compose up --build -d

Может потребоваться запустить контейнер app отдельно (docker-compose up app)

  1. Открыть адрес localhost:8080 в браузере

Схема работы поекта

Авторизация пользователей

При запуске приложения открывается стартовая страница с выбором входа или регистрации. Если пользователь уже авторизован, выполняется переадресация на домашнюю страницу.

При нажатии на кнопку "РЕГИСТРАЦИЯ" выполняется переадресация на страницу регистрации. Необходимо ввести имя пользователя и дважды ввести пароль. Если имя пользователя не занято, и пароли совпадают, выполняется автоматический вход в аккаунт и переадресация на домашнюю страницу. Имя пользователя и его id в базе данных записываются в JWT токен, который сохраняется в cookie файл. Если пароли не совпадают, выводится сообщение "Пароли не совпадают!". В случае возникновения другой ошибки выводится сообщение "Ошибка регистрации!".

При нажатии на кнопку "ВХОД" выполняется переадресация на страницу входа. Необходимо ввести имя пользователя и пароль. Если пользватель найден и введенный пароль совпадает с паролемв базе данных, выполняется вход в аккаунт и переадресация на домашнюю страницу. Имя пользователя и его id в базе данных записываются в JWT токен, который сохраняется в cookie файл. В случае ошибки выводится сообщение "Ошибка входа!".

Все пароли хранятся в базе данных только в зашифрованном виде.

Токен действует на протяжении 12 часов после входа в аккаунт. После ичтечения срока действия токена необходимо снова войти в аккайнт.

Id пользователя передается в cookie файле с каждым запросом на сервер.

На верхней панели приложения находится кнопка "ВЫХОД". При нажатии на кнопку файл куки с токеном пользователя удаляется, выполняется переадресация на стартовую страницу.

Без входа в аккаунт недоступен просмотр вычисляемых выражений и добавление нового выражения для вычисления.

Работа с выражениями

Для вычислений подходят только целые числа => операция деления - целочисленная

Для взаимодействия с сервером используется графический интерфей, представленный 4 страницами: "глвная страница", "установить время выполнения операций", "список выражений", "состояние серверов".

После нажатия на кнопку "отправить" на главной странице выражение и id пользователя POST запросом отправляется на оркестратор, где записывается в базу данных. Выражение разбивается на мелкие подвыражения, которые при получении GET запроса отправляются на агента, который отправляет полученное выражение вычислителям и записывает ответ в базу данных.

На странице "установить время выполнения операций" можно установить время выполнения разрешенных операций, а так же время жизни сервера (по умолчанию установлено 60 секунд). Ограничения записываются в базу данных, из которой их получает агент.

На странице "список выражений" находится список недавних выражений, их статус и ответ (при наличии). В случае, если выражение сожержит символы кроме разрешенных, выражение не обрабатывается, и вместо выражния выводится "Выражение невалидно"

На странице "состояние серверов" находится список серверов и их состояние.

Список страниц

Развернуть для просмотра:

Страницы

Стартовая траница:

Стартовая страница

Страница регистрации:

Страница регистрации

Страница входа:

Страница входа

Домашняя страница:

Домашняя страница

Страница с установкой ограничений:

Страница с установкой ограничений

Страница с недавними выражениями:

Страница с недавними выражениями

Страница с состоянием серверов:

Страница с состоянием серверов

Схемы

Схема баз данных:

Схема базы данных

Схема работы сервиса вычислений:

Схема работы

Примеры выражений для проверки:

2+2

Ответ: 4

2+2*2

Ответ: 6

20-10/5

Ответ: 18

Обратная связь

Если возникнут вопросы, Telegram: @I_ivab

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published