Chat Application
A real-time chat application built by a team of five in Java, with a frontend and backend communicating over WebSockets.

About the project
This project was built as part of a course in object-oriented programming, where we worked as a team of five to design and build a complete chat application from scratch. Users can create an account, log in and send messages to each other in real time. The focus of the course was not only on getting it to work, but on structuring the code well, using object-oriented principles and established design patterns such as Factory. My main responsibilities were implementing the WebSocket communication, setting up the database and adding emoji support.
Challenges and solutions
One of the main challenges was making messages appear instantly for everyone in a conversation, without users having to refresh. We solved this with WebSockets, which keep an open connection between the client and the server so the server can push new messages the moment they arrive. Another important part was security: passwords are never stored in plain text, but hashed before they are saved, so they can't be read even if someone gets access to the database.
What I learned
Working in a team of five taught me how much good structure matters when many people work in the same codebase. Design patterns like Factory made it easier to add new features without breaking existing code. I also got hands-on experience with real-time communication and secure password handling.

