docs: add .planning/ project-tracking documents
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
39
.planning/PROJECT.md
Normal file
39
.planning/PROJECT.md
Normal file
@@ -0,0 +1,39 @@
|
||||
# Calendula
|
||||
|
||||
## What This Is
|
||||
|
||||
A modern Material 3 Expressive Android calendar app, read-only V1. Lives
|
||||
entirely on top of Android's `CalendarContract` — any calendar synced to the
|
||||
device (CalDAV via DAVx5, Google, local, WebCal, …) shows up automatically.
|
||||
The differentiator is visual: real Material 3 Expressive design that no
|
||||
existing FOSS calendar app delivers.
|
||||
|
||||
## Core Value
|
||||
|
||||
A calendar app that is genuinely pleasant to look at and use, without
|
||||
re-inventing the calendar sync stack — leave that to DAVx5 and the system.
|
||||
|
||||
## Current Milestone
|
||||
|
||||
**v0.1 — Foundation & CI:** Buildable Android project scaffold with theme,
|
||||
icon, i18n, Hilt, DataStore, green CI.
|
||||
|
||||
## Stack
|
||||
|
||||
Kotlin 2.3, Jetpack Compose + Material 3 Expressive (alpha for 1.5 APIs),
|
||||
Hilt, DataStore. Gradle Kotlin DSL with Version Catalog. AGP 9.1, Gradle 9.5.
|
||||
|
||||
Read-only V1, write support V2.
|
||||
|
||||
Android-only (minSdk 29, targetSdk 36). No iOS.
|
||||
|
||||
## Naming
|
||||
|
||||
"Calendula" — Latin *kalendae* ("first day of the month", root of "calendar")
|
||||
is also the etymological root of the marigold flower Calendula. The icon
|
||||
shows a stylized "1" on a slate squircle.
|
||||
|
||||
## Source
|
||||
|
||||
Hosted on self-hosted Gitea, released through self-hosted F-Droid repo on
|
||||
Hetzner. Same infrastructure as `HouseHoldKeaper`.
|
||||
45
.planning/REQUIREMENTS.md
Normal file
45
.planning/REQUIREMENTS.md
Normal file
@@ -0,0 +1,45 @@
|
||||
# Calendula — Requirements
|
||||
|
||||
See full design spec: `docs/superpowers/specs/2026-06-08-calendar-app-design.md`
|
||||
|
||||
## V1 Scope (Variant "B")
|
||||
|
||||
### Validated (shipped)
|
||||
- (none yet — first milestone in progress)
|
||||
|
||||
### Active (V1)
|
||||
|
||||
- [ ] Foundation & CI infrastructure
|
||||
- [ ] Data Layer over `CalendarContract`
|
||||
- [ ] Permission flow (`READ_CALENDAR`)
|
||||
- [ ] Month view (S1)
|
||||
- [ ] Week view (S2)
|
||||
- [ ] Day view (S3)
|
||||
- [ ] Event Detail Sheet (S4)
|
||||
- [ ] Multi-Calendar Filter (M3)
|
||||
- [ ] Today button + Jump-to-Date (M2)
|
||||
- [ ] View-Switcher (M1)
|
||||
- [ ] Settings screen (M4)
|
||||
- [ ] Empty / no-permission / no-calendars states
|
||||
- [ ] German + English localization
|
||||
- [ ] Loading/Failure/Success states per screen (architectural pattern)
|
||||
|
||||
### Out of Scope (V2+)
|
||||
|
||||
- Event create / edit / delete (V2)
|
||||
- Home-screen widget
|
||||
- Full-text search
|
||||
- Quick-add
|
||||
- Custom notifications/reminders (system already handles these)
|
||||
- Tablet/foldable-specific layouts
|
||||
- iOS support (Android-only by design)
|
||||
|
||||
## Constraints
|
||||
|
||||
- **Tech stack:** Kotlin + Jetpack Compose + Material 3 Expressive, Hilt, DataStore
|
||||
- **Platform:** Android 10+ (API 29 minimum), Android 16 (API 36) target
|
||||
- **Offline-first:** all data lives in `CalendarContract`; no app-side network
|
||||
- **Privacy:** zero telemetry, no analytics
|
||||
- **i18n:** German + English from day one
|
||||
- **Tests + CI from day one**
|
||||
- **License:** MIT
|
||||
32
.planning/ROADMAP.md
Normal file
32
.planning/ROADMAP.md
Normal file
@@ -0,0 +1,32 @@
|
||||
# Calendula — Roadmap
|
||||
|
||||
## v0.x — Pre-Release
|
||||
|
||||
| Version | Milestone | Status |
|
||||
|---|---|---|
|
||||
| v0.1 | Foundation & CI | in progress |
|
||||
| v0.2 | Data Layer & Permission Flow | pending |
|
||||
| v0.3 | Month view | pending |
|
||||
| v0.4 | Week view | pending |
|
||||
| v0.5 | Day view | pending |
|
||||
| v0.6 | Event Detail Sheet | pending |
|
||||
| v0.7 | Filter & Settings | pending |
|
||||
|
||||
## v1.0 — First Public Release
|
||||
|
||||
All V1 features shipped, polished, on F-Droid. Read-only calendar.
|
||||
|
||||
## v2.0 — Write Support
|
||||
|
||||
- Event create / edit / delete via `CalendarContract` writes
|
||||
- Quick-add sheet
|
||||
- Conflict UX (event modified externally during edit)
|
||||
|
||||
## v3.0 — Power-User Features
|
||||
|
||||
- Home-screen widget
|
||||
- Full-text search
|
||||
- Tablet / foldable layouts
|
||||
- Optional: ICS file import (drag-and-drop)
|
||||
|
||||
Order is indicative — community feedback after V1 may re-prioritize.
|
||||
21
.planning/STATE.md
Normal file
21
.planning/STATE.md
Normal file
@@ -0,0 +1,21 @@
|
||||
# Calendula — Current State
|
||||
|
||||
*Last updated: 2026-06-08*
|
||||
|
||||
## Status
|
||||
|
||||
**Milestone:** v0.1 — Foundation & CI
|
||||
**Phase:** Implementation in progress (Plan 01 active)
|
||||
|
||||
## Progress
|
||||
|
||||
- [x] Design spec written and committed (`docs/superpowers/specs/2026-06-08-calendar-app-design.md`)
|
||||
- [x] V1 design decisions resolved (App name "Calendula", icon, seed color)
|
||||
- [x] Plan 01 written (`docs/superpowers/plans/2026-06-08-01-foundation.md`)
|
||||
- [ ] Plan 01 executed
|
||||
|
||||
## Next
|
||||
|
||||
1. Execute Plan 01 to land foundation
|
||||
2. Write and execute Plan 02 (Data Layer & Permission Flow)
|
||||
3. Iterate on UI design (mockups) before screens are built
|
||||
Reference in New Issue
Block a user