diff options
Diffstat (limited to 'docs/proposed_readme.md')
| -rw-r--r-- | docs/proposed_readme.md | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/docs/proposed_readme.md b/docs/proposed_readme.md new file mode 100644 index 0000000..1fa9f97 --- /dev/null +++ b/docs/proposed_readme.md @@ -0,0 +1,30 @@ +# Task Dashboard + +## Project Goals +The Task Dashboard aims to provide a unified, single-pane-of-glass view of your daily obligations and resources. It aggregates data from multiple specialized tools into one streamlined interface, allowing you to: +* **Centralize Information:** View tasks, notes, and meal plans from Todoist, Trello, Obsidian, and PlanToEat in one place. +* **Increase Efficiency:** Quickly assess your day's priorities without context-switching between multiple applications. +* **Facilitate Action:** Perform key actions like completing tasks and creating new items directly from the dashboard. + +## Current Status +The project is a functional web application built with Go. +* **Backend:** Written in Go (1.21+), utilizing `chi` for routing. It features a clean architecture with decoupled service integrations. +* **Frontend:** Server-side rendered HTML templates styled with Tailwind CSS. +* **Integrations:** + * **Todoist:** Full integration for fetching and managing tasks. + * **Trello:** Integration for viewing and managing board cards. + * **Obsidian:** Read-only access to local markdown notes. + * **PlanToEat:** Retrieval of meal planning data. +* **Storage:** SQLite is used for robust caching of external API responses to improve performance and reduce rate limiting. +* **Entry Point:** The application entry point is located at `cmd/dashboard/main.go`. + +## Future Plans +* **Deepened Integrations:** Expand capabilities to include editing notes and more complex project management features. +* **Interactive UI:** Enhance the frontend responsiveness and interactivity, potentially leveraging HTMX for dynamic updates without full page reloads. +* **Resilience & Observability:** Improve error handling, logging, and metrics to ensure long-term reliability. + +## Architectural Principles +1. **Aggregation:** The system is designed primarily as an aggregator, normalizing data from various external sources into a cohesive internal model (`DashboardData`). +2. **Decoupling:** External services are abstracted behind strict interfaces (`internal/api/interfaces.go`), allowing for easy substitution, testing, and mocking. +3. **Performance via Caching:** A heavy emphasis on caching (via SQLite) ensures the dashboard remains fast and responsive, even when external APIs are slow or unavailable. +4. **Simplicity:** The stack prefers simple, proven technologies (Go templates, Tailwind, SQLite) over complex single-page application frameworks to maintain ease of maintenance and deployment. |
