Makaiaanui is the central operations platform for the Pacific Games Tahiti 2027. It manages the complete logistics pipeline across 9 operational modules, from fleet dispatch to accreditation printing, catering schedules to VIP seating protocols.
Built as a single-page React application with a Supabase backend, it provides:
- 🔐 Role-based access (Admin, Back Office, Front Office, Member)
- 📊 Real-time dashboard with live activity tracking
- 🌐 Bilingual interface — French & English (full i18n coverage)
- 📑 Report engine — CSV, Excel, PDF exports across all modules
- 👥 Client Portal — white-label request submission with approval workflow
| Module | Description | Key Features |
|---|---|---|
| 🚗 Transport | Fleet & dispatch | Driver shifts, transfer manifests, live status tracking |
| 🏨 Accommodation | Rooming & allotments | Rooming lists, hotel allocation, budget estimation |
| 🍽️ Catering | Meal planning | Dietary tracking (veg/vegan/GF/halal), volume forecasting |
| 🎫 Hospitalities | VIP & protocol | Package management, seating allocation, quick-sale |
| 🏷️ Accreditations | Badge & identity | Zone authorization, print center, population matrix |
| 📦 Deliveries | Logistics & docks | Dock scheduling, QR signoff, delivery tracking |
| 🧺 Laundry | Linen services | Service catalog, status pipeline (collect→wash→ready→return) |
| 👕 Uniforms | Apparel inventory | Size distribution, warehouse stock, fast-deploy |
| ➕ Additional Services | Optional bookings | Catalog management, capacity limits, quick-booking |
| 🏢 CRM | Providers & clients | Contact directory, status management |
| 📨 Client Portal | Request hub | Submit & track requests, approve/reject workflow |
| Layer | Technology |
|---|---|
| Frontend | React 19, TypeScript 5.8, Vite 6 |
| Styling | Tailwind CSS v4, lucide-react icons |
| State | Zustand 5, React hooks |
| Routing | react-router-dom v7 |
| Backend | Supabase (Postgres + Auth + Realtime) |
| i18n | i18next + react-i18next (French / English) |
| Reports | xlsx (Excel), jsPDF + jspdf-autotable (PDF), PapaParse (CSV) |
| Auth | Supabase Auth (email/password + Google OAuth) |
- Node.js 18+
- A Supabase project
# 1. Clone the repository
git clone https://github.com/<your-org>/makaiaanui.git
cd makaiaanui
# 2. Install dependencies
npm install
# 3. Configure environment
cp .env.example .env
# Edit .env with your Supabase URL and anon key
# 4. Run SQL migrations
# Execute all .sql files in supabase/migrations/ via Supabase SQL Editor
# Then execute supabase/gap012_client_requests.sql for the client portal table
# 5. Start the dev server
npm run devThe app will be available at http://localhost:3000.
VITE_SUPABASE_URL="https://your-project.supabase.co"
VITE_SUPABASE_ANON_KEY="your-supabase-anon-key"
VITE_APP_NAME="Makaiaanui"makaiaanui/
├── src/
│ ├── components/ # Shared UI (Layout, Auth, Skeleton, BatchToolbar, Pagination)
│ ├── contexts/ # React contexts (Auth)
│ ├── hooks/ # Custom hooks (useApi — 16 data hooks, useBatchSelection)
│ ├── i18n/ # i18next config + locale files (en.json, fr.json)
│ ├── lib/ # Utilities (Supabase client, CSV/Excel/PDF exports)
│ ├── locales/ # Translation files (en.json, fr.json — 120+ keys each)
│ ├── pages/ # 16 page components (Dashboard, 9 modules, Settings, CRM, etc.)
│ ├── store/ # Zustand store (app state)
│ └── types/ # TypeScript interfaces (40+ typed models)
├── supabase/
│ └── migrations/ # SQL schema migrations + gap012_client_requests.sql
├── docs/ # Audit documentation (spec reconciliation, bug history, gaps)
├── package.json
├── vite.config.ts
├── tsconfig.json # strict: true — zero type errors
└── .env.example
| Role | Access |
|---|---|
| Admin | Full access — all modules, settings, user management, audit logs |
| Back Office | All operational modules + client portal review/approval |
| Front Office | Limited modules (transport, accommodation, accreditations, laundry, deliveries) |
| Member | Dashboard only |
Managed via Supabase RLS policies on all 17 tables + frontend route guards.
# Production build
npm run build # Outputs to dist/
# Preview build locally
npm run preview
# TypeScript check
npm run lint # tsc --noEmit (strict mode, zero errors)# Install Vercel CLI
npm i -g vercel
# Deploy
vercel --prodBuild settings for Vercel:
- Framework: Vite
- Build command:
npm run build - Output directory:
dist - Install command:
npm install
| Category | Resolved |
|---|---|
| 🐛 Bugs | 14/15 (+1 WONTFIX) |
| 🔤 Hardcoded strings | 35/35 |
| 🧹 Dead code | 18/18 |
| 🕳️ Application gaps | 14/14 |
| 📝 Total entry points | 81 resolved issues across 14 modules |
See docs/TODOFREEBUFF01.md for the complete bug-fix queue and docs/GLOBAL_BUG_HISTORY.md for all resolved entries.
MIT © 2026 — See LICENSE for details.