# Project Summary ## What This Is A **unified personal dashboard** that aggregates your productivity data into one place: - 📋 **Trello boards** (your primary task system) - ✓ **Todoist tasks** - 📝 **Obsidian notes** (optional) - 🍽️ **PlanToEat meals** (optional) ## Current Status: ✅ Phase 1 Complete ### What Works - ✅ Trello integration (all boards + cards) - ✅ Todoist integration (tasks + projects) - ✅ Obsidian integration (20 most recent notes) - ✅ PlanToEat integration (optional - API not public) - ✅ Mobile-responsive web UI - ✅ SQLite caching (5-min TTL) - ✅ Auto-refresh (5 min) - ✅ Full test coverage (9/9 tests passing) ### Statistics - **Binary size:** 17MB - **Code:** 2,667 lines - **Dependencies:** chi router, sqlite3, Go 1.21+ - **Tests:** 5 unit tests, 4 acceptance tests ## Quick Start ### 1. Get API Keys (5 minutes) **Todoist:** 1. Go to https://todoist.com/app/settings/integrations 2. Copy API token **Trello:** 1. Go to https://trello.com/power-ups/admin 2. Create a Power-Up 3. Go to **API Key** tab → Generate new API key (NOT Secret!) 4. Follow "testing/for-yourself" instructions → Click **Token** link 5. Copy both API Key + Token ### 2. Configure ```bash cp .env.example .env # Edit .env: TODOIST_API_KEY=your_todoist_token TRELLO_API_KEY=your_trello_key TRELLO_TOKEN=your_trello_token ``` ### 3. Run ```bash go run cmd/dashboard/main.go ``` ### 4. Open http://localhost:8080 **That's it!** 🎉 ## Documentation - **[QUICKSTART.md](QUICKSTART.md)** - Get running in 5 minutes - **[SETUP_GUIDE.md](SETUP_GUIDE.md)** - Detailed setup instructions - **[README.md](README.md)** - Full project documentation ## Architecture ### Request Flow ``` Browser → chi Router → Handler ↓ Check SQLite Cache (5min TTL) ↓ Fresh? → Return cached data Stale? → Fetch from APIs in parallel ↓ Trello + Todoist + Obsidian + PlanToEat ↓ Save to cache → Return data ``` ### Key Files ``` cmd/dashboard/main.go Entry point internal/ ├── api/ API clients │ ├── trello.go Trello (PRIORITY) │ ├── todoist.go Todoist tasks │ ├── obsidian.go Markdown notes │ └── plantoeat.go Meal planning ├── handlers/ │ ├── handlers.go Web handlers ├── config/config.go Environment config └── store/sqlite.go Database ops web/ ├── templates/index.html Dashboard UI └── static/ CSS/JS ``` ## API Endpoints ### Web Dashboard - `GET /` - Main dashboard view - `POST /api/refresh` - Force refresh all data - `GET /api/tasks` - Tasks JSON - `GET /api/notes` - Notes JSON - `GET /api/meals` - Meals JSON - `GET /api/boards` - Trello boards JSON ## What's Optional ### Optional Features - **PlanToEat:** API not publicly available - leave blank - **Obsidian:** Only if you use Obsidian notes ### Required Features - **Todoist:** Yes - tasks integration - **Trello:** Yes - your primary task system ## Configuration All via `.env` file: ```bash # Required TODOIST_API_KEY=... TRELLO_API_KEY=... TRELLO_TOKEN=... # Optional OBSIDIAN_VAULT_PATH=/path/to/vault # Server (with defaults) PORT=8080 CACHE_TTL_MINUTES=5 DEBUG=false ``` ## Development ### Run Tests ```bash go test ./... ``` ### Build Binary ```bash go build -o dashboard cmd/dashboard/main.go ``` ### Run with Live Reload ```bash go install github.com/cosmtrek/air@latest air ``` ## Troubleshooting ### "TODOIST_API_KEY is required" Make sure `.env` has all three required keys: ```bash TODOIST_API_KEY=something TRELLO_API_KEY=something TRELLO_TOKEN=something ``` ### "No boards showing" - Check Trello credentials at https://trello.com/power-ups/admin - Need **both** API key (from Power-Up's API Key tab) and token (click "Token" link) ### "PlanToEat not working" - Expected - API not public - Just leave `PLANTOEAT_API_KEY` empty - Dashboard works fine without it ## What's Next ### Phase 2 (In Progress) - [x] Mark tasks complete - [x] Create Trello cards - [x] Create Todoist tasks - [ ] Quick note capture ### Phase 3 (Future) - Unified search - Daily digest - PWA support ## License MIT License - personal use project ## Support - Check logs: Terminal where you ran `go run cmd/dashboard/main.go` - Test endpoints: `curl http://localhost:8080/api/tasks` - Verify API keys: Try them directly in curl (see SETUP_GUIDE.md) --- **Built with:** Go 1.21+ • SQLite • chi router • Tailwind CSS • HTMX **Last Updated:** January 2026