A full-featured IT support ticketing system for the County Government of Nyeri, Kenya. Built with PHP 8, SQLite, and vanilla CSS. Role-based access for Admin, ICT Officers, and Staff. Features: ticket management, real-time online indicators, analytics dashboard, audit logging, and SLA breach alerts.
# 🖥️ Nyeri County ICT Helpdesk System
A full-featured web-based IT support ticketing system developed for the **County Government of Nyeri, Kenya**. Built with PHP, SQLite, and vanilla CSS/JS — no frameworks required.
---
## 📸 Screenshots
> _Login Page · Admin Dashboard · Ticket Management · Reports_
---
## ✨ Features
### 👤 User (Staff)
- Submit IT support tickets with category, priority & description
- Track ticket status with a visual progress indicator
- See which ICT officer is assigned to their issue
- Comment back and forth with the ICT team
- Profile picture upload + account settings
### 🔧 ICT Officer
- View all assigned tickets sorted by priority
- Upcoming / Active ticket tab for quick triage
- Update ticket status (Open → In Progress → Resolved → Closed)
- Reassign tickets to other available officers
- Reply to users directly within the ticket thread
### 🛡️ Admin
- Full dashboard with live online user indicators (green dot)
- Assign tickets to ICT officers
- ICT Officer management (add, remove, reset passwords)
- View all users with department details
- 🔔 Real-time notification bell for new tickets (last 24h)
- **Reports & Analytics** — status charts, priority breakdown, department heatmap, officer performance, monthly volume trends, SLA breach alerts
- **Audit Log** — filterable record of all system actions with timestamps and IP addresses
### 🔐 System-wide
- Role-based access control (Admin / ICT Officer / User)
- **Remember Me** — persistent login for 30 days via secure tokens
- Profile picture upload with drag & drop
- Change password (signs out all remembered devices)
- Online presence tracking (last activity within 5 minutes)
- SLA breach detection (High: 4hrs, Medium: 24hrs, Low: 72hrs)
---
## 🗂️ Project Structure
```
ict-helpdesk/
├── database.db # SQLite database (NOT committed to git)
└── public/
├── index.php # Redirects to login
├── login.php …