Back to projects

Chat Application

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

JavaJavaFXSQL
Chat app

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.

Chat app screenshotChat app screenshot