Damien ReichhartSign In
← Back to Projects

ChatApp — Real-Time Desktop Messaging

JavaJavaFXSpring BootWebSocketHibernatePostgreSQLDockerGitLab CI/CDMavenJUnit 5
ChatApp — Real-Time Desktop Messaging

ChatApp is a desktop messaging platform inspired by Telegram: a JavaFX client connected to a Spring Boot server over WebSockets, with private chats, groups, channels and file sharing.

  • Context: BTS SIO professional workshop 4 — CCI Campus Alsace
  • Role: Sole developer — design, development, CI/CD and packaging
  • Timeline: 2024–2025 school year

Overview

ChatApp was built as a complete client–server product rather than a prototype: a modular Maven project made of chat-common (shared models and utilities), chat-server (Spring Boot) and chat-client (JavaFX), delivered through an automated pipeline all the way to native installers.

Features

  • Real-time messaging over WebSocket using the STOMP protocol
  • One-to-one conversations, group chats and public broadcast channels, with participant roles
  • File sharing, message pinning, deletion and anonymous messages
  • Account registration, authentication, customizable profiles and role-based permissions
  • Persistent message history in PostgreSQL
  • Automatic reconnection and a responsive, properly threaded desktop UI

Engineering

  • Server: Java 21, Spring Boot 3, Spring WebSocket + STOMP, Spring Security, Spring Data JPA / Hibernate, Spring Boot Actuator, Log4j2
  • Client: JavaFX with FXML views and CSS styling, STOMP client behind a dedicated WebSocket facade
  • Testing: JUnit 5 and Mockito unit tests with JaCoCo coverage reports
  • CI/CD: multi-stage GitLab pipeline — validate, test, build, package, deploy
  • Delivery: containerized server deployed with Docker Compose (health checks, resource limits); native client installers built with jpackage (EXE and MSI for Windows, DEB and RPM for Linux)

Documentation

The full design file is available below: specifications, use case descriptions, UML diagrams (use case, package, class, deployment, activity, sequence), entity–relationship model, coding standards and project management.

Files & Gallery