- 🚀 À propos du projet
- 🧱 Stack technique
- 📐 Architecture Frontend
- 🗂️ Structure des dossiers
- 🔐 Authentification & sécurité
- 💬 Chat temps réel (SignalR)
- 📡 Appels API
- 🧪 Scripts & Lancement
- 🧑💻 Auteurs
ColocationAppFrontend est une SPA (Single Page Application) développée en React 19 et propulsée par Vite. Elle constitue l’interface utilisateur du projet ColocMeak, qui facilite la gestion intelligente des colocations étudiantes.
Elle permet aux utilisateurs de :
- 🔐 S'authentifier via JWT
- 📋 Consulter et gérer des annonces de colocation
- 💌 Postuler à des colocations ou inviter d'autres étudiants
- 💬 Discuter en temps réel via SignalR
- ⭐ Gérer favoris, notations, et préférences
| Domaine | Technologies utilisées |
|---|---|
| Framework principal | React 19 |
| Bundler | Vite 6.2 |
| UI/Design | Material UI |
| Authentification | JWT + jwt-decode |
| Routing SPA | React Router DOM v7.5 |
| HTTP Client | Axios |
| Chat temps réel | SignalR JS (@microsoft/signalr) |
| Notifications | React Toastify |
| Animation | AOS, Framer Motion |
| Carousel | React Slick + slick-carousel |
| Icônes | Lucide, React Icons |
| Linting | ESLint |
Le projet est organisé selon les bonnes pratiques React, avec séparation claire des responsabilités :
components/→ UI réutilisablepages/→ Routes principalescontext/→ Auth & profilsServices/→ API backend centraliséeroutes/→ Routing avec protection par rôleutils/→ Fonctions utilitairesApp.jsx→ Configuration globalemain.jsx→ Entrée React
src/
│
├── Services/ # Appels API (auth, annonces, messages…)
├── assets/ # Images, styles CSS globaux
├── components/ # Composants réutilisables (Navbar, Cards, Modals…)
├── context/ # Contextes globaux (auth, profil, socket)
├── pages/ # Pages React (Login, Annonces, Dashboard, Chat…)
├── routes/ # Routing avec protection par rôle
├── utils/ # Fonctions utilitaires (token, format, etc.)
├── App.jsx # Composant racine
└── main.jsx # Entrée Vite/React
- Auth basée sur JWT, stocké en
localStorage - Décodage via
jwt-decodepour récupérer rôle et ID AuthContextmaintient l’état global utilisateur- Routes protégées avec
PrivateRoute - Axios intercepte et injecte automatiquement le token
Le frontend intègre SignalR pour une expérience de messagerie en direct :
- Connexion via
@microsoft/signalr - Utilisation du contexte
ChatContext - Interface avec
@chatscope/chat-ui-kit-react - Historique des messages, statut "lu", etc.
Tous les appels backend sont centralisés dans le dossier Services/ :
- Authentification
- Gestion des utilisateurs
- Annonces & logements
- Colocations & candidatures
- Messagerie (GET/POST messages)
L’instance axios est préconfigurée avec base URL, interceptors, etc.
git clone https://github.com/Oussamaroom67/coloc-location-app.git
cd coloc-location-app
npm installnpm run devnpm run build- 👨💻 Oussama Nouhar – [email protected]
- 👩💻 Omaima Siaf – [email protected]
- 👩💻 Souhayla Ghanem – [email protected]