# Focus Desk A small, dependency-free task manager built with vanilla HTML, CSS and JavaScript. ## Run ```sh python3 -m http.server ``` Then open http://localhost:8000/ in a browser. (Opening `index.html` directly also works.) ## Features - Create tasks with a required title, optional notes, priority (low/medium/high) and optional due date. - Edit all fields inline, delete tasks, and toggle complete/incomplete (reversible). - Case-insensitive search across titles and notes, combined with status (all/active/completed) and priority filters. - Counts for total, active and completed tasks; overdue dates are highlighted. - All data persists in `localStorage` (key `focusdesk.tasks.v1`). Corrupt saved data is ignored gracefully and the app starts empty. ## Manual verification 1. Add a task with only whitespace in the title — it should be rejected with an error message. 2. Add tasks with different priorities, notes and due dates; reload the page — everything persists. 3. Toggle a task complete, then back to active; check the counts update. 4. Type in the search box and change both filters — results combine (e.g. search + "active" + "high"). 5. Clear all tasks or use filters that match nothing — the empty state appears. 6. Edit a task, change its title/notes/priority/due date, save, and reload to confirm. 7. In DevTools, set `localStorage.setItem('focusdesk.tasks.v1','not json')` and reload — the app loads empty without errors. 8. Resize the browser to ~390px and ~1440px — layout adapts with no horizontal scrolling.