Support Management System is designed to efficiently manage technical support tickets, meeting essential requirements for submission, tracking, and resolution. Users can submit tickets and monitor their status, while support operators can respond to tickets and adjust their status, priority, and category. Administrators manage user accounts and configure ticket settings, including status, priority and category lists.
This system was originally created as an individual project for a university course in Programming Platforms. The backend was developed using Spring Boot, Spring Security and an H2 database, with the frontend built using HTML and Thymeleaf.
The project was later refactored to a REST API backend to provide a more modern and streamlined solution. During this process, redundant features were removed, and technologies such as Docker, JWT and JUnit were integrated to enhance the system’s functionality and scalability.
A mobile client has been implemented for this backend, providing comprehensive access to the system's features on the go. It enables users to conveniently manage their support tickets, while offering full system administration for operators and administrators.
- Spring Framework, Spring Boot, Spring Security, Spring Data JPA
- JUnit, Mockito
- Test Containers
- REST Assured
- Thymeleaf
- Spring Boot Starter Mail
- Lombok
- JWT
- REST API
- MySQL
- Docker, Docker Compose
-
General
- view knowledge base,
- view a list of supported software,
- login and registration in the system,
- send e-mail after registration,
- send emails with notification about status change and new response for ticket,
- three system roles: user, support operator, system administrator.
-
User
- add new ticket (with images),
- reply in own ticket,
- editing account details.
-
Operator
- response to ticket,
- change ticket status,
- close ticket,
- edit ticket.
-
Administrator
- manage users (show list, add, edit, delete, change role),
- manage priorities,
- manage categories,
- manage statuses,
- manage supported software,
- manage knowledge base.

Entity-relationship diagram (ERD) generated using Apache Workbench.
- Clone this repository
git clone https://github.com/Mr-Victor16/support_management_system
- Go to the folder with cloned repository
- Run docker compose
docker compose up
To set up the system, configure the following properties in application.properties:
- Email Configuration:
spring.mail.host=<SMTP_server_host> (e.g. smtp.gmail.com)
spring.mail.port=<SMTP_server_port> (e.g. 587 for Gmail)
spring.mail.username=<your_email> (e.g. your_email@gmail.com)
spring.mail.password=<your_email_password>
- JWT Configuration::
sms.app.jwtSecret=<JWT_secret_key>
sms.app.jwtExpirationMs=<token_expiration_time> (e.g. 86400000)
-
User
- Login: user
- Password: user
-
Operator
- Login: operator
- Password: operator
-
Administrator
- Login: admin
- Password: admin