Hospital IT hotline
# Kilifi Hospital IT Helpdesk
A lightweight IT support ticketing system built for Kilifi County Referral Hospital.
Staff submit IT requests without logging in. The IT team manages and resolves them via a protected dashboard.
---
## Tech stack
- **React** (Vite) — frontend
- **Supabase** — database, auth, realtime updates
- **React Router** — staff portal vs IT dashboard routing
- **Vercel** — hosting (free tier)
---
## Project structure
```
src/
├── components/
│ ├── staff/
│ │ ├── SubmitForm.jsx # Staff ticket submission form
│ │ └── TrackTicket.jsx # Staff ticket status tracker
│ ├── dashboard/
│ │ ├── Login.jsx # IT staff login
│ │ ├── Dashboard.jsx # Main IT dashboard
│ │ └── TicketDetail.jsx # Ticket update panel
│ └── shared/
│ └── index.jsx # Reusable UI components
├── hooks/
│ └── useTickets.js # All Supabase data logic
├── lib/
│ ├── supabase.js # Supabase client + DB schema SQL
│ └── constants.js # Categories, departments, styles
└── pages/
└── StaffPortal.jsx # Staff-facing layout
```
**Routes:**
- `/` → Staff portal (public — no login required)
- `/dashboard` → IT dashboard (requires IT staff login)
---
## Setup guide
### Step 1 — Supabase project
1. Go to supabase.com and create a free account
2. Create a new project (name it `kilifi-helpdesk`)
3. Wait for it to provision (~1 minute)
### Step 2 — Run the database SQL
1. In your Supabase dashboard → **SQL Editor** → **New query**
2. Copy the entire SQL block from `src/lib/supabase.js` (between the `===` lines)
3. Paste it and click **Run**
This creates:
- `tickets` table with auto-generated ticket numbers (`KH-0001`, `KH-0002`...)
- Row Level Security (staff can submit and read; only IT can update)
- `it_users` table for IT staff roles
- Auto-updating `updated_at` trigger
### Step 3 — Create IT staff accounts
1. Supabase dashboard → **Authentication** → **Users** → **Add …