- Spring Framework for dependency injection and inversion of control.
- Spring Boot as a starter to easily integrate dependencies like Spring web, testing, and DATA JPA.
- H2 in-memory database a light-weight db just to ease the development purpose.
- WebSocket for bidirectional messaging.
- Thymeleaf a template engine for rendering server side code on the client side.
- HTML for page layout.
- CSS for some custom styling.
- JavaScript for controlling page behaviour and functionality.
- Bootstrap for some element components.
- SockJS as my web socket client to publish and subscribe to message topics.
- Font Awesome for adding some icons.
- Sign-up and Login functionality with some basic JS validation.
- Chat box page for users to make private one-to-one communication.
- Find Contacts functionality with async searchable list to search for any user and start instant messaging with.
- My Contacts page for my current connected with users.
- Real-time messaging; so users can receive and send messages asynchronously in real-time.
- Update Profile Picture functionality to allow users to select a local image to change their profile picture.