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.