J'ai développé le front-end de Bonwazadiler, un clone du site Le Bon Coin, en utilisant Next.js. Ce projet m'a permis de développer plusieurs compétences essentielles pour le développement web moderne :
- Authentification multi-provider : Intégration de différentes méthodes d'authentification (Google, Facebook) en plus de l'authentification classique par email/mot de passe
- Formulaires complexes : Création de formulaires d'annonces avec plusieurs étapes et différents types d'entrées (texte, sélection, upload d'images)
- UI/UX soignée : Utilisation de Tailwind CSS et ShadCN UI pour créer une interface utilisateur moderne et responsive
- État global : Gestion de l'état de l'application avec les outils de React
- Routing dynamique : Mise en place des routes dynamiques pour la navigation entre les annonces et les catégories
Le front-end communique avec une API RESTful pour récupérer et envoyer des données, gérer les utilisateurs et les annonces. J'ai particulièrement apprécié travailler sur la mise en page des annonces et l'expérience utilisateur lors de la création d'une nouvelle annonce.
Pour le back-end de Bonwazadiler, j'ai opté pour Express.js car j'étais encore en phase d'apprentissage de Next.js et je voulais séparer clairement les responsabilités. Le développement du back-end m'a permis d'explorer :
- Architecture API REST : Structuration des endpoints pour les différentes ressources (utilisateurs, annonces, catégories)
- Middlewares personnalisés : Développement de middlewares pour l'authentification, la validation des données et la gestion des erreurs
- Sécurité : Mise en place de mesures de sécurité pour protéger les données des utilisateurs
- Gestion des uploads : Configuration du stockage pour les images des annonces
- Intégration OAuth : Configuration des services d'authentification tiers
J'ai particulièrement apprécié la mise en place du système d'authentification avec plusieurs providers, ce qui m'a permis de comprendre en profondeur comment fonctionnent les tokens JWT et les sessions.
Cette plateforme de petites annonces comprend plusieurs fonctionnalités essentielles :
- Publication d'annonces : Interface intuitive pour créer et publier des annonces avec photos
- Catégorisation : Organisation des annonces par catégories et sous-catégories
- Recherche avancée : Filtres multiples pour affiner les recherches (prix, localisation, etc.)
- Favoris : Possibilité de sauvegarder des annonces pour les consulter ultérieurement
- Profil personnalisable : Gestion des informations personnelles et préférences
- Tableau de bord : Suivi des annonces publiées et des interactions
- Messagerie intégrée : Communication directe entre acheteurs et vendeurs
- Historique : Suivi des activités et des transactions passées
- Authentification multi-provider : Connexion sécurisée via différentes méthodes
- Modération : Système de signalement et de vérification des annonces
- Évaluation des utilisateurs : Système de notation et d'avis pour renforcer la confiance
- Protection des données : Mesures de sécurité pour les informations personnelles
Ce projet m'a beaucoup appris sur le développement full-stack et m'a permis de mettre en pratique mes connaissances théoriques dans un contexte réel. La gestion des formulaires complexes côté front et la sécurisation des routes côté back ont été les défis les plus intéressants à relever.