尚未检测到更新。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.