Business component of the project
Powerful computer equipment and fast internet are not the only components of a successful computer club. It’s extremely important to organize a management system carefully, without restricting users’ access to the necessary resources, but at the same time to secure the information and installed software. Our team had the objective to create a complex solution, that will take into account all the special features of such a system.
This solution is scalable and is able to support the service of one club or as well as a network of computer clubs.
Gaming computer clubs management system, developed by our team, includes the following components:
- the server side, that stores users’ data, tariffs, session history, is responsible for authorization;
- the cashier application, which is presented in the form of a web application and allows a club administrator to manage visitors' credentials, to replenish the balance, and to control blocking of workstations remotely;
- interface for clients’ machines, that is responsible for managing a paid session of the club client and for the station blocking after paid time elapsed;
- Windows service, developed in Java, that catches and prevents dishonest users from completion of work process of the interface without authorization;
- installer: the interface and the Windows service are transferred as an executable file, which installs the necessary software on a user machine and additionally configures the system. The installer is implemented using Inno Setup tool.
Technical project description
The interface represents a desktop application and it is implemented using Electron framework. The client interface and Windows service work in close connection and form a “client application” in pare. The service monitors the interface work process and restarts it every time it crushes or it is shut down without authorization using task manager. Tracking of a session duration is also implemented in the service. When a user's paid time ends, the service notifies the interface to block the user's access to Windows.
The service is installed automatically during the interface installation. At the same time in Windows system a user with limited rights is created that is installed as a “default user”. The interface is configured as shell for a new account.
To preserve the possibility of conducting preventive or other administrative work, the created Windows service will try to restore work process of the interface only in the account created during the installation.
The connection between the components of the cashier, the client and the server side is implemented in REST architecture.
Club operator is able to block a machine of any user from his workplace. To do this the cashier application will send a request about blocking to the server, and the server will send a message to the client application via webSocket.
Computers in the cashier application are identified by ip address and identification number, which is generated by hashing mac-address of the computer.
The data on all users’ sessions is stored in MySQL database and displayed in the cashier application.
Stack: Apache Maven, Apache Tomcat, Tyrus, ReactJS, Redux, JNA
Frameworks: Electron, Spring Boot, Spring Data, Spring Security
Infrastructure: Gerrit, IntelliJ IDEA, Jira, Inno Setup, VM VirtualBox, JetBrains WebStorm
Test libraries: Junit, DBunit.
Other libraries: Lombok, JsonWebToken, Log4j2.
Protocols: WebSocket, REST.
- system development from scratch: from business analysis to solution testing;
- clear work division into stages, starting with the study of the customer’s existing solution to the prototype development and its testing;
- system programming: the development of Windows service using java;
- monitoring and managing Windows OS processes;
- development of the desktop application in “kiosk mode”. That means, the application must take up the entire screen area, hiding the taskbar, and have maximum priority over other applications. The application cannot be closed, collapsed, moved;
- minimum need for the club staff participation in installation and configuration of the application for user machines;
- weekly deliveries of mediate prototype versions to the customer for testing throughout the whole development time, every week the product was demonstrated to the customer, which allowed him to be aware of the working process and see how the system was being created in his eyes.
In three months a large amount of work was done and the solution was transferred to the customer:
- technical task on the computer club management system was created;
- architecture was designed and description of the whole future solution was prepared;
- the prototype description of the minimum set of working components, demonstrating the possibility of a solution, was prepared;
- prototypes of all system components and desktop application installer for client machines were developed;
- test plan with more than 100 test cases was written and launched; the prototype was developed and fully tested.
Company’s achievements during the project
- a number of non-trivial tasks related to Windows service was successfully solved;
- project support was carried out at all the work stages: research of the customer’s existing solution, identifying the needs, business analysis conducting, technical specification writing, architectural solution designing, future system prototyping, prototype development itself, testing;
customer’s requests and comments, arising in the process of familiarization with the mediate version of the prototype or demonstration, were
- quickly processed and discussed, and if it was necessary they were implemented.
What we did on the project, our responsibilities
While working on the application our team carried out the following tasks:
- the customer’s existing solution research, identification of his needs, their processing, analysis and fixing;
- technical specification writing according to processed requirements;
- existing solutions research;
- architecture development and solution description;
- all components development;
- development of the system installer on club machines;
- components integration;
- detailed test plan writing, more than 100 cases were processed and included into the plan for their constant running;
- continuous testing process, on the customer’s equipment including;
- weekly work demonstration to the customers;
- weekly solution delivery to the customer.