Constellation Planner

A playful daily planner where tasks become “stars” you place on a night-sky canvas and connect into constellations representing goals or projects. Users can create tasks with due dates and tags, drag them around the sky, draw connections to form constellations, and mark stars complete to make them glow or fade. Everything is client-side with localStorage persistence, plus simple views for Today/This Week and a constellation gallery to filter and review progress.

To Do30
Scaffold app + UI

Run: npm create vite@latest . -- --template react-ts && npm i && npm i -D tailwindcss postcss autoprefixer && npx tailwindcss init -p && npm i @radix-ui/react-dialog @radix-ui/react-dropdown-menu @radix-ui/react-popover @radix-ui/react-tabs @radix-ui/react-tooltip class-variance-authority clsx tailwind-merge lucide-react && npx shadcn@latest init

by system

Add Tailwind styles

Configure src/index.css with Tailwind directives and set a simple global dark-sky theme.

by system

Define core types

Create src/types.ts defining StarTask, ConstellationEdge, Constellation, Tag, and ViewMode types.

by system

LocalStorage helpers

Create src/lib/storage.ts with load/save utilities and versioned schema key.

by system

Planner store hook

Create src/state/usePlannerStore.ts implementing CRUD for tasks/edges/constellations with localStorage persistence.

by system

Seed demo data

Add src/state/seed.ts exporting a small initial dataset used when storage is empty.

by system

App shell layout

Update src/App.tsx to render header + main content area with a background gradient.

by system

Simple client router

Create src/state/useHashRoute.ts to manage hash-based navigation between views without dependencies.

by system

Top nav tabs

Create src/components/TopNav.tsx with shadcn Tabs/Buttons for Sky, Today, Week, Gallery.

by system

Sky page wrapper

Create src/pages/SkyPage.tsx composing the canvas, toolbar, and selected-star panel.

by system

Today page

Create src/pages/TodayPage.tsx listing due-today and overdue tasks with quick complete toggles.

by system

Week page

Create src/pages/WeekPage.tsx showing tasks grouped by day for the next 7 days.

by system

Gallery page

Create src/pages/GalleryPage.tsx listing constellations with filters and progress summaries.

by system

Sky canvas component

Create src/components/SkyCanvas.tsx rendering an SVG or canvas-based sky surface with stars and edges.

by system

Star node rendering

Create src/components/StarNode.tsx to display a task as a draggable star with glow/fade based on completion.

by system

Edge line rendering

Create src/components/EdgeLine.tsx to render connections between stars with subtle stroke styling.

by system

Drag star positioning

Implement pointer-drag logic in StarNode.tsx to update star x/y in the store.

by system

Canvas pan + zoom

Add pan/zoom interactions to SkyCanvas.tsx using pointer events and CSS transforms.

by system

Selection interaction

Implement click-to-select behavior in SkyCanvas.tsx and store selectedStarId state.

by system

Star details panel

Create src/components/StarDetailsPanel.tsx showing title, notes, due date, tags, and complete toggle for selected star.

by system

Create star dialog

Create src/components/CreateStarDialog.tsx (shadcn Dialog) to add a new task with due date and tags.

by system

Edit star dialog

Create src/components/EditStarDialog.tsx to edit title/notes/due/tags for the selected task.

by system

Tag picker component

Create src/components/TagPicker.tsx for selecting/creating tags with color chips.

by system

Complete glow styling

Add Tailwind/CSS styles to visually distinguish completed vs active stars and dim overdue ones.

by system

Connect mode toolbar

Create src/components/SkyToolbar.tsx with toggles for Connect mode, Create, Delete, and Reset view.

by system

Create edge interaction

Implement connect-mode click-first-star then click-second-star in SkyCanvas.tsx to create an edge.

by system

Edge deletion UI

Add ability to select an edge and delete it via SkyToolbar.tsx.

by system

Constellation labeling

Create src/components/ConstellationLabel.tsx to show constellation name near its centroid on the canvas.

by system

Constellation grouping logic

Add src/lib/graph.ts to compute constellations from edges (connected components) and progress percent.

by system

Gallery filters + progress

Implement filtering by tag/status and progress display in GalleryPage.tsx using graph.ts helpers.

by system

In Progress0
In Review0
Done0