Application de messagerie instantanée en temps réel développée avec Laravel et Pusher.
🌐 Démo en ligne : messangerie.fatorax.fr
Ce projet a été réalisé dans le cadre de ma recherche d'alternance en développement web. Il me permet de :
- 🚀 Me challenger sur des technologies modernes
- 📚 Approfondir mes connaissances en Laravel et WebSockets
- 💼 Démontrer mes compétences techniques à travers un projet concret
- Inscription avec vérification par email
- Connexion / Déconnexion sécurisée
- Récupération de mot de passe
- Comptes de démonstration (durée de vie : 24h)
- Channels publics : groupes de discussion ouverts
- Conversations privées : messagerie entre deux utilisateurs
- Envoi et suppression de messages instantanés
- Indicateurs de lecture des messages
- Mise à jour en temps réel via WebSockets
- Recherche d'utilisateurs
- Envoi de demandes d'ami
- Acceptation / Refus / Annulation des demandes
- Création automatique de conversation privée à l'acceptation
- Modification des informations personnelles
- Upload d'avatar personnalisé
- Changement de mot de passe
- Suppression de compte (avec nettoyage complet des données)
- Dashboard avec statistiques globales
- Gestion des utilisateurs (CRUD)
- Gestion des channels publics
- Gestion des conversations privées
- Gestion des messages
- Recherche, filtrage et tri avancés
- Confirmation des actions sensibles (SweetAlert2)
| Technologie | Utilisation |
|---|---|
| Laravel 12 | Framework PHP principal |
| PHP 8.2+ | Langage serveur |
| Pusher | WebSockets temps réel |
| MySQL | Base de données |
| Technologie | Utilisation |
|---|---|
| Blade | Moteur de templates |
| SCSS | Styles personnalisés |
| Laravel Echo | Client WebSockets |
| SweetAlert2 | Modales et alertes |
| Driver.js | Guide interactif d'onboarding |
| Vite | Build tool |
| Outil | Utilisation |
|---|---|
| Pest | Tests unitaires et fonctionnels |
| Git | Versionning |
- PHP >= 8.2
- Composer
- Node.js >= 18
- MySQL
- Compte Pusher (gratuit)
- Cloner le repository
git clone https://github.com/fatorax/messangerie.git
cd messangerie- Installer les dépendances
composer install
npm install- Configuration de l'environnement
cp .env.example .env
php artisan key:generate- Configurer le fichier
.env
# Base de données
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=messangerie
DB_USERNAME=root
DB_PASSWORD=
# Pusher (WebSockets)
BROADCAST_DRIVER=pusher
PUSHER_APP_ID=your_app_id
PUSHER_APP_KEY=your_app_key
PUSHER_APP_SECRET=your_app_secret
PUSHER_APP_CLUSTER=eu
# Mail (pour la vérification d'email)
MAIL_MAILER=smtp
MAIL_HOST=your_smtp_host
MAIL_PORT=587
MAIL_USERNAME=your_username
MAIL_PASSWORD=your_password
MAIL_FROM_ADDRESS=noreply@example.com- Créer la base de données et exécuter les migrations
php artisan migrate- Créer le lien symbolique pour le storage
php artisan storage:link- Compiler les assets
npm run build- Lancer l'application
# Option 1 : Script tout-en-un (serveur + queue + vite)
composer dev
# Option 2 : Manuellement
php artisan serve
php artisan queue:listen
npm run devL'application est accessible sur http://localhost:8000
# Lancer tous les tests
composer test
# Ou directement avec Pest
php artisan testmessangerie/
├── app/
│ ├── Console/Commands/ # Commandes Artisan (ex: suppression comptes démo)
│ ├── Events/ # Events WebSocket (MessageSent, etc.)
│ ├── Http/
│ │ ├── Controllers/ # Controllers organisés par domaine
│ │ ├── Middleware/ # Middlewares personnalisés
│ │ └── Requests/ # Form Requests
│ ├── Mail/ # Classes Mailable
│ └── Models/ # Modèles Eloquent
├── resources/
│ ├── js/ # JavaScript (Echo, etc.)
│ ├── scss/ # Styles SCSS
│ └── views/ # Templates Blade
├── routes/
│ ├── web.php # Routes web
│ └── channels.php # Channels WebSocket
└── ...
- Recadrage personnalisé des images uploadées (photo de profil & conversations)
- Envoi de fichiers et images dans les messages
- Réactions aux messages (emojis)
- Thème sombre / clair
- Application mobile (React Native / Flutter)
- Chiffrement de bout en bout
Romain Bellini · @fatorax
Développeur web passionné, actuellement à la recherche d'une alternance pour continuer à développer mes compétences.
⭐ Si ce projet vous plaît, n'hésitez pas à lui donner une étoile ! ⭐



