World Vibe Web
The distributed app store for vibe-coded projects. Browse, discover, and install open-source apps from across GitHub.
Gérez votre boutique, superette ou commerce en Afrique avec HabaShop. POS, stock temps réel, clients, RH, rapports. Essai gratuit 14 jours, sans carte bancaire.
Translation pending
CommerceTypeScript · JavaScriptGitHub @ndjoumessiOnlineOwner 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
Loading the full README. The saved excerpt is shown below.
Solution complète de gestion pour commerces d'Afrique francophone (Sénégal, Côte d'Ivoire, Mali, Cameroun, RDC…) — épiceries, grossistes, demi-grossistes. [email protected] est SUPER_ADMIN (accès à la console /admin). Le login tente d'abord le backend réel ; en cas d'échec réseau, un mode démo local prend le relais pour ces comptes. Frontend • React 18 + TypeScript + Vite • Zustand (state management) + React Router v6 • Recharts (graphiques) • PWA (service worker, installable) • Déploiement : VercelRead the full README ↗
Solution complète de gestion pour commerces d'Afrique francophone (Sénégal, Côte d'Ivoire, Mali, Cameroun, RDC…) — épiceries, grossistes, demi-grossistes.
| Service | URL |
|---|---|
| Frontend | https://habashop.vercel.app |
| Backend | https://habashop-production.up.railway.app |
| GitHub | https://github.com/ndjoumessi/habashop |
Mot de passe commun : demo1234
| Rôle | Boutique | |
|---|---|---|
| [email protected] | SUPER_ADMIN | HabaShop — Dakar Central |
| [email protected] | MANAGER | HabaShop — Dakar Central |
| [email protected] | CASHIER | HabaShop — Dakar Central |
| [email protected] | ACCOUNTANT | HabaShop — Dakar Central |
| [email protected] | HR | HabaShop — Dakar Central |
| [email protected] | ADMIN | Alimentation Koné — Abidjan |
[email protected]estSUPER_ADMIN(accès à la console/admin). Le login tente d'abord le backend réel ; en cas d'échec réseau, un mode démo local prend le relais pour ces comptes.
@fastify/jwt) — payload { userId, tenantId, role }@fastify/rate-limit, @fastify/cors@fastify/swagger + swagger-ui)prisma migrate deploy au démarrage)apps/frontend)/api/ai/analyze, /api/ai/chat/admin) — boutiques, MRR, demandes de planswhere: { tenantId } sur chaque requêteuserId + tenantId + rolesignup crée un Tenant + un User rôle ADMINUser.email est globalement unique (@unique)| Plan | Prix/mois (XOF) | Utilisateurs | Produits |
|---|---|---|---|
| Starter | 9 900 F CFA | 1 | 100 max |
| Pro | 24 900 F CFA | 5 | Illimité |
| Enterprise | 49 900 F CFA | Illimité | Illimité |
status: trial, plan Starter)⚠️ Statut : le système de validation des plans (modèle
PlanRequest, routes/api/billing/*et/api/admin/plan-requests, page/app/upgrade,BillingBanner) est implémenté et committé mais pas encore déployé en production (déploiement backend Railway en attente). Le frontend dégrade proprement tant que les routes ne sont pas en ligne.
Base :
https://habashop-production.up.railway.app· Docs Swagger :/api/docs/html
POST /api/auth/register · POST /api/auth/login · GET /api/auth/meGET /api/tenant · PATCH /api/tenant · PUT /api/tenantGET /api/tenant/users · POST /api/tenant/usersGET|POST /api/products · PUT|DELETE /api/products/:id · GET /api/products/low-stockGET|POST /api/customers · PUT /api/customers/:id · GET|POST /api/customers/:id/loyaltyGET|POST /api/suppliers · PUT /api/suppliers/:idGET|POST /api/salesGET|POST /api/orders · PATCH /api/orders/:id/statusGET|POST /api/employees · PUT|DELETE /api/employees/:idGET|POST /api/bonuses · GET /api/bonuses/employee/:employeeId · DELETE /api/bonuses/:idGET|POST /api/salary-history · GET /api/salary-history/employee/:employeeIdGET|POST /api/expenses · PUT|DELETE /api/expenses/:idGET /api/analytics · GET /api/analytics/summaryGET /api/dashboard/stats · GET /api/reports/salesGET /api/export/:resource (products / customers / suppliers / sales / employees)GET /api/export/pdf/monthlyPOST /api/ai/analyze · POST /api/ai/chatPOST /api/whatsapp/broadcast · POST /api/whatsapp/send-alert · POST /api/whatsapp/send-ticketSUPER_ADMIN)GET /api/admin/stats · GET /api/admin/tenants · POST /api/admin/tenantsPOST /api/billing/request-plan · GET /api/billing/statusGET /api/admin/plan-requests · PATCH /api/admin/plan-requests/:idNode.js 20 requis. Un Node trop ancien casse
tsc/ Vite.
# Cloner
git clone https://github.com/ndjoumessi/habashop.git
cd habashop
# Dépendances (monorepo)
npm install
# Variables d'environnement
# apps/backend/.env → DATABASE_URL (PostgreSQL), JWT_SECRET, PORT (def. 3001)
# ANTHROPIC_API_KEY (IA), TWILIO_* (WhatsApp) — optionnels
# apps/frontend/.env → VITE_API_URL (def. https://habashop-production.up.railway.app)
# Prisma : générer le client + appliquer les migrations
npm run db:generate --workspace=apps/backend
npm run db:migrate --workspace=apps/backend # prisma migrate deploy
# Démarrer
npm run dev --workspace=apps/backend # API sur http://localhost:3001
npm run dev --workspace=apps/frontend # UI sur http://localhost:5173
# Frontend (build + déploiement Vercel — depuis apps/frontend)
cd apps/frontend && npm run build && npx vercel --prod
# Backend (build local)
cd apps/backend && npm run build # tsc -> dist/
# Backend (déploiement Railway, builder Docker)
# Le Dockerfile compile depuis src (tsc) puis exécute :
# prisma migrate deploy && node dist/server.js
ℹ️ Le frontend ne se déploie pas automatiquement au
git push: lancervercel --proddepuisapps/frontend(un déploiement depuis la racine renvoie un 404).
# Frontend — 22 tests (currency, pagination, i18n)
cd apps/frontend && npm test
# Backend — 8 tests (auth, JWT, isolation multi-tenant)
cd apps/backend && npm test
Tenant · User · Product · Sale · SaleItem · Customer · Supplier · PurchaseOrder · PurchaseOrderItem · Employee · EmployeeBonus · SalaryHistory · Expense · AuditLog · PlanRequest
Toutes les tables métier portent un
tenantId(isolation).PlanRequestet les champs de facturation duTenant(status,trialEnds, …) existent dans le schéma mais leur migration n'est pas encore appliquée en prod (voir le statut billing ci-dessus).
manifest.json + Service Worker (généré au build via vite-plugin-pwa)habashop/
├── apps/
│ ├── frontend/ # React 18 + TS + Vite (Vercel)
│ └── backend/ # Fastify + Prisma (Railway, Docker)
└── README.md
Propriétaire — © 2026 HabaShop. Tous droits réservés.