This is a web application built for all beauty service providers in zambia.( My final year project)
# GlamSlot
Web-based appointment booking PWA for beauty, spa, and massage services in Zambia.
Final year project — Angela Sinonge, Eden University.
**Stack:** React (Vite) + Tailwind CSS + Supabase (Postgres, Auth, Realtime, Edge Functions) + vite-plugin-pwa
**Backend status:** connected to your live Supabase project (`glamslot`,
ref `uupzgvjktlroiyneakgo`). The database, RLS policies, and both Edge
Functions are already deployed — see `supabase/DATABASE_DESIGN.md` for what's
actually live. `.env` in this zip is already filled in with that project's
public credentials, so you should be able to run this immediately.
---
## About the "app" folder
You won't find a `src/app/` folder here, and that's not a bug — it's a
different framework convention, not a missing piece:
- **Next.js** projects use `app/` (or older `pages/`) as a *required*,
file-based router — the folder structure itself defines your routes.
- **Vite + React Router** (what this project uses) has no required folder
name. `src/pages/` + `src/components/` + `src/lib/` is just a common,
totally normal convention for organizing a Vite app — the actual routing
is explicit, in `src/App.jsx`:
```jsx
} />
} />
...
```
Vite was the right call here (rather than Next.js) because this needs to be
a installable PWA wrapped for iOS/Android app stores via Capacitor later —
that path is simpler starting from a plain Vite SPA than from Next.js.
---
## How this solves the "DM the provider on WhatsApp/Instagram" problem
This was in your proposal's problem statement — customers currently have to
message a provider directly and wait for a reply to find out if a slot is
even free. The booking flow on `/providers/:id` removes that entirely:
a customer picks a service, date, and time, sees the provider's *real*
remaining capacity for that day before they commit, and the booking is
created immediately — no back-and-forth, no waiting on a DM reply. The
provider finds out via an in-app/push notification, not by having t …