Phase 1 & 2: full-stack family dashboard scaffold
- pnpm monorepo (apps/client + apps/server) - Server: Express + node:sqlite with numbered migration runner, REST API for all 9 features (members, events, chores, shopping, meals, messages, countdowns, photos, settings) - Client: React 18 + Vite + TypeScript + Tailwind + Framer Motion + Zustand - Theme system: dark/light + 5 accent colors, CSS custom properties, anti-FOUC script, ThemeToggle on every surface - AppShell: collapsible sidebar, animated route transitions, mobile drawer - Phase 2 features: Calendar (custom month grid, event chips, add/edit modal), Chores (card grid, complete/reset, member filter, streaks), Shopping (multi-list tabs, animated check-off, quick-add bar, member assign) - Family member CRUD with avatar, color picker - Settings page: theme/accent, photo folder, slideshow, weather, date/time - Docker: multi-stage Dockerfile, docker-compose.yml, entrypoint with PUID/PGID - Unraid: CA XML template, CLI install script, UNRAID.md guide - .gitignore covering node_modules, dist, db files, secrets, build artifacts Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
import { BrowserRouter, Routes, Route } from 'react-router-dom';
|
||||
import { AppShell } from '@/components/layout/AppShell';
|
||||
import Dashboard from '@/pages/Dashboard';
|
||||
import CalendarPage from '@/pages/Calendar';
|
||||
import ShoppingPage from '@/pages/Shopping';
|
||||
import ChoresPage from '@/pages/Chores';
|
||||
import MealsPage from '@/pages/Meals';
|
||||
import BoardPage from '@/pages/Board';
|
||||
import CountdownsPage from '@/pages/Countdowns';
|
||||
import PhotosPage from '@/pages/Photos';
|
||||
import SettingsPage from '@/pages/Settings';
|
||||
import MembersPage from '@/pages/Members';
|
||||
|
||||
export default function App() {
|
||||
return (
|
||||
<BrowserRouter>
|
||||
<AppShell>
|
||||
<Routes>
|
||||
<Route path="/" element={<Dashboard />} />
|
||||
<Route path="/calendar" element={<CalendarPage />} />
|
||||
<Route path="/shopping" element={<ShoppingPage />} />
|
||||
<Route path="/chores" element={<ChoresPage />} />
|
||||
<Route path="/meals" element={<MealsPage />} />
|
||||
<Route path="/board" element={<BoardPage />} />
|
||||
<Route path="/countdowns" element={<CountdownsPage />} />
|
||||
<Route path="/photos" element={<PhotosPage />} />
|
||||
<Route path="/settings" element={<SettingsPage />} />
|
||||
<Route path="/settings/members" element={<MembersPage />} />
|
||||
</Routes>
|
||||
</AppShell>
|
||||
</BrowserRouter>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user