Ecommerce Template
Modern ecommerce template built with Next.js 16, React 19, Drizzle, Better Auth, Supabase, and Stripe.
Stock, caisse, commandes WhatsApp et Instagram, crédits clients : Sama Stock suit tout et vous prévient avant la rupture. 14 jours gratuits, sans carte bancaire.
Translation pending
CommerceTypeScript · CSSGitHub @RassoulTechOnlineOwner 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
Sama Stock - gestion de stock pour commerçants sénégalais
Translation pending
Taken from the repository README
Loading the full README.
Read the full README ↗Gestion de stock, caisse, commandes en ligne et crédits clients pour les commerçants du Sénégal (SaaS multi-commerces).
Next.js 16 (App Router) · React 19 · TypeScript · Tailwind CSS 4 + shadcn/ui · Neon Postgres + Drizzle ORM · Better Auth (email/mot de passe + Google) · Vitest · déploiement Vercel.
cp .env.example .env # puis renseigner DATABASE_URL, BETTER_AUTH_SECRET…
npm install
npm run db:migrate # applique les migrations SQL (dossier drizzle/)
npm run dev # http://localhost:3000
npm test # tests unitaires des règles métier
npm run typecheck
| Dossier | Rôle |
|---|---|
src/lib/domain/ | Règles métier pures et testées (droits, formules, coût moyen, statuts de commande) |
src/server/context.ts | Session → commerce → rôle → état de la formule ; garde-fous des pages et des actions |
src/server/actions/ | Server Actions (toutes passent par runAction + requireActionContext) |
src/server/queries/ | Lectures en base par module |
src/server/services/stock.ts | Seul point d'écriture du stock (applyStockMovement, verrouillage des lignes) |
src/app/(app)/ | Écrans de l'application connectée |
src/app/admin/ | Espace super-administrateur (emails listés dans ADMIN_EMAILS) |
| Variable | Rôle |
|---|---|
DATABASE_URL | Chaîne de connexion Neon (pooler) |
BETTER_AUTH_SECRET | Secret de signature des sessions |
BETTER_AUTH_URL / NEXT_PUBLIC_APP_URL | URL publique de l'application |
GOOGLE_CLIENT_ID / GOOGLE_CLIENT_SECRET | Connexion Google (facultatif) |
ADMIN_EMAILS | Emails des super-administrateurs, séparés par des virgules |