Commit graph

2 commits

Author SHA1 Message Date
Claude
ca6e157a91
Add Todos, Projects, and Contexts web pages
- Created todos.html template showing user's todos with state badges
- Created projects.html template showing project cards in grid layout
- Created contexts.html template showing context cards
- Added ShowTodos, ShowProjects, ShowContexts handlers to web_handler.go
- Added routes for /todos, /projects, /contexts to main.go
- All pages show empty state when no data exists
- Navigation menu links now work without 404 errors

All pages are functional and display user-specific data from the database.
2025-11-05 12:54:47 +00:00
Claude
1e0cfe5270
Add embedded web UI with dark/light mode support
Features:
- Single binary deployment with embedded HTML templates
- Dark and light mode theme switcher with localStorage persistence
- Server-side rendered Go templates
- Clean, modern UI with CSS variables for theming
- Login page with default admin credentials hint
- Dashboard with statistics and quick actions
- Admin user management page
- Session management via HTTP-only cookies

Implementation:
- Created web templates in cmd/tracks/web/templates/
  - base.html: Main layout with navigation and theme toggle
  - login.html: Login form with first-time user hint
  - dashboard.html: Main dashboard with stats cards and recent todos
  - admin_users.html: User management with create user modal
- Added web_handler.go for serving web UI
  - ShowLogin: Renders login page
  - HandleLogin: Processes login form, sets cookie, redirects to dashboard
  - HandleLogout: Clears cookie, redirects to login
  - ShowDashboard: Shows personalized dashboard with stats
  - ShowAdminUsers: Admin-only user management page
  - HandleCreateUser: Processes user creation form
- Updated main.go to embed templates using //go:embed
- Added web routes before API routes:
  - GET/POST /login (public)
  - GET /logout (public)
  - GET / and /dashboard (authenticated)
  - GET/POST /admin/users (authenticated + admin)

UI Features:
- Responsive design with mobile support
- Theme persistence across sessions
- Clean card-based layout
- Statistics dashboard (active todos, projects, contexts, completed today)
- Quick action buttons
- Admin badge for admin users
- Navigation menu with conditional admin links

Security:
- HttpOnly cookies for session tokens
- Admin middleware for protected routes
- CSRF protection via form POST
- Password fields properly masked

No external dependencies - all CSS and JS inline in templates.
Everything compiles into single binary.

Tested:
- Login page renders correctly ✓
- Login form submits and creates session ✓
- Dashboard displays with user info ✓
- Theme toggle functionality included ✓
- Admin user sees admin links ✓
2025-11-05 11:56:31 +00:00