Contribution au projet
Philosophie Free Software
Le projet DropIt est hébergé sur GitHub sous licence AGPL-3.0, favorisant la transparence et l’apprentissage communautaire tout en protégeant contre l’appropriation commerciale.
Cette licence copyleft garantit que toute modification reste open source, même pour les déploiements sur serveur web.
Infrastructure de développement
Environnement Docker
L’environnement repose entièrement sur Docker Compose, garantissant la reproductibilité entre postes. Cette approche résout les problèmes classiques de différences d’environnement et facilite l’onboarding des contributeurs.
La stack complète (PostgreSQL, PgAdmin) s’initialise via docker-compose up, créant un environnement isolé et fonctionnel en quelques secondes.
Données et seeders
Les volumes Docker garantissent la persistance des données entre redémarrages, évitant la perte des données de développement lors des phases de test.
Le système de seeders automatiques peuple la base avec des données réalistes : exercices d’haltérophilie, athlètes fictifs, programmes d’entraînement types. Cette initialisation permet aux nouveaux développeurs de découvrir immédiatement les fonctionnalités.
Installation standardisée
Le README détaille la procédure d’installation :
- Prérequis : Node.js v22+, pnpm, Docker
- Setup : Clone,
pnpm install,pnpm build, configuration.env - Démarrage :
docker-compose up -dpuispnpm dev
Cette documentation vise une mise en route en moins de 10 minutes, benchmark testé sur plusieurs machines.
Méthodologie de développement
Approche agile individuelle
Bien que travaillant seul, j’ai appliqué une approche Kanban via Notion pour structurer le développement. Cette méthode me permet de décomposer les fonctionnalités complexes en tâches atomiques, facilitant le suivi et la priorisation.
Mon expérience en équipes agiles m’a familiarisé avec Scrum et Kanban. J’ai expérimenté différents outils selon les contextes : Jira pour les grandes organisations, ClickUp pour sa flexibilité, GitHub Projects pour l’intégration native avec le code.
Workflow Git structuré
Mon flux Git respecte les bonnes pratiques collaboratives, préparant l’évolution vers une équipe :
Stratégie de branches : Une branche par fonctionnalité (feature/auth-better-auth) isole les développements et facilite les futures revues.
Protection des branches : main et develop sont protégées contre les push directs. Tout merge nécessite une Pull Request.
Validation automatisée : Chaque PR vers develop déclenche la suite complète de tests. Le merge n’est autorisé qu’après validation réussie.
Déploiement contrôlé : Seul le merge develop → main déclenche le déploiement production via GitHub Actions.
Cette discipline assure la traçabilité et prépare l’évolution collaborative.
Documentation technique
README modulaires
La documentation s’organise autour de README spécialisés. Le README principal fournit vue d’ensemble et installation rapide, et chaque module (frontend, backend, mobile) dispose également de sa documentation détaillée.
Documentation API Swagger
L’API REST génère automatiquement sa documentation via Swagger/OpenAPI, garantissant la synchronisation code-documentation. Cette approche élimine les risques de désynchronisation classiques.
Better-Auth dispose de sa propre interface Swagger séparée, clarifiant la distinction entre endpoints métier DropIt et fonctionnalités d’authentification.
Perspectives
Cette approche vise à réduire les barrières à la contribution, reflétant mon objectif de créer un projet maintenable et évolutif. L’expérience acquise constitue une base solide pour intégrer des équipes et contribuer positivement à des projets collaboratifs.
L’infrastructure technique étant en place, la section suivante aborde les aspects de documentation utilisateur et de support, éléments essentiels pour l’adoption par les clubs d’haltérophilie.