En

JazzTeam Software Development Company

Agile Java Development

Система управления игровыми компьютерными клубами

Бизнес составляющая проекта: мощная компьютерная техника и быстрый интернет - это еще не все составляющие успешного компьютерного клуба. Очень важно грамотно организовать систему управления, не ограничивая пользователям доступ к необходимым ресурсам, и при этом обезопасить информацию и установленное программное обеспечение. Перед нашей компанией стояла задача создать комплексное решение, которое будет учитывать все особенности такой системы.

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

Краткое описание проекта:

Система управления игровыми компьютерными клубами, разработанная нашей компанией, включает в себя следующие компоненты:

Техническое описание проекта:

Оболочка представляет собой desktop-приложение и реализована при помощи фреймворка Electron. Клиентская оболочка и Windows-служба работают в тесной связке и образуют в паре “приложение клиента”. Служба следит за процессом оболочки и перезапускает его каждый раз, когда он аварийно завершается либо несанкционированно закрыт через диспетчер задач. Также в службе реализовано слежение за продолжительностью сеанса. Когда оплаченное время пользователя заканчивается, служба сообщает оболочке, что нужно заблокировать доступ пользователя к Windows.

Служба устанавливается автоматически, во время инсталляции оболочки. Одновременно в системе Windows создается пользователь с ограниченными правами, который устанавливается в качестве “пользователя по умолчанию”. В качестве shell для новой учетной записи прописывается оболочка.

Для сохранения возможности проведения профилактических или других администраторских работ созданная Windows-служба будет пытаться восстановить процесс оболочки только в созданной во время установки учетной записи.
Связь между компонентами кассира, клиента и серверной части реализована в архитектуре REST.

Оператор клуба со своего рабочего места может заблокировать любую пользовательскую машину. Для этого приложение кассира пошлет запрос о блокировке на сервер, а сервер по webSocket передаст сообщение приложению клиента.

Компьютеры в приложении кассира идентифицируются по ip-адресу и идентификационному номеру, который формируется путем хэширования mac-адреса компьютера.

Данные о всех сессиях пользователей хранятся в базе данных MySQL и отображаются в приложении кассира.

Технологии:

Stack:Apache Maven, Apache Tomcat, Tyrus, ReactJS, Redux, JNA
Programming languages: Java 11, JavaScript, Node.js
Frameworks: Electron, Spring Boot, Spring Data, Spring Security
Infrastructure: Gerrit, IntelliJ IDEA, Jira, Inno Setup, VM VirtualBox, JetBrains WebStorm
DB: MySQL
Test libraries: Junit, DBunit.
Other libraries: Lombok, JsonWebToken, Log4j2.
Protocols: WebSocket, REST.

Скриншоты: 

Особенности проекта:

Результат проекта:

За три месяца был выполнен большой объем работ и решение передано заказчику:

Достижения компании на проекте:

Что делали на проекте, наши обязанности:

В ходе работы над приложением команда выполняла следующие работы: