Commit Graph

29 Commits

Author SHA1 Message Date
root
c5270926c7 feat(audit): add user activity logging with View Logs modal and CSV export on User Management page 2026-05-30 23:18:49 +08:00
root
48654e123d feat(stationmgmt): add CSV import and export buttons for station management 2026-05-30 22:48:57 +08:00
root
f58fc6fb77 fix(controller): resolve F-01 — HomeController now matches MapController dashboard data query 2026-05-30 22:20:20 +08:00
root
e6992a03cf fix(nav): resolve F-08 — fix broken stationmanagement link; F-09 — use @lang for Daily Rainfall labels 2026-05-30 22:19:28 +08:00
root
795dee8cd4 fix(view): resolve F-07 — replace broken '../index.php' link with dashboard route 2026-05-30 22:18:54 +08:00
root
05fdfac76d fix(route): resolve F-06 — fix route name typo 'thrshold' to 'threshold' 2026-05-30 22:18:38 +08:00
root
8f7ed77612 fix(controller): resolve F-05 — fix 'potrait' typo to 'portrait' in SirenController and NotificationController 2026-05-30 22:18:16 +08:00
root
d650655d59 fix(view): resolve F-04 — remove dead cumulative sum bug; F-10 — remove debug example row from threshold table 2026-05-30 22:18:04 +08:00
root
5410e0916d fix(controller): resolve F-01 — create missing HomeController with correct column names (lat/lng) 2026-05-30 22:17:29 +08:00
root
6a4de2ba22 fix(db): add ON CONFLICT DO NOTHING rules for sensor table duplicate inserts 2026-05-28 18:54:20 +08:00
root
bfdf528e76 docs: add CHANGELOG.md documenting all audit fixes, config changes, and DB recovery 2026-05-28 18:49:06 +08:00
root
90550e9530 fix(db): make users.email nullable to match existing data schema 2026-05-28 17:35:14 +08:00
root
549932b297 chore: add root .gitignore to exclude .env from version control 2026-05-28 17:03:20 +08:00
root
02d5c24502 chore: add .gitignore to exclude .env from version control 2026-05-28 16:52:28 +08:00
root
8538c1b8df fix(security): resolve F-24 — add URL validation for CCTV links, remove hardcoded http:// prefix 2026-05-28 16:41:50 +08:00
root
abdb5a9fcc fix(security): resolve F-23 — add Referrer-Policy and CSP headers to Nginx config 2026-05-28 16:40:35 +08:00
root
c873e4d261 fix(deploy): resolve F-19 — remove redundant COPY and dead comments in Dockerfile 2026-05-28 16:40:03 +08:00
root
fd8d392a08 fix(config): resolve F-18 — add .env.example with documented environment variables 2026-05-28 16:39:07 +08:00
root
118f550d31 fix(maintainability): resolve F-15 — remove all commented-out dead code blocks 2026-05-28 16:38:26 +08:00
root
f7f2736245 fix(reliability): resolve F-12 — wrap AdminController write operations in DB::transaction() 2026-05-28 16:36:07 +08:00
root
f9061ade2f fix(reliability): resolve F-11 — add required parameter validation to historical endpoints 2026-05-28 16:34:52 +08:00
root
509afdb4c8 fix(security): resolve F-10 — replace leaked exception messages with generic user-facing errors 2026-05-28 16:33:37 +08:00
root
07f22972ee fix(reliability): resolve F-09 — add error handling for FCM credential loading 2026-05-28 16:31:41 +08:00
root
3c83a809ea fix(security): resolve F-07 — standardize password policy to Password::defaults() 2026-05-28 16:28:41 +08:00
root
c863f6f81b fix(perf): resolve F-13 — add database indexes on joined/filtered columns 2026-05-28 16:27:45 +08:00
root
968c1e626f fix(security): resolve F-06 — escape translated strings in station type badges 2026-05-28 16:27:16 +08:00
root
d95cb57275 fix(security): resolve F-02 — parameterize SQL queries in WaterLevelController index() 2026-05-28 16:26:33 +08:00
root
e9fa6a2912 fix(security): resolve F-01 — parameterize SQL queries in RainfallController index() 2026-05-28 16:26:01 +08:00
root
b63cb6a3e8 Initial commit: existing codebase state 2026-05-28 16:25:22 +08:00