FloCafe
FloCafe는 구독 없이 무료로 주문·테이블·주방 디스플레이·로컬 데이터를 관리하는 로컬 퍼스트 레스토랑 POS입니다
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
yayo dashboard gestion
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Back-office de la marketplace congolaise YA YO! (paiement sous séquestre, livraison par code, couche social commerce) : espace vendeur et administration. Construit à partir du fichier Figma marketplace-YAYO (page Design system et pages 04_Admin / 07_App_Mobile_User_Stories).
src/lib/format.ts)npm install
npm run dev # http://localhost:3000
npm run build # build de production
npm run lint
npm run typecheck
npm run test:e2e # tests d'interaction Playwright (après npm run build)
Node 20.9+ requis (voir .nvmrc).
main déclenche un déploiement de production, chaque pull request une preview.| Espace | Route | User story / écran Figma |
|---|---|---|
| Accueil | / | choix de l'espace |
| Vendeur | /vendeur | US-11 · V4 Tableau de bord |
/vendeur/notifications | US-11 · V13 Notifications | |
/vendeur/commandes | US-13 · V5 Commandes (Nouvelles / À préparer / Prêtes / Livrées) | |
/vendeur/commandes/[id] | US-13 · V6 Détail commande, calcul du net, rupture | |
/vendeur/commandes/[id]/remise | US-13 · V7 Code de remise au livreur | |
/vendeur/produits | US-12 · V8 Mes produits | |
/vendeur/produits/nouveau | US-12 · V9-V10 Ajout en 2 étapes | |
/vendeur/produits/[id] | US-12 · V14-V15 Modifier / supprimer | |
/vendeur/contenus | US-24 · SV1 Mes publications | |
/vendeur/contenus/nouveau | US-24 · SV2-SV3 Nouvelle publication, lier jusqu'à 5 produits | |
/vendeur/contenus/[id] | US-25 · SV4 Statistiques et modération des commentaires | |
/vendeur/revenus | US-14 · V11 Revenus, retrait Mobile Money | |
/vendeur/boutique | US-14 · V12 Ma boutique | |
/vendeur/ouverture | US-10 · V1-V3 Ouverture de boutique et KYC | |
| Admin | /admin | AD1 Tableau de bord |
/admin/commandes | Commandes, statuts paiement + livraison synchronisés | |
/admin/sequestre | AD4 Paiements et séquestre | |
/admin/litiges | AD3 Litiges et décision | |
/admin/kyc | AD2 Validations KYC | |
/admin/utilisateurs, /admin/utilisateurs/[id] | Utilisateurs, suspension | |
/admin/livreurs | Livreurs, cash à reverser | |
/admin/moderation | Modération des commentaires sociaux (US-22) | |
/admin/commissions | AD5 Commissions et frais | |
/admin/rapports | Rapports |
src/
app/ routes (App Router) : pages serveur qui lisent les données
vendeur/ admin/ un layout par espace (AppShell)
globals.css tokens du design system (primitives + sémantiques clair/sombre, 17 styles typo)
components/
ui/ composants du design system (Button, Badge, PaymentBadge, KpiCard, DataTable, Sheet…)
layout/ AppShell, navigation latérale / onglets, PageHeader
seller/ admin/ composants métier (interactifs = "use client")
lib/
api.ts couche d'accès aux données : seul fichier à brancher sur la vraie API
data/ données de démonstration
types.ts modèle : statuts escrow (9), livraison (5), commandes, produits, publications…
format.ts FC / USD, nombres compacts
orders.ts calcul du net vendeur (commande − commission − livraison)
Règles reprises du cahier des charges : commission prélevée sur le vendeur uniquement, fonds libérés 48 h après la livraison confirmée sauf litige, confirmation par code, aucun contact direct acheteur-vendeur (numéros et liens masqués dans les légendes et commentaires).
Toutes les pages appellent les fonctions async de src/lib/api.ts (lectures). Les écritures (valider un KYC, trancher un litige, libérer des fonds…) passent par src/lib/actions.ts : chaque fonction doit se résoudre seulement quand l'API a confirmé, et lever une Error avec un message lisible sinon. Remplacer leur corps par des fetch (ou des Server Actions) suffit, l'interface gère déjà les états.
Pour tester les cas lents et les échecs sans backend : ajouter ?simuler=lent ou ?simuler=echec à l'URL (mémorisé pour l'onglet, ?simuler=normal pour revenir).
Règles communes à tout le dashboard, à respecter pour les nouveaux écrans.
Tokens (globals.css, miroir JS dans src/lib/motion.ts)
| Token | Valeur | Usage |
|---|---|---|
--duration-instant | 120 ms | pression, couleur, hover |
--duration-fast | 160 ms | tooltips, petits changements d'état |
--duration-base | 200 ms | onglets, entrée de page, toasts (sortie) |
--duration-slow | 260 ms | sheets, dialogues, largeur du menu |
--duration-drawer | 300 ms | menu mobile |
--ease-out | cubic-bezier(.22,1,.36,1) | entrées |
--ease-in | cubic-bezier(.55,0,1,.45) | sorties |
--ease-standard | cubic-bezier(.4,0,.2,1) | changements d'état |
Utilisation : duration-(--duration-base) ease-(--ease-out). Pas de rebond ni d'effet élastique. Les animations d'entrée utilisent le remplissage backwards : une fois finies, elles ne laissent ni transform ni opacité (sinon les éléments fixed à l'intérieur seraient piégés).
Briques
여기까지가 README 앞부분입니다. 나머지는 원문에서 읽을 수 있습니다. README 전문 보기 ↗