Javis OS
Javis OS는 기업가를 돕는 에이전시 AI로, 업무를 지원하고 함께 성장합니다
저장소 정보는 아직 수집하지 않았습니다.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
dokkan
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Multi-tenant SaaS for shoe store management in Egypt. Arabic (RTL) and English (LTR). The currency is Egyptian pound (EGP), permanently - there is no currency setting or column.
Stack: Next.js (App Router) + TypeScript + Tailwind CSS, Supabase (PostgreSQL + Auth), GitHub, Vercel.
Included:
(store_id, id) foreign keys
so a row can never point at another store's data.create_store).Not built yet (Phase 2+): product screens, POS checkout, inventory and purchase operations, expenses, shifts, employees, reports, 80 mm receipts. The dashboard says so instead of faking data.
store_id. Policies allow a row only if the caller is an active member
of that store, and writes also check the member's role (owner / manager / cashier).sales, sale_items, sale_payments, purchases, stock_movements,
variant_stock, store_members) are read-only for browsers. Phase 2 writes to them only
through server-side SECURITY DEFINER functions that run as one transaction.variant_costs, readable only by owners/managers (never cashiers).stock_movements is append-only (a trigger rejects UPDATE/DELETE) and stock can never go negative.anon has no privileges on any table or function.Copy .env.example and fill in (Supabase: Project Settings -> API):
| Variable | Purpose |
|---|---|
NEXT_PUBLIC_SUPABASE_URL | Project URL |
NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY | Publishable key (safe for the browser) |
NEXT_PUBLIC_SITE_URL | Optional canonical URL for confirmation emails |
Phase 1 does not use a service-role/secret key. Never put one in a NEXT_PUBLIC_* variable.
In Supabase, set Authentication -> URL Configuration: Site URL to the deployed URL, and add
<site url>/auth/callback to the Redirect URLs, or confirmation emails will not return to the app.
npm install
npm run dev # local app
npm run typecheck
npm run lint
npm run test:unit # currency, i18n and Egypt data
npm run test:db # applies every migration to a throwaway local Postgres 16 and runs 76 RLS checks
test:db needs Postgres 16 server binaries and psql locally. It never touches a real project.
SQL lives in supabase/migrations/ and is applied in filename order. Apply the same files to the
hosted project (Supabase CLI db push, or the dashboard/MCP migration tool). Always re-run
npm run test:db after changing a migration.