Logo Lanfrica

cyberpolco/polco-tours

Domain:

socioeconomic

Record type:

softwareproject
Creator:
cyb
Host:
POLCO TOURS is a Tourism Operating System for the Democratic Republic of Congo and Namibia. It combines tour package sales with tourism operations management, connecting tourists, tour operators, guides, drivers, vehicle owners, hotels, restaurants, visa facilitators and other tourism actors on one secure platform. # POLCO TOURS Tourism Operating System for **Namibia** and the **Democratic Republic of Congo**. This repository is the **Phase 0 foundation** from the engineering design package (Volumes 1–11). It establishes the pipeline, database, access control and quality gates that every later phase builds on. Stack (DR-001): **Next.js** (App Router, TypeScript) on **Vercel**, **Neon PostgreSQL** with **Prisma**, **Better Auth** + RBAC, **DPO Pay** (Phase 1). Launch operator: **Lam**, holding SUPERADMIN across both countries (DR-005). --- ## Phase 0 exit criteria - [x] Repo structured by module boundaries (`src/modules/*`, Vol. 5 §5.2) - [x] GitHub → Vercel pipeline with CI gates (`.github/workflows/ci.yml`) - [x] Neon environments, branch-per-PR ready (`DATABASE_URL` / `DIRECT_URL`) - [x] Auth + RBAC skeleton (`src/lib/auth.ts`, `src/lib/rbac.ts`) - [x] Design tokens + landing surface (`tailwind.config.ts`, `src/app`) - [x] Per-country tax table seeded (`prisma/seed.ts`, DR-006) - [x] Observability baseline (`src/lib/logger.ts`, health probe) - [x] **RLS proven by a cross-tenant test** (`tests/rls.cross-tenant.test.ts`) The last item is the gate: `npm test` must pass, which means Row-Level Security isolates tenants against a real Postgres. --- ## Local setup ```bash # 1. Install npm install # 2. Configure env cp .env.example .env # fill DATABASE_URL / DIRECT_URL (Neon) + BETTER_AUTH_SECRET # 3. Create schema, apply RLS policies, seed Lam + tax rates npm run db:setup # = db:push + db:rls + db:seed # 4. Finalize Better Auth tables (emits into schema, then push) npx @better-auth/cli@latest generate npm run db:push # 5. Run npm run dev # localhost (health: /api/v1/health) ``` ### Scripts | Script | Purpose | |--------|---------| | `npm run dev` / `build` / `start` | Next.js dev / production build / serve | | `npm run lint` / `typecheck` | ESLint / `tsc --noEmit` | | `npm test` / `test:watch` | Vitest (unit + RLS) | | ` …