How vhaenzz/umroh works
This is an Indonesian Umroh and Haji travel-agency website: visitors browse and compare programs, inspect package details, then contact the agency through WhatsApp. The /admin CMS lets editors manage company and package content, upload media, and save or reset site data; the README documents Supabase multi-user storage with a local-file fallback. The route, data-store, and CMS edges are grounded in the supplied excerpts and README; unsampled page and component wiring is intentionally kept high-level.
Main entry points: store.ts CMS Data Store · CmsDashboard.tsx CMS Dashboard · umroh/page.tsx Umroh Catalog · haji/page.tsx Haji Catalog
Components 26
Public Website
- Home Page
src/app/page.tsx - Umroh Catalog
src/app/umroh/page.tsx - Haji Catalog
src/app/haji/page.tsx - Package Catalog View
src/components/PackageCatalogView.tsx - Umroh Details
src/app/umroh/[slug]/page.tsx - Haji Details
src/app/haji/[slug]/page.tsx - General Packages
src/app/paket/page.tsx - Package Details
src/app/paket/[slug]/page.tsx - Company and Info Pages
src/components/SiteContentPages.tsx - Shared Site Layout
src/app/layout.tsx
Packages and Content
- Contact Link Builder
src/lib/contact.ts - Package Seed Data
src/data/packages.ts - Package Types
src/types/package.ts
CMS Administration
- Admin Page
src/app/admin/page.tsx - CMS Dashboard
src/components/CmsDashboard.tsx - Media Upload
src/components/CmsMediaUpload.tsx - CMS API
src/app/api/cms/route.ts
Content Persistence
- Default Site Data
src/lib/cms/default-data.ts - CMS Data Store
src/lib/cms/store.ts - Supabase Server Access
src/lib/supabase/server.ts - Supabase Browser Access
src/lib/supabase/browser.ts - Local CMS Storage
Other components
- Visitor
- WhatsApp Contact
- CMS Editor
- Supabase
Connections 29
- Visitor → Home Page: opens site
- Visitor → Umroh Catalog: browses
- Visitor → Haji Catalog: browses
- Visitor → General Packages: browses
- Umroh Catalog → Package Catalog View: renders
- Haji Catalog → Package Catalog View: renders
- Umroh Catalog → CMS Data Store: reads packages
- Haji Catalog → CMS Data Store: reads packages
- Umroh Details → CMS Data Store: reads packages
- Haji Details → CMS Data Store: reads packages
- General Packages → CMS Data Store: reads packages
- Package Details → CMS Data Store: reads packages
- CMS Data Store → Default Site Data: loads fallback
- CMS Data Store → Supabase Server Access: reads or writes
- Supabase Server Access → Supabase: queries data
- CMS Data Store → Local CMS Storage: reads or writes
- Umroh Details → Contact Link Builder: builds inquiry link
- Haji Details → Contact Link Builder: builds inquiry link
- Contact Link Builder → WhatsApp Contact: opens chat
- CMS Editor → Admin Page: opens admin
- Admin Page → CMS Dashboard: renders
- CMS Dashboard → Supabase Browser Access: creates client
- CMS Dashboard → Media Upload: uses uploader
- CMS Dashboard → CMS API: loads or saves
- CMS API → CMS Data Store: reads or writes
- CMS API → Default Site Data: resets from seed
- Supabase Browser Access → Supabase: auth and media
- Shared Site Layout → CMS Data Store: reads company data
- Home Page → Package Seed Data: uses seed content