FLIP - Plateforme de Gestion pour Revendeurs de Sneakers
Solution complète de gestion pour revendeurs de sneakers, développée avec Django 5.0. Architecture multi-tenant avec 13 modules Django interconnectés, plus de 50 endpoints API, gestion complète du cycle de vie du business de la vente à l'analytics.
Contexte et Objectifs
FLIP est né d'une passion commune avec des amis : la revente de sneakers. Nous avons identifié un besoin réel dans notre communauté : les revendeurs passaient des heures à gérer manuellement leurs stocks, leurs finances et leurs analyses avec des outils dispersés (Excel, photos, calculatrices). Nous perdions du temps, faisions des erreurs, et surtout, nous n'avions aucune vision claire de notre activité. C'est de ce constat qu'est née l'idée de FLIP : créer une solution complète et professionnelle qui centralise toute la gestion d'un business de revente. Mon rôle dans ce projet était de concevoir et développer toute la partie back-end de l'application. J'ai construit l'API REST complète qui gère la logique métier, la sécurité, la base de données, et toutes les interactions avec le front-end et les services externes.
Détails Techniques
🔐 Système d'Authentification Multi-Acteurs
Créer un système d'authentification moderne qui soit à la fois sécurisé, flexible, et qui gère le multi-tenancy depuis la connexion. J'ai implémenté un système complet basé sur JWT (JSON Web Tokens) avec Access tokens de courte durée pour les requêtes sécurisées, Refresh tokens pour renouveler les sessions sans redemander les identifiants, et une intégration OAuth2 avec Discord pour permettre une inscription simplifiée en un clic. La partie la plus intéressante est le pipeline d'inscription personnalisé que j'ai développé : une chaîne de traitement automatique qui valide l'éligibilité, crée le profil utilisateur, crée automatiquement la boutique associée, génère les tokens de sécurité, et déclenche les notifications en quelques millisecondes.
Points clés :
- Architecture de sécurité moderne avec tokens JWT
- Intégration OAuth2 avec pipeline personnalisé
- Gestion du multi-tenancy dès l'authentification
- Expérience utilisateur fluide (inscription en moins d'une minute)
- Access tokens + Refresh tokens pour sessions sécurisées
- Pipeline d'inscription automatisé (validation, création profil, génération tokens)
📦 Module de Gestion des Stocks
Créer un système de gestion d'inventaire où chaque élément a son propre cycle de vie complet, avec traçabilité, historique, et intégration automatique avec les autres modules. J'ai architecturé un système où chaque article de l'inventaire est une entité unique avec identifiant auto-incrémenté par boutique, statuts multiples pour suivre le cycle de vie complet, relations complexes vers d'autres entités (produits, utilisateurs, contacts), et un système d'événements pour un historique immutable. Le système supporte les opérations en masse avec gestion intelligente des transactions, le soft delete pour protéger contre la perte de données, et une intégration automatique qui met à jour les dépenses associées, recalcule les statistiques et rafraîchit les analyses de rentabilité.
Points clés :
- Modélisation de domaine métier complexe
- Gestion des transactions atomiques pour garantir la cohérence
- Système d'événements pour traçabilité complète
- Pipelines de traitement automatisés
- Protection contre la perte de données (Soft Delete)
- Opérations en masse avec gestion intelligente
- Identifiants auto-incrémentés par boutique
💰 Module de Gestion Financière
Développer un système capable de gérer à la fois des dépenses ponctuelles et récurrentes, avec calcul automatique des échéances et liaison intelligente avec l'inventaire pour un calcul précis de rentabilité. J'ai conçu une architecture en trois couches : le modèle Expense qui gère les dépenses avec support natif de la récurrence (unique, hebdomadaire, mensuel, annuel) avec un algorithme de calcul de dates gérant les cas limites ; le modèle ExpensePayment qui représente chaque paiement effectif avec upload vers AWS S3 ; et la liaison avec l'inventaire via une relation ManyToMany permettant un calcul précis et automatique de la rentabilité réelle. Le système inclut une catégorisation flexible, une régénération automatique des paiements futurs, et un stockage cloud avec URLs signées temporaires.
Points clés :
- Algorithmes de calcul de dates complexes (gestion années bissextiles)
- Relations ManyToMany avec logique métier
- Intégration cloud (AWS S3) avec URLs signées
- Gestion de fichiers avec organisation automatique
- Support récurrence : unique, hebdomadaire, mensuel, annuel
- Régénération automatique des paiements futurs
- Calcul automatique de rentabilité par article
📊 Dashboard Analytics & Performance
Transformer des milliers de lignes de données brutes en insights actionnables, le tout avec des performances optimales même avec de gros volumes de données. Plutôt qu'un seul gros endpoint qui calcule "tout", j'ai créé 6 endpoints spécialisés, chacun optimisé pour un type d'analyse spécifique : analyse des profits dans le temps, identification des produits les plus performants, évolution des ventes, répartition des dépenses par type et catégorie, et KPIs globaux. J'utilise les agrégations au niveau de la base de données avec Django ORM pour faire les calculs directement dans PostgreSQL. J'ai mis en place l'infrastructure Redis et préparé le code pour le caching intelligent avec mise en cache des résultats pendant 15 minutes.
Points clés :
- Optimisation de requêtes complexes avec Django ORM
- Architecture de caching pour performances (Redis)
- Agrégations et calculs au niveau base de données
- Design d'API orienté performance
- 6 endpoints spécialisés pour différents types d'analyses
- Filtrage par intervalle (jour, semaine, mois, année)
- KPIs en temps réel avec calculs optimisés
Fonctionnalités Principales
Architecture Multi-tenant
Architecture multi-tenant complète permettant de servir plusieurs boutiques simultanément avec isolation totale des données. Middleware personnalisé interceptant chaque requête, système de permissions au niveau authentification, API et base de données.
Architecture Modulaire - 13 Modules
Application structurée en 13 modules Django indépendants mais interconnectés pour une maintenabilité, testabilité et scalabilité optimales : authentification, stocks, finances, analytics, notifications, etc.
Bot Discord Intégré
Bot Discord développé avec discord.py directement intégré à l'API Django. Notifications en temps réel et alertes via webhooks avec management commands personnalisés.
Web Scrapers Automatisés
Développement de scrapers avec BeautifulSoup pour extraction automatique de données depuis des sites externes. Pipelines ETL (Extract, Transform, Load) pour nettoyage et intégration.
Défis Techniques
- Architecture multi-tenant : Conception d'un système complet avec isolation des données à tous les niveaux (auth, API, DB)
- Modélisation complexe : Plus de 15 migrations par module, gestion des relations ManyToMany, OneToMany et ForeignKey
- Performance : Optimisation des requêtes pour éviter le problème N+1, transactions atomiques, indexes stratégiques
- Sécurité : JWT avec refresh tokens, validation stricte des permissions, audit trail complet, protection CSRF
- Intégrations : AWS S3, Discord, OAuth2, Web Scraping avec gestion d'erreurs robuste
Résultats et Accomplissements
- 50+ endpoints API REST organisés en 13 modules Django
- Système multi-tenant supportant plusieurs boutiques avec isolation complète
- Architecture modulaire maintenable et scalable
- Bot Discord intégré avec webhooks temps réel
- Scrapers automatisés avec pipelines ETL
- Infrastructure cloud AWS S3 + PostgreSQL
- Système de caching Redis pour performances optimales
- Déploiement automatisé (Heroku avec Procfile et hooks)