Constellation Planner

A playful daily planner where tasks become stars and completed tasks connect into custom constellations on a night-sky canvas. Users add tasks with tags and due times, drag stars to arrange their sky, and draw “constellation lines” between related tasks to form named patterns (saved to localStorage). Includes a simple focus mode that highlights one constellation at a time, showing progress, streaks, and a compact timeline panel for today’s tasks.

To Do30
Scaffold Vite app

Run: npm create vite@latest . -- --template react-ts && npm i && npm i -D tailwindcss postcss autoprefixer && npx tailwindcss init -p && npm i @tailwindcss/vite && npm i -D shadcn@latest && npx shadcn@latest init.

by system

Add Tailwind config

Configure Tailwind (content paths + @tailwind directives) and enable @tailwindcss/vite in vite.config.ts.

by system

Install shadcn primitives

Add shadcn/ui components used by the app (button, input, textarea, dialog, sheet, tabs, badge, card, separator, tooltip).

by system

Define app types

Create src/types.ts with Task, Tag, Constellation, Line, and persisted state interfaces.

by system

LocalStorage helpers

Create src/lib/storage.ts for load/save with versioning and basic validation.

by system

ID and time utils

Create src/lib/utils.ts for ID generation, date formatting, and today-range helpers.

by system

Planner state store

Create src/state/usePlannerStore.ts implementing a React hook store (tasks, stars positions, constellations, focus mode) with persistence.

by system

Seed demo data

Add src/state/seed.ts to generate a small initial dataset when no saved state exists.

by system

App shell layout

Create src/App.tsx with a two-panel layout (sky canvas + right sidebar) and top header.

by system

Header actions bar

Create src/components/HeaderBar.tsx with app title, add-task button, and focus-mode toggle.

by system

Sky canvas component

Create src/components/SkyCanvas.tsx rendering the night-sky background and hosting stars/lines layers.

by system

Star component

Create src/components/Star.tsx to render a task as a draggable star with status/tags styling.

by system

Drag star positioning

Implement pointer-based drag handling in Star.tsx updating stored x/y positions.

by system

Lines rendering layer

Create src/components/ConstellationLines.tsx to draw SVG/canvas lines between connected stars.

by system

Line creation tool

Add a “connect mode” interaction in SkyCanvas.tsx to click two stars and create a line.

by system

Line deletion interaction

Add ability to select a line and delete it (e.g., via context menu or delete key) with minimal UI.

by system

Constellation model actions

Add store actions to create/rename/delete constellations and assign/remove lines.

by system

Constellation naming dialog

Create src/components/ConstellationDialog.tsx for naming/renaming a constellation.

by system

Add task dialog

Create src/components/AddTaskDialog.tsx with fields for title, tags, and due time.

by system

Task form validation

Implement lightweight client validation in AddTaskDialog.tsx (required title, valid time format).

by system

Task list sidebar

Create src/components/TaskSidebar.tsx listing today’s tasks with status, due time, and tags.

by system

Task complete toggle

Add completion checkbox/button in TaskSidebar.tsx that updates task status and completion time.

by system

Star completion styling

Update Star.tsx to visually distinguish completed tasks and animate on completion.

by system

Focus mode state

Add focus-mode fields to the store (focusedConstellationId, enabled) and actions to set/clear.

by system

Focus mode overlay

Create src/components/FocusOverlay.tsx to dim non-focused stars/lines and highlight the active constellation.

by system

Constellation picker

Create src/components/ConstellationPicker.tsx to choose which constellation to focus on.

by system

Progress and streaks

Create src/components/ProgressPanel.tsx showing constellation completion %, today completed count, and streak computed from history.

by system

Timeline panel

Create src/components/TimelinePanel.tsx showing a compact chronological view of today’s tasks by due time.

by system

Keyboard shortcuts

Add src/components/Hotkeys.tsx wiring shortcuts (N add task, F focus toggle, Esc exit modes, Del remove selected line).

by system

Polish and empty states

Add basic empty/loading states, tooltips, and small UI polish across existing components without altering logic.

by system

In Progress0
In Review0
Done0