A secure Employee Attendance Management System for the Kenya Police Service ICT Department with GPS verification, QR attendance, IP authentication, and real-time reporting.
# Kenya Police Service ICT Staff and Attachees Attendance and Daily Work Register System
A production-ready web application for the **Kenya Police Service - Vigilance House ICT Office** to manage
daily attendance and work records for ICT staff and attachees.
## Technology Stack
- **Frontend:** HTML5, CSS3, Vanilla JavaScript (AJAX)
- **Backend:** Node.js, Express.js (RESTful, MVC)
- **Database:** MySQL (HeidiSQL compatible)
## Key Features
- Account registration, login, password reset, profile management
- Office-network verified attendance check-in / check-out
- Server-side time (Africa/Nairobi) - client time is never trusted
- Daily work log module (create / edit / delete)
- Admin panel: dashboard, user management, attendance management, reports, audit logs
- Reports exported as PDF, Excel and CSV
- Security: bcrypt password hashing, sessions, CSRF, Helmet, input validation,
prepared statements, login attempt limits, audit logging
## Quick Start
1. Install Node.js (18+) and MySQL.
2. Import the database: `database/schema.sql` (using HeidiSQL or the MySQL CLI).
3. Copy `.env.example` to `.env` and update the values.
4. Install dependencies: `npm install`
5. Start the server: `npm start` (or `npm run dev` for auto-reload)
6. Open `
localhost`
## Default Accounts
| Role | Login | Password |
|-------|------------------------|------------|
| Admin | gathandidaniel@gmail.com | Daniel@123 |
| Staff | jdoe@police.go.ke | Staff@123 |
See the `documentation/` folder for full guides.
## Project Structure
```
client/public Frontend (HTML, CSS, JS, images)
server/ Express app (MVC)
config/ DB & settings
controllers/ Request handlers
models/ Database queries
routes/ API & page routes
middleware/ Auth, upload, rate limiting
services/ Business logic (attendance, reports)
utils/ Helpers (time, validators, logger)
database/ MySQL schema + sample data
uploads/ …