MicroAI Paygate
An x402-style payment gateway for AI requests. Sign EIP-712, get a signed receipt, verify the signature client-side.
Membres, épargne, crédits, caisse, bureau de change et rapports réunis dans une seule plateforme pour les coopératives financières haïtiennes.
Translation pending
FinanceTypeScript · PLpgSQLGitHub @hebdev1OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Plateforme Core Banking pour coopératives d'épargne et de crédit haïtiennes. Next.js 16 · React 19 · Supabase · Tailwind 4.
npm install
cp .env.example .env.local # puis renseigner les valeurs Supabase
npm run dev
Ouvrir http://localhost:3000.
| Script | Description |
|---|---|
npm run dev | Serveur de développement (Turbopack) |
npm run build | Build de production |
npm start | Serveur de production (après build) |
npm run lint | ESLint |
npm run typecheck | Vérification TypeScript stricte (tsc --noEmit) |
npm test | Tests unitaires Vitest |
npm run test:watch | Vitest en mode watch |
npm run e2e | Tests end-to-end Playwright |
npm run db:types | Regénère src/types/database.ts depuis Supabase |
npm run db:pull | Synchronise les migrations depuis la base distante |
npm run db:push | Applique les migrations locales vers la base distante |
npm run db:reset | Réinitialise la base locale + applique migrations + seed |
npm run db:diff | Génère une migration depuis un diff (npm run db:diff -- nom) |
Le schéma de production est versionné dans supabase/migrations/.
export SUPABASE_ACCESS_TOKEN=sbp_xxxxxxxxxxxxxxxxxxx
npx supabase login --token $SUPABASE_ACCESS_TOKEN
npx supabase link --project-ref ebioqgjyzrhjxxlugzcz
npm run db:pull # crée supabase/migrations/<timestamp>_remote_schema.sql
npm run db:types # regénère src/types/database.ts
git add supabase/ src/types/database.ts
git commit -m "chore(db): baseline schema + types from remote"
npm run db:diff -- add_loans_penalty_column, la relire, commiter.npm run db:push (ou via GitHub Actions + service role key).npm run db:pull puis npm run db:types.Logique métier pure testée : intérêts, échéanciers, pénalités, change, clôture caisse.
npm test # run unique
npm run test:watch # watch
npm run test:coverage # + rapport de couverture HTML dans /coverage
Emplacement : src/**/*.{test,spec}.{ts,tsx}.
npm run e2e:install # première fois seulement
npm run e2e # run headless
npm run e2e:ui # mode interactif
Emplacement : e2e/*.spec.ts. Les parcours qui nécessitent une authentification
réelle sont marqués test.skip ; les activer après avoir mis en place un
utilisateur de test + SUPABASE_SERVICE_ROLE_KEY en env.
⚠️ Sur Next.js 16, la convention middleware a été renommée en
proxy. Le fichier src/proxy.ts gère l'authentification edge
(redirections /login ↔ /tableau-de-bord). Ne pas le renommer.
src/
├── app/ # App Router (marketing, auth, dashboard)
├── components/ # UI (brand, dashboard, marketing, ui)
├── hooks/ # React hooks
├── lib/
│ ├── finance/ # Logique métier pure (intérêts, change, caisse)
│ ├── supabase/ # Clients Supabase (client.ts, server.ts)
│ └── …
├── types/
│ └── database.ts # Types générés par `npm run db:types`
└── proxy.ts # Auth edge (Next.js 16 convention)
e2e/ # Tests Playwright
supabase/ # Migrations + seed + config local
.github/workflows/ # CI (lint · typecheck · unit · build · e2e)
Vercel : le push sur main déclenche un deploy automatique.
Les variables d'environnement requises sont documentées dans .env.example.
Formulaire de contact du site public : les demandes sont enregistrées dans la
table contact_requests (lecture depuis le dashboard Supabase). Pour recevoir
aussi un e-mail à chaque demande, définir les trois variables suivantes en
production :
RESEND_API_KEY=re_...
RESEND_FROM="CoopFinance <no-reply@votre-domaine-verifie>"
CONTACT_NOTIFY_EMAIL=equipe@votre-domaine