almoliky.dev
All work

Selected work

07 / 09

Inertia Chat

Real-time messaging as a two-person collaboration with Khaled Alshibani.

Inertia Chat: a conversation list, a group chat with a shared PDF, and the group management panel listing members and their roles.
A group conversation with the management panel open.

I built the Next.js client — chat and group UI, live WebSocket updates, sent/delivered/read status, Zustand state — and worked deep in the Spring Boot server too: the message lifecycle, group roles and membership, and file attachments coordinated across REST and WebSocket.

It supports one-to-one and group conversations with role-based permissions, message history, user presence, audio recording and file sharing, with data in PostgreSQL and files in AWS S3.

What I built

Frontend

  • Built the core chat experience: conversation list, chat view, group chat UI and responsive layouts.
  • Integrated WebSocket-based real-time messaging with live conversation updates.
  • Implemented message status handling (sent, delivered, read) and last-message synchronization.
  • Managed client-side state using Zustand and optimized performance through memoization and component refactoring.
  • Implemented authentication flows, route protection and UX improvements across the auth and chat screens.

Backend

  • Contributed to messaging and chat features, including the message lifecycle and read/delivered tracking.
  • Extended group chat functionality with roles, membership management and avatars.
  • Added support for file attachments, soft deletion and REST/WebSocket coordination.
  • Improved DTO mappings, REST endpoints and error handling related to chat history.