Files
Calendink/Provider/AgentTasks/mvp_implementation_plan.md
T

2.1 KiB

Calendink MVP Plan - Executive Summary

This document defines the macroscopic project scope for the Calendink Minimum Viable Product (MVP).

We will structure the development into 4 Major Epics. Because features like Power Management and SD Card Integration require deep technical investigation, we will not prematurely guess the solutions here. Instead, each Epic will begin with a dedicated Technical Design Document (TDD) to map out the exact implementation before coding.


The 4 Development Epics

Epic 1: Client Power Strategy

Goal: Achieve a battery life measured in months for the ESP32-C6 Client. Scope:

  • Research and design a formal power strategy.
  • Evaluate Target Wake Time (TWT), esp-pm, Light Sleep, Deep Sleep, and hybrid ESP-NOW routing.
  • The outcome will be a dedicated TDD followed by the firmware implementation.

Epic 2: Provider Persistent Storage (SD Card)

Goal: Ensure Users, Tasks, and Settings survive device reboots. Scope:

  • Investigate the physical SD Card pinout on the ESP32-S3.
  • Decide between SQLite or flat JSON files.
  • Implement the ESP-IDF SDMMC/SDSPI driver.
  • Migrate the current in-RAM g_Tasks and g_Users arrays to the new persistent backend.

Epic 3: Voice-to-Task AI (Gemini)

Goal: Allow users to dictate tasks naturally in French. Scope:

  • Implement an API endpoint on the Provider to accept raw audio/text.
  • Create an internal HTTPS client on the S3 to proxy the data to the Google Gemini API.
  • Parse the structured JSON response from Gemini to automatically save the new task.

Epic 4: Modular Grid Layout & Provider Integration

Goal: Replace the single-XML screen structure with a flexible 6-pane grid. Scope:

  • Define a fixed layout layout on the E-ink display: 2 large top canvases (Main Task, Weather) and 4 small bottom canvases (One per family member).
  • Limit the user system to exactly 4 Active Users.
  • Allow the dashboard to assign distinct XML templates to any of the 6 canvases, making it adaptable to future widgets.
  • Integrate an OpenWeatherMap API wrapper on the Provider.