Skip to content
LogoAhmed Gafsi
← All projects

Full-stack · Team project

ColocApp

A co-developed full-stack platform that simplifies shared housing: group management, real-time chat, and automatic expense splitting.

Year
2025
Role
Full-stack developer
Collaboration
Co-developed with Chedly Chahed
Main stack
Next.jsTypeScriptSpring BootPostgreSQLWebSocket

Project gallery

1 / 3

Placeholder preview — not an actual project screenshot.

Conceptual component map.

01

Overview

ColocApp helps people who share housing organise their household: who lives where, what was paid, and who owes what.

It was co-developed with Chedly Chahed as a full-stack project combining a Next.js frontend with a Spring Boot backend.

02

My contribution

  • Co-developed the platform end to end with Chedly Chahed across frontend and backend.
  • Real-time group chat using WebSocket and STOMP.js.
  • Shared-expense tracking with automatic cost splitting.
  • Role-based authentication with Keycloak.
  • Accessibility considerations aligned with WCAG 2.1.

03

Key features

Shared-housing management

Create a household, invite housemates, and manage shared information in one place.

Real-time group chat

WebSocket with STOMP.js delivers messages instantly to everyone in the household.

Automatic cost splitting

Expenses are recorded once and split automatically, so balances stay clear.

04

Architecture & decisions

  • Keycloak centralises identity and roles instead of hand-rolled auth.
  • A message broker pattern over WebSocket keeps chat real time without polling.
  • PostgreSQL stores relational household and expense data.

05

Challenges & solutions

Keeping chat responsive
Used STOMP subscriptions per household so clients only receive relevant messages.
Fair expense splitting
Computed balances from recorded expenses rather than storing derived totals.

06

Results & learnings

  • Coordinating a full-stack codebase with a co-developer.
  • Integrating Keycloak roles across a Next.js and Spring Boot stack.

07

Technology stack

Frontend
Next.jsTypeScriptTailwind CSS
Backend
Spring BootWebSocketSTOMP.js
Data
PostgreSQL
Auth
Keycloak
Tooling
GitGitHub