Trackers — Current Development
Current Status
All four tracker frontends are deployed and functioning. The July 2026 data migration from the old malikadnanakram Cloudflare account to sonantechai is complete. No pending migrations or broken features.
What Is Live
| Component | Status | Notes |
|---|---|---|
| Sonan Group Task Tracker | ✅ Live | Tasks, priorities, progress charts, timeline, categories |
| Harper's Preserve Task Tracker | ✅ Live | Same feature set as Sonan tracker |
| Woodridge Task Tracker | ✅ Live | Same feature set as Sonan tracker |
| Timesheet Tracker (frontend) | ✅ Live | Clock-in/out, pay periods, admin controls, tax settings |
| Task Tracker Worker API | ✅ Live | sonan-tracker-api.sonantechai.workers.dev |
| Timesheet Worker API | ✅ Live | sonan-timesheet-api.sonantechai.workers.dev |
| Shared D1 Database | ✅ Migrated | 2 employees, 606 time entries, 40 pay periods, 14 holidays |
July 2026 — Account Migration
The trackers were previously running on a separate Cloudflare account (malikadnanakram). In July 2026, all infrastructure was migrated to the primary sonantechai account and the D1 database was fully ported.
What Was Migrated
- Worker deployments: both workers redeployed to
sonantechaiaccount - Worker secrets:
API_KEYandENCRYPT_KEYset in new account - Database data: all timesheet data (employees, time_entries, pay_periods, stores, tax_settings, holidays) inserted into the new D1 database via
timesheet_migration.sql - Frontend config: timesheet frontend updated to point to new worker URL
Migration Results
| Table | Rows Migrated |
|---|---|
| employees | 2 |
| time_entries | 606 |
| pay_periods | 40 |
| stores | 1 |
| tax_settings | 12 (incl. admin_pw_hash) |
| holidays | 14 |
| Total | 1,384 rows across 685 SQL statements |
Schema Changes Applied During Migration
The new database schema differed from the export in several columns. These ALTER TABLE statements were prepended to the migration file:
ALTER TABLE time_entries ADD COLUMN week_number INTEGER DEFAULT 0;
ALTER TABLE pay_periods ADD COLUMN deductions_total REAL DEFAULT 0;
ALTER TABLE pay_periods ADD COLUMN deductions_json TEXT DEFAULT '[]';
ALTER TABLE pay_periods ADD COLUMN advances_total REAL DEFAULT 0;
ALTER TABLE pay_periods ADD COLUMN advances_json TEXT DEFAULT '[]';
ALTER TABLE pay_periods ADD COLUMN overtime_hours REAL DEFAULT 0;
ALTER TABLE pay_periods ADD COLUMN overtime_pay REAL DEFAULT 0;
ALTER TABLE pay_periods ADD COLUMN regular_hours REAL DEFAULT 0;
Tables excluded from migration (schema too divergent, non-critical): performance, audit_log, login_attempts.
Pending Work
No critical pending items. Possible future enhancements:
- Add Cloudflare Access (Zero Trust email OTP) to protect tracker frontends (currently only the hardcoded password gate)
- Caretaker portal (
caretaker-portal-Claude/) — React/Vite app that needs its own deployment setup (separate from the trackers) - Export timesheet reports as PDF or Excel from the tracker UI
How to Push Changes
For frontend changes (HTML files in Sonan/, HP/, WR/, sonan-timesheet/html/):
cd "E:\Claude_Projects\sonan-trackers"
git add sonan-tracker/Sonan/index.html # (or whichever file changed)
git commit -m "fix: ..."
git push origin main
Cloudflare Pages auto-deploys within ~60 seconds of the push.
For Worker changes (worker.js files), push to GitHub then ALSO run:
cd "E:\Claude_Projects\sonan-trackers\sonan-tracker"
npx wrangler deploy # task tracker worker
cd "E:\Claude_Projects\sonan-trackers\sonan-tracker\sonan-timesheet"
npx wrangler deploy # timesheet worker