Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/japersik/itmo_robotsystem_lab8

Лабораторная работа #8 по программированию (финальная)
https://github.com/japersik/itmo_robotsystem_lab8

Last synced: about 1 month ago
JSON representation

Лабораторная работа #8 по программированию (финальная)

Awesome Lists containing this project

README

        

# ITMO_RobotSystem_lab8
## Лабораторная работа #8 по программированию

![alt text](picture.png)

Модуль|Назначение
----- | ----
[`Server`](Server) | Серверный модуль
[`Client`](Client) | Клиентское приложение с графическим интерфейсом
[`Spamer`](Spamer) | Консольный спам-клиент
------------

## Серверный модуль:
### Работа:
- Настройка сервера происходит в [.properties](Server/src/main/resources/config.properties) файле, создаваемом при первом запуске программы
- Логирование сервера реализовано при помощи 'log4j'
- Хранит объекты в таблицах базы данных, создаваемых при инициализации
### Многопоточность:

- Для многопотчной обработки полученного запроса используется`Fixed thread pool`
- Для многопоточной отправки ответа используется `Fixed thread pool`
- Для синхронизации доступа к коллекции используется синхронизация чтения и записи с помощью `java.util.concurrent.locks.ReadWriteLock`

### Взаимодействие с почтовым сервером:
- Режим работы почтового модуля устанавливается в [.properties](Server/src/main/resources/config.properties) файле.
- Отправка письма происходит при регистрации нового пользователя на указанный почтовый адрес.
- Письмо, содержащее логин и проверочный код, формируется из [html](Server/src/main/resources/emailTemplate.html) шаблона
____
## Клиентский модуль:
### Особенности:
- Реализован с использованием Kotlin и TornadoFX (для запуска необходима установка javaFX)
- Реализует возможность соединения с сервером, авторизации, регистрации, ввода проверочного кода и работы с коллекцией
- Отображает объекты в виде сортируемой таблицы с возможностью поиска и в графическом представлении на координатном поле
- Поддерживает команды добавления, удаления и изменения объектов, а так же выполнения скрипта, содержащего эти команды в файле.
### Локализация
- Реализована поддержка 5 языков: русского, английского, французского, испанского(Гондурас) и финского
- Переключение возможно осуществить в любой момент работы программы
____
## Соединение:
Для связи клиента и сервера используется `UDP`, реализованный в пакете [Connector](Connector)