MicroAI Paygate
An x402-style payment gateway for AI requests. Sign EIP-712, get a signed receipt, verify the signature client-side.
Concentrez-vous sur votre métier. OREN s'occupe du reste. Devis et factures professionnels en quelques secondes.
Translation pending
FinanceTypeScript · PLpgSQLGitHub @digick2025-droidOnlineOwner 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 ↗Assistant de création de devis professionnels en moins de 2 minutes, pensé pour les artisans et autoentrepreneurs (espace OHADA). Devis, factures, PDF, partage WhatsApp, abonnements avec quotas et mode Express sans compte.
src/
app/ Routes (App Router)
(app)/ Écrans connectés (accueil, documents, clients, catalogue, réglages…)
api/payments/ Paiement (simulé, interface CamerPay-compatible)
connexion/ Auth email + mot de passe
inscription/ Création de compte B2B
mot-de-passe-oublie/ Récupération de mot de passe
express/ Devis express sans compte
offres/ Page des offres (publique)
components/ UI réutilisable (bouton, carte, navigation…)
features/ Modules métier (auth, company, clients, catalog, documents, payments)
hooks/ Hooks React Query par domaine
lib/ Moteur de calcul, formats, Supabase, constantes
services/ Services indépendants :
pdf/ Moteur PDF (modèles interchangeables)
payments/ PaymentProvider (simulé → CamerPay)
whatsapp.ts Liens wa.me
types/ Types BDD et domaine
supabase/migrations/ Schéma SQL, RLS, fonctions métier
Créer un projet Supabase puis exécuter les migrations dans l'ordre
(SQL Editor ou supabase db push) :
0001_initial_schema.sql → 0002_rls_policies.sql → 0003_functions.sql
Configurer l'authentification par email : Dashboard → Authentication → Providers → Email (activer). Désactiver le provider Phone si vous n'utilisez plus l'OTP SMS. Authentication → URL Configuration :
http://localhost:3000 (dev) ou votre domaine de productionhttp://localhost:3000/auth/callback, https://votre-domaine/auth/callbackVariables d'environnement : copier .env.example vers .env.local
et renseigner l'URL Supabase, la clé anon et NEXT_PUBLIC_SITE_URL.
Lancer :
npm install
npm run dev
| Commande | Rôle |
|---|---|
npm run dev | Serveur de développement |
npm run build | Build de production |
npm run lint | ESLint |
npm run typecheck | Vérification TypeScript |
npm test | Tests unitaires (calculs, TVA, conversion, quotas, numérotation) |
Les offres sont configurées en base (table plans) — jamais codées en dur :
Deux offres affichées (migration 0042_offres_simplifiees.sql) :
| Offre | Prix | Documents |
|---|---|---|
| Gratuit | 0 F | 5 par mois |
| Pro | 950 F / semaine · 2 900 F / mois · 29 000 F / an | illimités, logo |
Le document à l'unité (500 F, offre express) n'est pas une carte : il est
proposé au blocage du quota et en Express sans compte. L'offre business
est désactivée ; ses abonnés ont été basculés en Pro.
Le quota est vérifié côté base (assert_quota) à chaque création de
document ; le compteur mensuel est calculé sur les documents créés dans le
mois calendaire.
deleted_at).security definer
avec vérification de propriété).NEXT_PUBLIC_* sont
exposées).src/services/payments/ expose une interface PaymentProvider. Le MVP
utilise SimulatedPaymentProvider (variable PAYMENT_PROVIDER=simulated).
Pour brancher CamerPay : implémenter PaymentProvider dans camerpay.ts
et l'enregistrer dans getPaymentProvider() — aucun composant à modifier.
src/services/pdf/ est un moteur indépendant : il reçoit des données et
rend un HTML A4 imprimable. Le modèle classic reprend le prototype ;
d'autres modèles s'ajoutent dans templates/ + le registre TEMPLATES.
NEXT_PUBLIC_SUPABASE_URL, NEXT_PUBLIC_SUPABASE_ANON_KEY
et PAYMENT_PROVIDER=simulated dans les variables d'environnement.main = production, develop = préproduction).Fonctionnalités volontairement hors MVP (cahier des charges) :
logos déjà migré)