← Retour aux projets

Real-time Chat App

KeyChat est une messagerie instantanée organisée par salons : chaque salon se crée avec une clé unique et se rejoint via cette clé, les messages circulent en temps réel entre membres, et chaque nouveau message déclenche une notification push native.

◈ Angular

Fonctionnalités clés

  • Authentification par token d'accès (inscription, connexion, déconnexion)
  • Création d'un salon de discussion avec une clé unique à partager
  • Rejoindre un salon existant à partir de sa clé
  • Messagerie en temps réel par salon via Socket.IO
  • Historique des messages avec l'auteur de chacun
  • Liste des membres par salon
  • Gestion du profil utilisateur

🔔 Notifications push

Chaque nouveau message envoyé dans un salon déclenche une notification native pour les autres membres, délivrée par le navigateur même si l'application est fermée.

  • Le navigateur s'abonne aux notifications via un service worker (Web Push API)
  • Le serveur envoie la notification à chaque abonné du salon (sauf l'auteur) avec la librairie web-push et des clés VAPID
  • La notification ouvre directement le salon concerné au clic

Stack technique

Angular
Frontend de l'application.
PrimeNG
Bibliothèque de composants d'interface utilisée côté frontend.
AdonisJS
Framework backend : authentification, API REST et validation des données.
PostgreSQL
Base de données de l'application.
Socket.IO
Messagerie en temps réel entre les membres d'un salon.
Coolify
Déploiement et hébergement de l'application.