TODO - BéciK¶
Liste des tâches à faire et améliorations à apporter au projet.
🚧 En cours¶
- Résolution des problèmes admin (gestion utilisateurs, modifications compte)
📋 À faire¶
Admin / Gestion utilisateurs¶
- [ ] Créer endpoint API pour sauvegarder les modifications d'utilisateur (EditUserModal)
- [ ] Implémenter fonctionnalité "Réinitialiser le mot de passe" pour admin
- [ ] Tester le bouton "Modifier" email dans page Account
Email / Templates¶
- [ ] Proposer gabarit email BéciK pour Supabase (invitation, reset password, etc.)
- [ ] (Option finale) Envoyer des réponses depuis support@becik.app (nécessite un service qui permet l'envoi pour ce domaine: mailbox/SMTP ou provider; setup actuel = Resend pour l'envoi + Reply-To vers support@becik.app)
UX / Interface Mon Compte¶
- [ ] Inclure la page abonnement directement dans l'onglet "Abonnement" de Mon Compte (éviter navigation vers page séparée)
- [ ] Inclure le 2FA directement dans l'onglet "Sécurité" de Mon Compte (éviter navigation vers page séparée)
- [ ] Ajouter un sélecteur Métrique/SAE (poids + distance) et appliquer partout (profil, odomètre, maintenance)
- [ ] PWA: l'installation ne fonctionne pas sur Android (à investiguer: prompt, manifest, service worker, UX d'intégration)
Design / Espacement¶
- [ ] Valider et uniformiser les espaces en haut de toutes les pages (Mon Compte a trop d'espace, les pages ne sont pas uniformes)
Design / Thème¶
- [ ] Ajuster le design pour faciliter le mode sombre (contrastes, surfaces, états hover, badges)
- [ ] Refaire le design pour être très orienté "application mobile" (navigation, densité, composants, interactions)
Bikes / Navigation¶
- [ ] Ajouter un sélecteur / fonction pour passer d'un vélo à l'autre depuis la page d'un vélo (ex: /dashboard/bikes/[bikeId])
- [ ] Page détail vélo : dans les sous-services, retirer le lien "Voir tout" quand aucun élément n'existe et proposer un CTA d'ajout pour ce vélo (éviter d'envoyer vers des éléments d'autres vélos)
Storage / Maintenance¶
- [ ] CRON: nettoyage des médias orphelins (Supabase Storage)
- Objectif: supprimer dans le bucket
mediasles fichiers qui ne sont plus référencés (donc plus utilisés) - Première cible: pièces jointes des tickets support sous
medias/support-tickets/<ticketId>/... - Approche:
- IMPORTANT: job dangereux → démarrer en rapport seulement (aucune suppression) en prod.
- Utiliser une allowlist de prefixes (ex: uniquement
support-tickets/) et ne jamais scanner/supprimer le reste tant que le mapping des références n’est pas complet (ex:avatars/est référencé via user metadata et ne doit pas être touché par défaut). - Scanner la DB (
support_tickets.attachmentset fallbacksupport_tickets.context.attachments) pour collecterpath. - Lister les objets du bucket sous le prefix
support-tickets/. - Calculer
orphans = storageObjects - referencedPaths. - Garde-fous de suppression (quand activée):
dryRun=1par défaut.- mode suppression explicite (ex:
?mode=delete&confirm=YES). - ignorer les fichiers trop récents (ex: < 7 jours) pour éviter les races.
- exiger que le fichier soit “orphelin” sur N runs consécutifs avant suppression.
- limite max par run (ex: 100–200) + pagination.
- Exposer un endpoint cron protégé (ex:
/api/cron/cleanup-orphan-media) avecCRON_SECRET. - Logging/audit: retourner un JSON avec
{ scanned, referenced, orphanCount, deletedCount }et conserver un log serveur (edge logs) pour traçabilité.
✅ Terminé¶
- [x] Navigation dashboard unifiée : suppression des liens "Retour au dashboard" (géré par la top nav)
- [x] Suppression bouton "Logo test" de la page super-admin
- [x] Création endpoint
/api/super-admin/invite-user - [x] Modal d'invitation fonctionnel avec appel API
- [x] Toasts avec icône 📋 pour copier les données de debug
- [x] Ajout fonctionnalité changement d'email utilisateur
- [x] Fix vérification rôle super admin (user_metadata)
- [x] Ajout debugInfo complète (stacktrace, timestamp, errorCode)
- [x] Remplacement texte par icônes dans actions admin
💡 Idées / Améliorations futures¶
(Ajoute ici les idées à explorer plus tard)
- [ ] Ajouter des fichiers et des URL au becik
Dernière mise à jour : 14 janvier 2026