Ecodrop

Une API REST en Java pour gérer et gamifier le tri sélectif.

Java

Programmation Orientée Objets

Tomcat

Serveur Web

OAuth2 / JWT

Authentification

EcoDrop est un service backend robuste conçu pour encourager et faciliter le recyclage. L'API gère un écosystème complet allant des points de collecte avec suivi de capacité, aux différents types de déchets, en passant par un système de dépôt attribuant des points aux utilisateurs.
https://ecodrop.edihamiti.fr/
Authentification

Authentification

Le système délègue l'identification à des fournisseurs de confiance (Google, GitHub, GitLab, Discord) via OAuth2.

Logique métier

Suivi en temps réel de l'état des points de collecte (avec détection automatique des surcharges à plus de 80%) et système de récompenses attribuant des points aux utilisateurs.

Déploiement

Déploiement optimisé via un build Docker multi-étapes qui automatise la génération de la documentation statique (Pandoc), soutenu par une suite de tests API sous Bruno.

Négociation de contenu

Négociation de contenu

L'API est flexible et capable de consommer ainsi que de produire des données nativement aux formats JSON et XML selon les besoins du client HTTP.

Analyse réflexive

Une analyse honnête du parcours, des obstacles rencontrés et des compétences acquises durant ce projet.

Mon rôle

Co-conception et co-développement de l'API REST en binôme : modélisation des données, implémentation des endpoints, mise en place de l'authentification OAuth2/JWT et du déploiement Docker.

Défis & Solutions

Le défi principal a été d'implémenter une authentification OAuth2 robuste avec gestion de tokens JWT depuis zéro sur un serveur Tomcat, sans framework haut niveau, tout en gérant la négociation de contenu JSON/XML.

Apprentissages

J'ai appris à construire une API REST complète en Java pur avec Tomcat, à implémenter OAuth2 manuellement, et à mettre en place un pipeline de déploiement Docker multi-étapes avec génération automatique de documentation.

Compétences transversales

Travail en binôme

Coordination efficace à deux sur l'ensemble du cycle de développement, de la conception initiale au déploiement en production, avec une répartition claire des responsabilités.

Rigueur technique

Mise en place d'une suite de tests API sous Bruno et d'une documentation exhaustive pour garantir la fiabilité et la maintenabilité du service.