Lalabase
Tickets, Doku, Zeiterfassung und Kundengespräche an einem Ort, durchsuchbar per KI. Für Softwarefirmen mit Kundenprojekten. Open Source: auf deinem eigenen Server oder in unserer Cloud in Deutschland.
Translation pending
Ventes, stock, crédits, dépenses et rapports — tout pour gérer votre business
Translation pending
BusinessTypeScript · JavaScriptGitHub @Ya-usmanOnlineOwner 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.
Smart inventory management system for Northern Nigeria boutiques.
Bilingual (English + Hausa) · Nigerian Naira (₦) · Mobile-first PWA.
1. Create a new project at supabase.com
2. Go to SQL Editor and run supabase/migrations/001_schema.sql
3. Create auth users in Authentication → Users:
• [email protected] (owner)
• [email protected] (cashier)
• [email protected] (stock_manager)
4. Run supabase/seed.sql to populate deRead the full README ↗Smart inventory management system for Northern Nigeria boutiques. Bilingual (English + Hausa) · Nigerian Naira (₦) · Mobile-first PWA.
┌─────────────────────────────────────────────────────┐
│ FRONTEND (Next.js 14) │
│ PWA · Tailwind CSS · shadcn/ui · Framer Motion │
│ next-intl (EN/Hausa) · Recharts · jsPDF │
└──────────────────────┬──────────────────────────────┘
│ Supabase JS Client
┌──────────────────────▼──────────────────────────────┐
│ SUPABASE │
│ ┌─────────────┐ ┌──────────┐ ┌────────────────┐ │
│ │ PostgreSQL │ │ Auth │ │ Storage │ │
│ │ + RLS │ │ Magic │ │ receipts/ │ │
│ │ Realtime │ │ Links │ │ product-imgs/ │ │
│ └─────────────┘ └──────────┘ └────────────────┘ │
│ ┌─────────────────────────────────────────────────┐ │
│ │ Edge Functions │ │
│ │ · low-stock-alert (cron 8am WAT) │ │
│ │ · daily-report (cron 9pm WAT) │ │
│ │ · paystack-webhook │ │
│ │ · generate-receipt │ │
│ └─────────────────────────────────────────────────┘ │
└──────────────────────────────────────────────────────┘
│ │ │
Paystack Resend WhatsApp
(Payments) (Email) (Deep Links)
git clone https://github.com/YOUR_USERNAME/stockshop-stock.git
cd stockshop-stock
npm install
cp .env.example .env.local
# Fill in your Supabase, Paystack, and Resend keys
supabase/migrations/001_schema.sql[email protected] (owner)[email protected] (cashier)[email protected] (stock_manager)supabase/seed.sql to populate demo data.env.localnpm run dev
Open http://localhost:3000 → redirects to /en/login
Run the full SQL schema from supabase/migrations/001_schema.sql in the SQL Editor.
This creates:
receipts, product-images, shop-logossales, products, stock_movements, paymentsDeploy via Supabase CLI:
npm install -g supabase
supabase login
supabase link --project-ref YOUR_PROJECT_REF
supabase functions deploy low-stock-alert
supabase functions deploy daily-report
supabase functions deploy paystack-webhook
supabase functions deploy generate-receipt
Set secrets for Edge Functions:
supabase secrets set PAYSTACK_SECRET_KEY=sk_test_xxx
supabase secrets set RESEND_API_KEY=re_xxx
supabase secrets set [email protected]
Run in SQL Editor:
-- Low stock alert at 8am WAT (7am UTC)
select cron.schedule(
'low-stock-alert',
'0 7 * * *',
$$
select net.http_post(
url := 'https://YOUR_PROJECT_REF.supabase.co/functions/v1/low-stock-alert',
headers := '{"Authorization": "Bearer YOUR_ANON_KEY"}'::jsonb
)
$$
);
-- Daily report at 9pm WAT (8pm UTC)
select cron.schedule(
'daily-report',
'0 20 * * *',
$$
select net.http_post(
url := 'https://YOUR_PROJECT_REF.supabase.co/functions/v1/daily-report',
headers := '{"Authorization": "Bearer YOUR_ANON_KEY"}'::jsonb
)
$$
);
.env.localhttps://YOUR_PROJECT_REF.supabase.co/functions/v1/paystack-webhookhttps://YOUR_DOMAIN.vercel.app/api/paystack/webhookcharge.successCard: 4084 0840 8408 4081
Expiry: Any future date
CVV: 408
PIN: 0000
OTP: 123456
| Feature | Owner | Cashier | Stock Manager | Viewer |
|---|---|---|---|---|
| Dashboard (live) | ✅ | ❌ | ❌ | ✅ (limited) |
| Point of Sale | ✅ | ✅ | ❌ | ❌ |
| View buying prices | ✅ | ❌ | ❌ | ❌ |
| Sales history (all) | ✅ | Own only | ❌ | ❌ |
| Manage stock | ✅ | ❌ | ✅ | ❌ |
| Reports & PDF export | ✅ | ❌ | ❌ | ❌ |
| Manage team | ✅ | ❌ | ❌ | ❌ |
| WhatsApp/email alerts | ✅ | ❌ | ❌ | ❌ |
| Settings | ✅ | ❌ | ❌ | ❌ |
Hausa role names: Maigida (Owner) · Mai Sayarwa (Cashier) · Mai Kaya (Stock Manager) · Mai Kallo (Viewer)
The app name on the homescreen will be "NC Stock"
.env.exampleNEXT_PUBLIC_SUPABASE_URL
NEXT_PUBLIC_SUPABASE_ANON_KEY
SUPABASE_SERVICE_ROLE_KEY
NEXT_PUBLIC_PAYSTACK_PUBLIC_KEY
PAYSTACK_SECRET_KEY
RESEND_API_KEY
RESEND_FROM_EMAIL
NEXT_PUBLIC_WHATSAPP_NUMBER
NEXT_PUBLIC_SITE_URL
| Layer | Technology |
|---|---|
| Framework | Next.js 14 (App Router) |
| Language | TypeScript |
| Styling | Tailwind CSS + shadcn/ui |
| Animations | Framer Motion |
| Forms | React Hook Form + Zod |
| Charts | Recharts |
| i18n | next-intl (EN + Hausa) |
| jsPDF + jspdf-autotable | |
| Database | Supabase PostgreSQL |
| Auth | Supabase Auth |
| Realtime | Supabase Realtime |
| Storage | Supabase Storage |
| Functions | Supabase Edge Functions |
| Payments | Paystack |
| Resend | |
| Deployment | Vercel |
stockshop-stock/
├── app/
│ ├── [locale]/
│ │ ├── (auth)/login/ ← Login page
│ │ ├── (app)/
│ │ │ ├── dashboard/ ← Live dashboard
│ │ │ ├── sales/new/ ← Point of Sale
│ │ │ ├── sales/history/ ← Sales history
│ │ │ ├── stock/ ← Stock management
│ │ │ ├── stock/movements/ ← Movement log
│ │ │ ├── payments/ ← Credit payments
│ │ │ ├── customers/ ← Customer list
│ │ │ ├── suppliers/ ← Supplier list
│ │ │ ├── reports/ ← Business reports
│ │ │ ├── team/ ← Team management
│ │ │ └── settings/ ← Shop settings
│ │ └── offline/ ← PWA offline page
│ └── api/
│ ├── team/invite/ ← Invite employee
│ └── paystack/webhook/ ← Payment webhook
├── components/
│ ├── ui/ ← shadcn/ui components
│ ├── layout/ ← App layout, nav
│ └── dashboard/ ← Dashboard widgets
├── lib/
│ ├── supabase/ ← Client + server
│ ├── types/ ← TypeScript types
│ ├── hooks/ ← Custom hooks
│ ├── utils/ ← Currency, PDF, WhatsApp
│ └── validations/ ← Zod schemas
├── messages/
│ ├── en.json ← English strings
│ └── ha.json ← Hausa strings
├── supabase/
│ ├── migrations/001_schema.sql
│ ├── seed.sql
│ └── functions/ ← Edge Functions
└── public/
├── manifest.json ← PWA manifest
└── icons/ ← App icons
Built with ❤️ for Northern Nigeria boutique owners.
For issues, open a GitHub issue or contact via WhatsApp.