## Projects Organization - Create status-based folders: WIP/PAUSE/CONSTANT/CONCEPT/ARCHIVE - Move 17 projects to appropriate status folders - Delete obsolete README.md ### WIP (4 projects) - GroveEngine, SEO_Article_Generator, AISSIA, SecondVoice ### PAUSE (6 projects) - Warfactory, chinese_audio_tts_pipeline, MCP_Game_Asset_Pipeline - ocr_pdf_service, Essay_Writing_Tingting, shipping_strategy/ ### CONSTANT (3 projects) - ClassGen (Analysis + 2.0), Database_Cours_Chinois, civjdr ### CONCEPT (5 projects) - pokrovsk_last_day, pokrovsk_drone_command (NEW full design doc) - social_network_manager, vps_tunnel_china, Claude_Workflow_Optimization ### ARCHIVE (3 items) - MCP_Creative_Amplification, Backlog_9-10_Octobre_2025, LeBonCoup/ ## Tracking Files Updated - Status_Projets.md: Complete rewrite with current state (Nov 2025) - planning/TODO_data.md: Updated with new structure and all projects by status - CLAUDE.md: Updated relation status, Projects section, daily check stats ## Daily Check System - Add card ACTION-008: essay_writing_tingting - Update card_database.md: 21 total cards (15 Tingting, 3 Personal, 1 Family, 1 Tech, 1 Comm) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
340 lines
9.3 KiB
Markdown
340 lines
9.3 KiB
Markdown
# LeBonCoup - Spécifications Fonctionnelles
|
|
|
|
## Vue d'ensemble
|
|
|
|
Plateforme de petites annonces inversée : les demandeurs publient leurs besoins gratuitement, les prestataires paient pour accéder aux demandes via un système de tokens.
|
|
|
|
---
|
|
|
|
## 1. Système d'Utilisateurs
|
|
|
|
### 1.1 Types d'utilisateurs
|
|
- **Demandeurs** : Publient des demandes de services (gratuit)
|
|
- **Prestataires (Pros)** : Achètent des tokens pour accéder aux demandes
|
|
|
|
### 1.2 Inscription/Connexion
|
|
- Email + mot de passe
|
|
- Pas de nom/prénom obligatoire
|
|
- Pseudonyme auto-généré : "User_8x7f9a"
|
|
- Email **jamais** stocké en clair (hashé avec SHA256 + salt)
|
|
- Mot de passe hashé (Argon2 ou bcrypt)
|
|
|
|
### 1.3 Récupération de compte
|
|
- Service support séparé
|
|
- User entre son email → système calcule le hash → trouve le compte
|
|
- Reset password par email
|
|
- **Attention** : Changement de mot de passe = suppression de toutes les conversations
|
|
|
|
---
|
|
|
|
## 2. Système de Tokens
|
|
|
|
### 2.1 Achat de tokens
|
|
**Packs prépayés uniquement :**
|
|
- 10€ = 10 tokens
|
|
- 25€ = 30 tokens (+20% bonus)
|
|
- 50€ = 70 tokens (+40% bonus)
|
|
- 100€ = 150 tokens (+50% bonus)
|
|
|
|
**Paiement via Stripe :**
|
|
- Carte bancaire
|
|
- Apple Pay
|
|
- Google Pay
|
|
- PayPal (optionnel)
|
|
|
|
### 2.2 Utilisation des tokens
|
|
|
|
**1 token = accès à 1 demande**
|
|
|
|
**Tokens premium (optionnel v2) :**
|
|
- 2 tokens = accès prioritaire
|
|
- Permet de dépasser la limite de 5 pros (jusqu'à 6-7 max)
|
|
|
|
**Pas d'expiration des tokens** (ou très longue : 12 mois)
|
|
|
|
### 2.3 Remboursement automatique
|
|
- Si demande devient "pleine" entre filtrage et déblocage → refund auto
|
|
- Si demande signalée comme frauduleuse → refund
|
|
- Si demandeur fantôme (aucune réponse après 7 jours) → refund partiel
|
|
|
|
---
|
|
|
|
## 3. Publication de Demandes
|
|
|
|
### 3.1 Création de demande (gratuit)
|
|
**Champs obligatoires :**
|
|
- Titre (max 100 caractères)
|
|
- Description détaillée
|
|
- Catégorie (liste prédéfinie : plomberie, électricité, déménagement, etc.)
|
|
- Localisation (ville/arrondissement, floutée publiquement)
|
|
- Budget min/max
|
|
|
|
**Limites anti-spam :**
|
|
- Max 3 demandes actives simultanément par user
|
|
- Modération automatique (scan de mots-clés suspects)
|
|
- Review manuelle si détection de contenu suspect
|
|
|
|
### 3.2 Visibilité des demandes
|
|
**Avant déblocage (pour les pros) :**
|
|
- Nombre total de demandes correspondant aux filtres
|
|
- **Aucun détail** (pas de titre, pas de preview)
|
|
- Éventuellement : carte avec zones géographiques floutées (heatmap)
|
|
|
|
**Après déblocage :**
|
|
- Titre complet
|
|
- Description complète
|
|
- Localisation précise
|
|
- Budget
|
|
- Date de publication
|
|
- Nombre de pros ayant déjà contacté (X/5)
|
|
|
|
### 3.3 Cycle de vie d'une demande
|
|
**États :**
|
|
- **Active** : moins de 5 pros l'ont débloquée
|
|
- **Full** : 5 pros (ou 7 avec premium) l'ont débloquée
|
|
- **Resolved** : demandeur marque comme résolu
|
|
- **Expired** : 30 jours sans activité
|
|
- **Deleted** : supprimée par le demandeur ou admin
|
|
|
|
---
|
|
|
|
## 4. Système de Filtres (Pros)
|
|
|
|
### 4.1 Filtres disponibles
|
|
- **Géolocalisation** : ville, département, rayon en km
|
|
- **Catégories** : sélection multiple
|
|
- **Budget** : fourchette min/max
|
|
- **Date de publication** : dernières 24h, 7 jours, 30 jours
|
|
- **Urgence** : tag "urgent" (optionnel)
|
|
|
|
### 4.2 Affichage après filtrage
|
|
```
|
|
🔍 37 demandes correspondent à vos critères
|
|
|
|
Aperçu géographique (optionnel) :
|
|
- Paris 11e : 5 demandes
|
|
- Paris 18e : 8 demandes
|
|
- 93 Seine-Saint-Denis : 12 demandes
|
|
- 94 Val-de-Marne : 12 demandes
|
|
|
|
Budget moyen : 300-800€
|
|
|
|
[Débloquer pour 37 tokens] [Débloquer en premium pour 74 tokens]
|
|
```
|
|
|
|
---
|
|
|
|
## 5. Messagerie Chiffrée
|
|
|
|
### 5.1 Architecture
|
|
**Chiffrement de bout en bout (E2E) :**
|
|
- Clé de chiffrement dérivée de `email_clair + password_clair` (côté client uniquement)
|
|
- Messages stockés chiffrés sur le serveur
|
|
- Serveur **ne peut pas** déchiffrer
|
|
|
|
**Stockage en "blob" :**
|
|
- 1 conversation = 2 blobs chiffrés (1 pour chaque participant)
|
|
- Chaque blob contient tout l'historique de la conversation
|
|
- Pas de messages individuels stockés
|
|
|
|
### 5.2 Fonctionnalités messagerie
|
|
- **Texte** : illimité
|
|
- **Médias** (photos/vidéos - optionnel v2) :
|
|
- Max 5 Mo par image
|
|
- Max 50 Mo par vidéo
|
|
- Stockage temporaire : 14 jours max
|
|
- Cache client local (IndexedDB)
|
|
|
|
### 5.3 Notifications
|
|
- Push notifications : "Nouveau message de Pro_8x7f9a"
|
|
- Email notifications (opt-in)
|
|
- Badge de messages non lus
|
|
|
|
### 5.4 Rétention des données
|
|
**Conversations texte :**
|
|
- Suppression automatique après **6 mois** d'inactivité
|
|
- Warning 30 jours avant suppression
|
|
- User peut exporter avant
|
|
|
|
**Médias :**
|
|
- Suppression automatique après **14 jours**
|
|
- Warning 24h avant expiration
|
|
- User peut télécharger avant
|
|
|
|
**Changement de mot de passe :**
|
|
- Suppression immédiate de tous les blobs de l'user
|
|
- L'autre participant garde son blob (peut toujours lire)
|
|
|
|
---
|
|
|
|
## 6. Modération et Sécurité
|
|
|
|
### 6.1 Modération des demandes (publiques)
|
|
**Scan automatique :**
|
|
- Mots-clés interdits
|
|
- Patterns suspects (combinaisons de mots)
|
|
- Détection de services illégaux
|
|
|
|
**Actions :**
|
|
- Flag pour review manuelle
|
|
- Blocage immédiat si contenu clairement illégal
|
|
- Ban du user
|
|
|
|
### 6.2 Modération des messages (privés)
|
|
|
|
**Système de "flags" client-side :**
|
|
|
|
**Avant chiffrement, scan local (JavaScript) :**
|
|
- Détection de numéros de téléphone
|
|
- Détection d'emails
|
|
- Détection de réseaux sociaux (@instagram, etc.)
|
|
- Mots-clés suspects : "cash", "espèces", "discret", "sans facture"
|
|
- Combinaisons suspectes
|
|
|
|
**Flags envoyés au serveur (anonymes) :**
|
|
```
|
|
Conversation A-B : +2 flags (catégories: contact_externe, paiement_externe)
|
|
```
|
|
|
|
**Le serveur ne voit PAS le contenu, juste les compteurs.**
|
|
|
|
**Actions automatiques par seuils :**
|
|
- **10 flags** → Warning in-app
|
|
- **25 flags** → Restriction temporaire (24h sans pouvoir envoyer de messages)
|
|
- **50 flags** OU 3+ signalements → Ban automatique
|
|
|
|
### 6.3 Signalement par les users
|
|
**User A signale User B :**
|
|
- User A peut partager son blob déchiffré avec le support
|
|
- Support review manuellement
|
|
- Si confirmé problématique → ban de User B + refund des tokens
|
|
|
|
**User B n'est pas informé** que son compte est sous investigation.
|
|
|
|
---
|
|
|
|
## 7. Fonctionnalités Avancées (v2)
|
|
|
|
### 7.1 Système de réputation (optionnel)
|
|
- Score de confiance basé sur :
|
|
- Ancienneté du compte
|
|
- Nombre de flags reçus
|
|
- Tokens dépensés (pros) / demandes résolues (demandeurs)
|
|
- Visible publiquement (par pseudonyme)
|
|
|
|
### 7.2 Tokens premium
|
|
- 2 tokens pour accès prioritaire
|
|
- Passe outre la limite de 5 pros (slots 6-7 réservés aux premium)
|
|
|
|
### 7.3 Abonnements
|
|
- 50€/mois = 60 tokens + accès illimité aux demandes "basiques"
|
|
- Tokens servent pour demandes "premium" (gros budgets)
|
|
|
|
### 7.4 Export de données
|
|
- User peut télécharger toutes ses conversations (JSON ou PDF)
|
|
- Export de l'historique de tokens
|
|
- Conforme RGPD (droit à la portabilité)
|
|
|
|
---
|
|
|
|
## 8. MVP - Périmètre Minimal
|
|
|
|
### Inclure :
|
|
✅ Inscription/connexion (email/password hashés)
|
|
✅ Achat de tokens (Stripe, packs fixes)
|
|
✅ Publication de demandes (gratuit, limite 3 actives)
|
|
✅ Filtres (géo, catégorie, budget)
|
|
✅ Système de déblocage avec tokens (max 5 pros)
|
|
✅ Messagerie texte simple (blob chiffré)
|
|
✅ Flags automatiques (modération soft)
|
|
✅ Signalement users
|
|
✅ Auto-refund si demande pleine
|
|
✅ Suppression auto conversations > 6 mois
|
|
|
|
### Exclure du MVP :
|
|
❌ Tokens premium
|
|
❌ Médias (photos/vidéos)
|
|
❌ Application mobile (web responsive suffit)
|
|
❌ Système de notation/avis
|
|
❌ Analytics avancés
|
|
❌ Abonnements
|
|
|
|
---
|
|
|
|
## 9. CGU et Conformité
|
|
|
|
### 9.1 Mentions obligatoires
|
|
|
|
**Anonymat et privacy :**
|
|
```
|
|
- Vos échanges sont chiffrés de bout en bout
|
|
- Nous ne pouvons pas lire vos messages
|
|
- Votre email n'est jamais exposé publiquement
|
|
- Pseudonymes utilisés sur la plateforme
|
|
```
|
|
|
|
**Modération :**
|
|
```
|
|
- Les demandes publiques sont modérées automatiquement
|
|
- Les messages sont analysés localement avant chiffrement
|
|
pour détecter des comportements interdits
|
|
- En cas de signalement, des actions peuvent être prises
|
|
```
|
|
|
|
**Rétention des données :**
|
|
```
|
|
- Conversations supprimées après 6 mois d'inactivité
|
|
- Médias supprimés après 14 jours
|
|
- Warning avant suppression automatique
|
|
- Changement de mot de passe = suppression de vos conversations
|
|
```
|
|
|
|
**Paiements et remboursements :**
|
|
```
|
|
- Tokens sans expiration (12 mois de validité)
|
|
- Remboursement automatique en cas de demande indisponible
|
|
- Pas de remboursement si demande légitime mais non aboutie
|
|
```
|
|
|
|
### 9.2 RGPD
|
|
- Données minimales collectées (email hashé, pas de nom/prénom)
|
|
- Droit à l'export des données
|
|
- Droit à la suppression du compte
|
|
- Pas de revente de données
|
|
- Cookies strictement nécessaires uniquement
|
|
|
|
### 9.3 Légal
|
|
- Responsabilité limitée : plateforme de mise en relation
|
|
- Modération proactive (détection automatique)
|
|
- Coopération avec les autorités si requis
|
|
- Interdiction stricte d'activités illégales (prostitution, drogue, travail au noir)
|
|
|
|
---
|
|
|
|
## 10. Roadmap Suggérée
|
|
|
|
**Phase 1 - MVP (3-4 mois) :**
|
|
- Inscription/auth
|
|
- Tokens + Stripe
|
|
- Demandes + filtres
|
|
- Messagerie texte chiffrée
|
|
- Modération basique
|
|
|
|
**Phase 2 - Amélioration (2-3 mois) :**
|
|
- Médias (photos/vidéos)
|
|
- Tokens premium
|
|
- Système de réputation
|
|
- Analytics
|
|
|
|
**Phase 3 - Scale (ongoing) :**
|
|
- App mobile (React Native)
|
|
- Abonnements
|
|
- Notifications avancées
|
|
- Support client amélioré
|
|
|
|
---
|
|
|
|
**Date de création :** 2025-01-16
|
|
**Version :** 1.0
|
|
**Statut :** Draft pour validation
|