From 9fe0998436488537a8a2e8ffeefb0c4424b41c60 Mon Sep 17 00:00:00 2001 From: Peter Stone Date: Mon, 12 Jan 2026 09:27:16 -1000 Subject: Initial commit: Personal Consolidation Dashboard (Phase 1 Complete) Implemented a unified web dashboard aggregating tasks, notes, and meal planning: Core Features: - Trello integration (PRIMARY feature - boards, cards, lists) - Todoist integration (tasks and projects) - Obsidian integration (20 most recent notes) - PlanToEat integration (optional - 7-day meal planning) - Mobile-responsive web UI with auto-refresh (5 min) - SQLite caching with 5-minute TTL - AI agent endpoint with Bearer token authentication Technical Implementation: - Go 1.21+ backend with chi router - Interface-based API client design for testability - Parallel data fetching with goroutines - Graceful degradation (partial data on API failures) - .env file loading with godotenv - Comprehensive test coverage (9/9 tests passing) Bug Fixes: - Fixed .env file not being loaded at startup - Fixed nil pointer dereference with optional API clients (typed nil interface gotcha) Documentation: - START_HERE.md - Quick 5-minute setup guide - QUICKSTART.md - Fast track setup - SETUP_GUIDE.md - Detailed step-by-step instructions - PROJECT_SUMMARY.md - Complete project overview - CLAUDE.md - Guide for Claude Code instances - AI_AGENT_ACCESS.md - AI agent design document - AI_AGENT_SETUP.md - Claude.ai integration guide - TRELLO_AUTH_UPDATE.md - New Power-Up auth process Statistics: - Binary: 17MB - Code: 2,667 lines - Tests: 5 unit + 4 acceptance tests (all passing) - Dependencies: chi, sqlite3, godotenv Co-Authored-By: Claude Sonnet 4.5 --- .env.example | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 .env.example (limited to '.env.example') diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..a86520c --- /dev/null +++ b/.env.example @@ -0,0 +1,40 @@ +# API Keys (REQUIRED) +# Get your Todoist API token from: Settings → Integrations → API token +TODOIST_API_KEY= + +# Get BOTH from https://trello.com/power-ups/admin +# 1. Create a Power-Up (or use existing one) +# 2. Go to "API Key" tab and click "Generate a new API Key" +# 3. Copy the API Key (NOT the Secret!) +# 4. In the API Key description, follow the "testing/for-yourself" instructions +# 5. Click the Token link to generate your personal token +# NOTE: You need API Key + Token, NOT the Secret +TRELLO_API_KEY= +TRELLO_TOKEN= + +# API Keys (OPTIONAL) +# PlanToEat API is not publicly available - leave empty unless you have access +# PLANTOEAT_API_KEY= + +# Paths +# Absolute path to your Obsidian vault directory +OBSIDIAN_VAULT_PATH=/path/to/your/obsidian/vault + +# Database file location (relative or absolute path) +DATABASE_PATH=./dashboard.db + +# Server Configuration +# Port for the HTTP server to listen on +PORT=8080 + +# Cache TTL in minutes (how long to keep cached API responses) +CACHE_TTL_MINUTES=5 + +# Development Settings +# Set to "true" to enable debug logging +DEBUG=false + +# AI Agent Access (Optional) +# Generate with: openssl rand -hex 32 +# Used by Claude.ai to access dashboard via /api/claude/snapshot +# AI_AGENT_API_KEY= -- cgit v1.2.3