I need you to build a complete Senior Manager personal workspace web application. This is a full-stack Node.js + React app. Here is everything you need to know: WHO THIS IS FOR A Senior Manager at DEWA (Dubai Electricity and Water Authority) who manages 20+ projects across AI strategy, vendor partnerships, governance, people management, events, and strategic initiatives. They work in English, use Android and desktop, and need a fast, beautiful, focused app. TECH STACK Backend: Node.js + Express Frontend: React (Vite) Database: SQLite with better-sqlite3 (persistent, local, no cloud needed) AI: Anthropic Claude API (server-side only, never exposed to browser) Voice: Web Speech API with graceful fallback Styling: Tailwind CSS No authentication needed (personal use) FILE STRUCTURE TO CREATE my-workspace/ ├── server/ │ ├── index.js # Express server │ ├── db.js # SQLite setup and queries │ └── routes/ │ ├── tasks.js │ ├── projects.js │ ├── notes.js │ └── ai.js # AI inbox parser (Claude API) ├── client/ │ ├── index.html │ ├── vite.config.js │ └── src/ │ ├── main.jsx │ ├── App.jsx │ ├── index.css │ └── components/ │ ├── Today.jsx │ ├── Inbox.jsx │ ├── Projects.jsx │ ├── ProjectDetail.jsx │ ├── Tasks.jsx │ ├── Notes.jsx │ ├── FollowUps.jsx │ ├── People.jsx │ ├── WeeklyReview.jsx │ ├── Search.jsx │ ├── TaskCard.jsx │ ├── BottomNav.jsx │ └── ConfirmDialog.jsx ├── .env ├── .env.example ├── package.json └── README.md DATABASE SCHEMA Create these SQLite tables: sqlprojects: id, name, category, status, priority, description, last_update, next_step, created_at, updated_at tasks: id, title, notes, project_id, category, priority, status, assignee, due_date, is_follow_up, is_today_focus, completed_at, created_at, updated_at notes: id, title, body, project_id, date, created_at people: id, name, role, created_at (tasks already has assignee as text — people is a separate lookup table for the people view) CATEGORIES (use these exact ids and labels) ai → AI Adoption & Strategy → blue vendor → Vendor & Partnerships → purple gov → Governance & Reporting → amber people → People & Team → teal events → Events & External → coral/orange strategic → Strategic Initiatives → green adhoc → CAIO / EVP Ad Hoc → red SEED DATA — PROJECTS (pre-load these) AI Adoption & Strategy: - Microsoft Copilot Rollout (In Progress, High) - DEWA AI Academy (In Progress, High) - AI Command Center RFP (Open, High) - AI Champions Program (In Progress, High) - AI OS Initiative (In Progress, Urgent) - COE End-to-End (In Progress, High) - GitHub Copilot Plan (Open, High) - WalkMe & SAP Joule (In Progress, Medium) - Rummana at Work (Open, Medium) - Blink App AI Adoption (Open, Medium) Vendor & Partnerships: - Google Partnership & NDA (Waiting, Urgent) - Polynome Engagement (In Progress, High) - Genspark Engagement (Waiting, Medium) - IMD Proposal (Open, Medium) - Ducont Wave 2 (In Progress, High) - ElevenLabs Engagement (Open, Medium) - Dell Engagement (Open, Medium) - Coursera / Udemy Licenses (In Progress, Medium) Governance & Reporting: - I&TF Quarterly Report (In Progress, Urgent) - AI Charter & ISO 42001 (Open, High) - KPIs & Blueprint (In Progress, High) - IETF Benchmark (In Progress, High) People & Team: - Employees Rating (Open, High) - Data Champions Program (Open, Medium) - Outsource Assessment (In Progress, Medium) - AI Ambassadors Survey (In Progress, High) Events & External: - WEF Lighthouse (Open, High) - Gartner Data Summit (Open, Medium) - GenAI Week Emirates Towers (Open, Medium) - Microsoft Community Conference (Open, Medium) Strategic Initiatives: - AlHasbah Use Cases Phase I (In Progress, High) - Digital DEWA Direction (Open, High) - D2D Workshop (In Progress, High) - AICC ROI Tracking (Open, High) CAIO / EVP Ad Hoc: - EVP MD Finance Agent (Open, Urgent) - CAIO AI OS Initiative (In Progress, High) SEED DATA — TASKS (pre-load these from the notebook) - Google NDA: meet Legal Affairs + Hadi + CAIO (vendor, Urgent, assignee: Hadi, follow-up: true) - Chandini to provide process map of features announcement (ai, High, assignee: Chandini, follow-up: true) - Copilot ROI analysis (ai, High, assignee: Self) - AlHasbah KPIs review with Shabeer (gov, High, assignee: Shabeer, follow-up: true) - I&TF Quarterly report — Wafa, Ayesha, Umme, Nixon, Chandini (gov, Urgent, due: 2026-03-27) - EVP asked for MD Finance Agent (adhoc, Urgent) - WEF Lighthouse document — shared with Hamid and Ahmad AlShehhi (events, High, assignee: Hamid, follow-up: true) - Check Udemy license distribution across divisions (ai, Medium) - GitHub Copilot end-to-end plan (ai, High) - Benchmark presentation meeting on 13 Apr (gov, High, assignee: Hamid, due: 2026-04-13, follow-up: true) - Polynome NDA to be signed (vendor, High, follow-up: true) - AI Ethics & Governance workshop for AI Champions (ai, High) - Copilot Studio Kit demo with Yasa (ai, High, assignee: Yasa) - Check with Microsoft to connect Viva Learning team (vendor, Medium) - D2D issue still open (strategic, High) - Staff mobile allowance (people, Medium) - Universities update (events, Medium) - Follow up on Anthropic contacts (vendor, High, follow-up: true) - Genspark credit issue resolution (vendor, Medium, follow-up: true) - Survey for AI Champions — measure performance (ai, High) SEED DATA — PEOPLE Chandini, Hamid, Wafa, Ayesha, Shabeer, Hadi, Abdulla, Ahmed, Yasa, Sunil, Umme, Nixon, Rakish, Ummehani, Saif, Santhosh, Abida, Marwan, Moaza, Meera AlKitbi FEATURES TO BUILD TODAY VIEW Shows only tasks marked is_today_focus = true and status != Done Date header with day + date 4 metric cards: Today's focus count, Total open tasks, Open follow-ups, Active projects Task cards with: title, priority badge, category badge, status badge, assignee, due date (red if overdue) Blue filled circle = pinned to today. Empty circle = not pinned. Click to toggle Below pinned tasks: "Add to today" section showing top 5 urgent/high tasks not yet pinned Empty state: friendly message + link to tasks INBOX (AI-POWERED) Large textarea for natural language input Voice button using Web Speech API (shows "Listening..." state) "Process" button → calls POST /api/ai/parse → returns structured JSON Show parsed result as an EDITABLE card (user can change any field before saving) Fields: title (editable text), type (task/note/project), category (dropdown), priority (dropdown), assignee (text), due date (date), follow-up (checkbox), notes (textarea) "Save to workspace" confirms. "Edit & save" lets them modify first "Discard" clears it Show last 5 items added via inbox as history PROJECTS VIEW Category filter pills (scrollable, horizontal) Status filter: All / Open / In Progress / Waiting / Done Project cards showing: name, category badge, priority badge, status badge, open task count, last update date Click project → opens ProjectDetail New Project button PROJECT DETAIL Full page view for one project Header: project name, category, priority, status (all editable inline) "Last update" text field (what happened last) "Next step" text field (what needs to happen) Description/context textarea Tasks tab: all tasks for this project, + Add Task button Notes tab: all notes for this project, + Add Note button Back button TASKS VIEW Search bar at top (searches title + notes + assignee) Filter by status, category, priority Sort by: due date, priority, created date Task cards with all fields New Task button Bulk actions: mark selected as done NOTES VIEW Date-sorted, newest first Each note shows: title, date, linked project (if any), preview of body Click to expand full note New Note button FOLLOW-UPS VIEW All tasks where is_follow_up = true and status != Done Grouped by assignee Shows how many days since created "Nudge" button copies a follow-up message to clipboard: "Hi [name], just following up on: [task title]" PEOPLE VIEW List of all people Click a person → see all tasks assigned to them grouped by status Shows: waiting on them (follow-ups), tasks they own, completed by them WEEKLY REVIEW VIEW Tasks completed this week Tasks added this week Overdue tasks Follow-ups older than 7 days Projects with no activity this week Button: "Start next week" → clears today focus, prompts to pick new focus items SEARCH Global search bar in header Searches: task titles, notes titles+body, project names Results grouped by type Keyboard shortcut: Cmd+K / Ctrl+K UI / UX REQUIREMENTS Design philosophy: Clean, calm, professional. Think Linear + Notion + Agenda combined. Not corporate, not playful — focused. Font: Inter (import from Google Fonts) Color system: Use Tailwind. Primary accent: #185FA5 (blue). Category colors as defined above Background: #FAFAFA (near white), cards: pure white with subtle border Dark mode: supported via Tailwind dark: classes, toggle in header Mobile-first: bottom navigation bar on mobile (Today, Inbox, Projects, Tasks, More) Desktop: left sidebar navigation with icons + labels Card design: clean white cards, 1px border (#E5E7EB), 8px radius, 16px padding, subtle hover state Priority badges: Urgent=red, High=amber, Medium=blue, Low=green — all as small pills Category badges: each category has its own color pill Status badges: Open=gray, In Progress=blue, Waiting=amber, Done=green Transitions: 150ms ease on hover, focus states on all inputs Empty states: illustrated with a short message and a CTA button Delete: always requires a confirmation dialog (ConfirmDialog component) Responsive: works perfectly on 375px (iPhone SE) up to 1440px desktop Loading states: skeleton loaders on all data fetches Toast notifications: success/error on all save/delete actions API ROUTES GET /api/projects POST /api/projects PUT /api/projects/:id DELETE /api/projects/:id GET /api/tasks POST /api/tasks PUT /api/tasks/:id DELETE /api/tasks/:id PATCH /api/tasks/:id/focus (toggle today focus) PATCH /api/tasks/:id/status (quick status update) GET /api/notes POST /api/notes PUT /api/notes/:id DELETE /api/notes/:id GET /api/people POST /api/people POST /api/ai/parse (receives text, returns parsed JSON via Claude API) GET /api/search?q= (searches tasks + projects + notes) GET /api/weekly-review (returns this week's stats) AI PARSER PROMPT (use this in server/routes/ai.js) System: You are a workspace assistant for a Senior Manager at DEWA (Dubai Electricity and Water Authority). Extract structured data from natural language input and return ONLY valid JSON. Categories: ai, vendor, gov, people, events, strategic, adhoc People at DEWA: Chandini, Hamid, Wafa, Ayesha, Shabeer, Hadi, Abdulla, Ahmed, Yasa, Sunil, Umme, Nixon, Rakish, Ummehani, Saif, Santhosh, Abida, Marwan, Moaza, Meera AlKitbi Return this exact structure: { "type": "task" | "note" | "project", "title": "concise action-oriented title", "details": "full context preserved", "category": "category id", "priority": "Urgent" | "High" | "Medium" | "Low", "assignee": "person name or empty string", "due": "YYYY-MM-DD or empty string", "isFollowUp": true | false, "projectHint": "most likely related project name or empty string", "suggestedTodayFocus": true | false } ENV FILE ANTHROPIC_API_KEY=your_key_here PORT=3001 NODE_ENV=development PACKAGE.JSON scripts json"dev": "concurrently \"npm run server\" \"npm run client\"", "server": "nodemon server/index.js", "client": "vite client", "build": "vite build client", "start": "node server/index.js" README — include: Prerequisites Installation steps How to get Anthropic API key How to run How to use the Inbox How to deploy (optional) Build everything completely. All files. All components. Full working code. Seed the database on first run. Make it beautiful and functional.