This project was developed during my university web programming course. This repo contains:
- Backed (Java + Spring Boot (MVC, Security, WebSockets) + MySql)
- Frontend (native JS + JQuery)
The application has following features:
- User Managing
- Signing up with email confirmation
- Singing in with checks on active sessions
- Changing password (again with email confirmation)
- Managing user preferences (nickname, pfp)
- Social activities
- Global chat
- Lobby chat
- Friends list
- Game activities
- Search lobby by its name
- Creating game lobbies (with lobby state managment; e.g. if lobby is empty it is automatically deleted)
- Change host in lobby
- Ticket system
- Send ticket with complaint
- Review ticket (Admin privilege)
- Ban user (Admin privilege)
- Statistics
- Individual statistics (win-loose)
Spring Boot was used with dependencies (Lombok, Data-JPA, Security, Web, Thymeleaf, WebSocket, Validation).
All activities with chat, game events was made with help of websockets.
Most primitive way to interract with this game (sequence of action for one primitive actor-player):
- Log in
- Find lobby
- Set yourself ready
- Get question
- Discuss it with your team
- Answer
- Repeat until game is over
As it app was developed almost by one student with no practical experiece with Spring and Java, application design contains anti-patterns and code quallity leaves much to be desired (:/).