World Vibe Web
The distributed app store for vibe-coded projects. Browse, discover, and install open-source apps from across GitHub.
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证正在加载完整 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. [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 : Vercel查看完整 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.