## ✨ Features
### 🗂️ Activity Management
- Create, edit, and delete daily activity records
- Auto-generated task number per user per date
- Filter and search by date range, category, status, urgency, type, and location
- Bulk delete and bulk status update
- Pagination with configurable items per page
### 📈 Dashboard & Analytics
- Real-time KPI summary cards (Total, Complete, In Progress, Pending)
- Interactive charts: Category Breakdown, Status Distribution, Priority Distribution, Type Classification, Location Analysis, Activity Trend (last 30 days)
- Date range filter for all charts
### 📄 Report & Export
- Export activities to **PDF** (landscape, with analytics summary)
- Export activities to **HTML** (printable)
- Export activities to **CSV** (UTF-8 with BOM)
- Filter by date range before export
### ⏰ Overtime Management
- Record overtime per activity per date (one record per date per user)
- Auto-detect overtime type: **Weekday**, **Weekend**, **Holiday**
- Auto-calculate overtime cost based on configurable rate tables
- Meal expense and transportation allowance calculation
- Export overtime report to PDF
- Export overtime instruction letter (Surat Perintah Lembur) to PDF
### 👥 User Management
- Multi-role system: **Admin**, **User**, **Observer**
- Admin can create, edit, delete, and reset passwords for all users
- Observer can create new users (role: user only)
- Profile completion enforcement on first login
### 👤 User Profile
- First name, last name, employee ID
- Position, department, sub-department (linked to admin master data)
- Manager name, supervisor name
- Avatar upload (JPG/PNG/WEBP, max 250 KB, auto-cropped to 300×300)
- Profile completion popup on first login (required before using the app)
### 🔭 Observer Role
- Monitor activities of selected users (watch list)
- Watch list managed from My Profile settings
- Filter activities and overtime by watched user
- Can create new user accounts (role: user only)
- Cannot create, edit, or delete activities
### ⚙️ Admin Settings
- **Dropdown Options** — manage category, status, urgency, type, location values
- **Organization Profile** — manage positions, departments, sub-departments
- **Overtime Settings** — configure weekday rates, weekend rates, and public holidays
- **User Management** — full CRUD for all users
- **Audit Logs** — view and export system activity logs
### 🔒 Security
- Session-based authentication
- CSRF protection on all forms
- Role-based access control on every route
- Password hashing with `PASSWORD_DEFAULT`
- Input sanitization with `strip_tags()` and `esc()`
- XSS protection via CI4 output escaping