尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Gestion complète de votre entreprise d'agrobusiness
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
SaaS de gestion intégrée de la chaîne de valeur agricole : financement, intrants, parc matériel, production, usine de transformation, RH/paie et comptabilité analytique (département × secteur/projet × campagne). Stack : Next.js 16 (App Router), Supabase (Postgres + RLS + Auth), Tailwind v4, composants de style shadcn/ui.檢視完整 README ↗
SaaS de gestion intégrée de la chaîne de valeur agricole : financement, intrants, parc matériel, production, usine de transformation, RH/paie et comptabilité analytique (département × secteur/projet × campagne).
Stack : Next.js 16 (App Router), Supabase (Postgres + RLS + Auth), Tailwind v4, composants de style shadcn/ui.
.env.example vers .env.local et renseigner l'URL et la clé publique du projet Supabase.supabase/migrations/ dans l'ordre (SQL Editor Supabase ou supabase db push).npm install puis npm run dev./signup : plan comptable (selon le pays), départements et journaux sont initialisés automatiquement.npm run dev # serveur de développement
npm run build # build de production (contrôle d'abord les traductions)
npm run lint # eslint
npm run typecheck # tsc --noEmit
npm run i18n:check # traductions fr/en/ar complètes
npm run audit:securite # RLS, fonctions security definer, secrets (voir docs/AUDIT.md)
npm run audit:coherence # cohérence des données (lecture seule, clé de service)
npm run audit:index # clés étrangères sans index
npm run seed:demo # crée l'entreprise de démonstration « Riz du Delta »
organisation_id, rôles (admin, comptable, chef de département, RH, direction, lecteur), RLS sur toutes les tables, journal d'audit.L'impôt sur le revenu et la TRIMF se calculent à partir du brut, du nombre de parts et du nombre de conjoints, sans barème à importer :
Permanents : base annuelle · saisonniers : base mensuelle · journaliers : base journalière (annualisée × 360 puis ÷ 360). Cette formule reproduit exactement le barème officiel de retenue à la source du Sénégal (vérifié sur les 19 823 lignes de ses grilles annuelle, mensuelle et journalière).
Tout est paramétrable par organisation dans Paie → Paramètres (tranches, réductions, paliers de TRIMF, abattement, arrondi, cotisations), donc adaptable à un autre pays.
Un mode « table » permet aussi d'importer une grille de retenue (CSV, supabase/seed/bareme_retenue_sn_2013.csv pour l'exemple sénégalais) pour les pays qui publient un barème par lignes.
Un administrateur doit valider le paramétrage avant tout calcul de paie ; toute modification impose une nouvelle validation.
Tout texte de l'interface, message d'erreur ou libellé doit exister en français, en anglais et en arabe. Le français sert de clé : t('Texte') côté serveur (creerT(ctx.lang)) ou useT() côté client, avec les traductions dans lib/i18n-en.ts et lib/i18n-ar.ts.
npm run i18n:check (exécuté aussi automatiquement avant npm run build) recense tous les textes du code et des migrations et échoue s'il en manque un dans l'une des deux langues, si un marqueur {nom} ou § n'est pas conservé, si une traduction arabe ne contient pas d'arabe, ou si une clé est en double. Option -- --orphelines : liste les clés de dictionnaire devenues inutiles.
Trois niveaux : Standard (10 000 F CFA / mois : sans l'usine de transformation ni les ressources humaines), Medium (12 500 : tout sauf les ressources humaines) et Premium (15 000 : tout). Les fonctions fermées le sont partout : menu masqué, pages redirigées et tables protégées dans la base (migrations 31 et 32). Un mois seul est au prix plein ; à partir de 2 mois payés d'un coup, la remise est de 1 % par mois payé (durées proposées : 1, 6 et 12 mois).
| Durée | Standard | Medium | Premium |
|---|---|---|---|
| 1 mois | 10 000 | 12 500 | 15 000 |
| 6 mois (−6 %) | 56 400 | 70 500 | 84 600 |
| 12 mois (−12 %) | 105 600 | 132 000 | 158 400 |
Chaque organisation démarre par 7 jours d'essai avec l'accès Premium ; ensuite l'accès est fermé (redirection vers la page Abonnement) tant qu'aucun paiement n'a abouti. Un paiement prolonge l'abonnement à partir de son échéance ; le niveau ne change qu'à l'échéance.
Prestataires (un compte plateforme par prestataire, variables dans .env.example) : Bictorys (Wave, Orange Money), Moneroo (carte bancaire), Chariow (Mobile Money et carte). Chariow débite le prix d'un produit préconfiguré : créer un produit par niveau et par durée dans la boutique Chariow, au montant du tableau, et déclarer chaque identifiant dans une variable CHARIOW_PRODUCT_<NIVEAU>_<MOIS> (ex. CHARIOW_PRODUCT_PREMIUM_12). Webhooks à déclarer chez chaque prestataire : /api/webhooks/bictorys, /api/webhooks/moneroo, /api/webhooks/chariow?secret=<CHARIOW_WEBHOOK_SECRET>. Un cron quotidien (vercel.json, CRON_SECRET) re-vérifie les paiements Chariow en attente. Aucun paiement n'est crédité sur la foi du seul webhook Chariow : le statut est relu auprès du prestataire.
ADMIN_EMAILS, identité partagée avec les autres produits DembaSolution) : tableau de bord de la plateforme, entreprises (niveau, échéance, abonnement accordé à la main, prolongation d'essai, verrouillage), paiements, configuration (moyens de paiement proposés aux clients : Chariow actif, Bictorys et Moneroo prêts en attente de leurs clés ; produits Chariow par niveau et durée ; adresses des webhooks). Migration 33.npm run seed:demo crée l'entreprise « Riz du Delta » (campagnes, achats, production, usine, ventes, financement, paie, traçabilité, prévisions, rapprochement). Le lien « Découvrir » (/decouvrir-dagrobusiness) ouvre une session sans mot de passe sur les comptes direction, comptable ou RH./bienvenue (accueil), /tarifs, /decouvrir-dagrobusiness. Un visiteur non connecté sur / est redirigé vers l'accueil. Fiche à reprendre sur la landing DembaSolution : docs/fiche-produit-landing-dembasolution.md.docs/AUDIT.md.