From 4e67062c9910d98d1dbda53dec8f999b70d04035 Mon Sep 17 00:00:00 2001 From: Daniel Arroyo Date: Mon, 23 Mar 2026 09:05:10 -0300 Subject: [PATCH] Add demo project for Personal Tracker MVP-1 Create example project structure in examples/demo-project/ with: - Project metadata in meta/project.yaml - README, LOG, CHANGELOG and TASKS documentation - Two detailed session files showing real work examples - Empty docs/ and assets/ directories The demo project serves as a reference implementation showing how to use the Personal Tracker CLI effectively. --- examples/demo-project/CHANGELOG.md | 33 ++++++++ examples/demo-project/LOG.md | 59 +++++++++++++++ examples/demo-project/README.md | 21 ++++++ examples/demo-project/TASKS.md | 31 ++++++++ examples/demo-project/assets/.gitkeep | 0 examples/demo-project/docs/.gitkeep | 0 examples/demo-project/meta/project.yaml | 13 ++++ .../demo-project/sessions/2026-03-20_1000.md | 53 +++++++++++++ .../demo-project/sessions/2026-03-22_1430.md | 75 +++++++++++++++++++ 9 files changed, 285 insertions(+) create mode 100644 examples/demo-project/CHANGELOG.md create mode 100644 examples/demo-project/LOG.md create mode 100644 examples/demo-project/README.md create mode 100644 examples/demo-project/TASKS.md create mode 100644 examples/demo-project/assets/.gitkeep create mode 100644 examples/demo-project/docs/.gitkeep create mode 100644 examples/demo-project/meta/project.yaml create mode 100644 examples/demo-project/sessions/2026-03-20_1000.md create mode 100644 examples/demo-project/sessions/2026-03-22_1430.md diff --git a/examples/demo-project/CHANGELOG.md b/examples/demo-project/CHANGELOG.md new file mode 100644 index 0000000..b8dbe2c --- /dev/null +++ b/examples/demo-project/CHANGELOG.md @@ -0,0 +1,33 @@ +# Changelog - Demo Project + +## [0.1.1] - 2026-03-23 + +### Agregado + +- Documentacion de la API de exportacion en `docs/api-export.md` +- Tests de integracion para el modulo exporter + +### Modificado + +- Actualizado el formato de metadatos de proyecto para incluir `last_session_at` +- Mejorado el parseo de fechas en sesiones + +## [0.1.0] - 2026-03-22 + +### Agregado + +- Modulo de exportacion con soporte para JSON +- Estructura de sesiones con metadatos en YAML front-matter +- Archivo `TASKS.md` con seguimiento de tareas + +### Modificado + +- Refactorizacion de `project.yaml` para incluir `slug` y `type` + +## [0.0.1] - 2026-03-20 + +### Agregado + +- Estructura inicial del proyecto demo +- Metadatos basicos en `meta/project.yaml` +- Primera sesion de planificación diff --git a/examples/demo-project/LOG.md b/examples/demo-project/LOG.md new file mode 100644 index 0000000..d372d1b --- /dev/null +++ b/examples/demo-project/LOG.md @@ -0,0 +1,59 @@ +# Registro de Sesiones - Demo Project + +## Sesion: 2026-03-22 14:30 + +**Duracion:** 2h 15min +**Objetivo:** Implementar funcionalidad de exportacion + +### Trabajo realizado + +- Analice los requisitos para la exportacion a JSON y CSV +- Diseñe la estructura de datos para los formatos de exportacion +- Implemente la funcion base de exportacion en `exporter.py` +- Escribi pruebas unitarias para los formateadores + +### Bloqueos + +- None + +### Decisiones + +- Decidi usar una clase base `BaseExporter` con métodos abstractos para cada formato +- La estructura de directorios sigue el patrón `YYYY-MM-DD_HHMM.md` + +### Proximos pasos + +- [ ] Implementar exportacion a CSV +- [ ] Agregar soporte para exportacion parcial (por rango de fechas) +- [ ] Documentar la API de exportacion + +--- + +## Sesion: 2026-03-20 10:00 + +**Duracion:** 1h 30min +**Objetivo:** Iniciar proyecto demo + +### Trabajo realizado + +- Cree la estructura inicial del proyecto demo +- Defini los metadatos base en `meta/project.yaml` +- Configure el sistema de seguimiento basico +- Revise la documentacion del tracker CLI + +### Bloqueos + +- Ninguno + +### Decisiones + +- El proyecto usara el tipo "misc" para mayor flexibilidad +- Las sesiones se almacenaran en formato Markdown con metadatos YAML + +### Proximos pasos + +- [ ] Definir las primeras tareas del proyecto +- [ ] Crear la estructura de documentacion +- [ ] Establecer el flujo de trabajo regular + +--- diff --git a/examples/demo-project/README.md b/examples/demo-project/README.md new file mode 100644 index 0000000..d545723 --- /dev/null +++ b/examples/demo-project/README.md @@ -0,0 +1,21 @@ +# Demo Project + +## Descripcion + +Proyecto de demostración del tracker personal para mostrar las capacidades del sistema de seguimiento de tareas y sesiones. + +## Estado + +- **Estado:** Activo +- **Tipo:** Misc +- **Etiquetas:** demo, example + +## Secciones + +- [Tareas](./TASKS.md) - Lista de tareas del proyecto +- [Registro de sesiones](./LOG.md) - Historial de sesiones de trabajo +- [Cambios](./CHANGELOG.md) - Registro de cambios realizados + +--- + +*Ultima actualizacion: 2026-03-23T12:00:00* diff --git a/examples/demo-project/TASKS.md b/examples/demo-project/TASKS.md new file mode 100644 index 0000000..3d307d2 --- /dev/null +++ b/examples/demo-project/TASKS.md @@ -0,0 +1,31 @@ +# Tareas - Demo Project + +## Inbox + +- [ ] Revisar feedback del usuario sobre la interfaz de exportacion +- [ ] Investigar opciones para generar reportes en PDF + +## Next + +- [ ] Implementar exportacion a CSV +- [ ] Agregar filtros por fecha en el listado de tareas +- [ ] Crear plantilla para reportes semanales + +## Active + +- [ ] Implementar exportacion a CSV (iniciado 2026-03-22) + +## Blocked + +- [ ] Integracion con API de terceros (pendiente credenciales) + +## Waiting + +- [ ] Revision de codigo por parte del equipo (esperando feedback) + +## Done + +- [x] Crear estructura inicial del proyecto - 2026-03-20 +- [x] Implementar exportacion a JSON - 2026-03-22 +- [x] Escribir pruebas unitarias - 2026-03-22 +- [x] Documentar formato de sesiones - 2026-03-21 diff --git a/examples/demo-project/assets/.gitkeep b/examples/demo-project/assets/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/examples/demo-project/docs/.gitkeep b/examples/demo-project/docs/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/examples/demo-project/meta/project.yaml b/examples/demo-project/meta/project.yaml new file mode 100644 index 0000000..706b0dd --- /dev/null +++ b/examples/demo-project/meta/project.yaml @@ -0,0 +1,13 @@ +id: demo-001 +name: Demo Project +slug: demo-project +description: Proyecto de demostración del tracker personal +type: misc +status: active +tags: + - demo + - example +repo_path: null +created_at: "2026-03-20T10:00:00" +updated_at: "2026-03-23T12:00:00" +last_session_at: "2026-03-22T14:30:00" diff --git a/examples/demo-project/sessions/2026-03-20_1000.md b/examples/demo-project/sessions/2026-03-20_1000.md new file mode 100644 index 0000000..89f2c9d --- /dev/null +++ b/examples/demo-project/sessions/2026-03-20_1000.md @@ -0,0 +1,53 @@ +--- +date: "2026-03-20T10:00:00" +duration: 90 +objective: "Iniciar proyecto demo" +project: demo-001 +--- + +# Sesion: 2026-03-20 10:00 + +## Objetivo + +Iniciar el proyecto demo para demostrar las capacidades del tracker personal. + +## Notas + +### planeacion + +Necesito crear un proyecto que sirva como ejemplo real de uso del sistema. +Debe incluir: + +- Estructura de directorios completa +- Metadatos realistas +- Sesiones de trabajo con contenido genuino +- Tareas en diferentes estados + +### observaciones + +El sistema de tracking funciona bien para proyectos personales. +La estructura de sesiones con front-matter YAML es flexible y util. +Me gusta poder vincular sesiones a proyectos especificos. + +## Trabajo realizado + +- [x] Cree la estructura inicial del proyecto demo +- [x] Defini los metadatos base en `meta/project.yaml` +- [x] Configure el sistema de seguimiento basico +- [x] Revise la documentacion del tracker CLI + +## Bloqueos + +Ninguno. + +## Decisiones + +- El proyecto usara el tipo "misc" para mayor flexibilidad +- Las sesiones se almacenaran en formato Markdown con metadatos YAML +- El ID del proyecto sera "demo-001" para facilitar la referencia + +## Proximos pasos + +- [ ] Definir las primeras tareas del proyecto +- [ ] Crear la estructura de documentacion +- [ ] Establecer el flujo de trabajo regular diff --git a/examples/demo-project/sessions/2026-03-22_1430.md b/examples/demo-project/sessions/2026-03-22_1430.md new file mode 100644 index 0000000..0475732 --- /dev/null +++ b/examples/demo-project/sessions/2026-03-22_1430.md @@ -0,0 +1,75 @@ +--- +date: "2026-03-22T14:30:00" +duration: 135 +objective: "Implementar funcionalidad de exportacion" +project: demo-001 +--- + +# Sesion: 2026-03-22 14:30 + +## Objetivo + +Implementar la funcionalidad de exportacion de datos del proyecto a diferentes formatos. + +## Notas + +### investigacion + +Analice los requisitos para la exportacion: + +**JSON:** +- Estructura jerarquica con metadatos completos +- Incluye timestamps en formato ISO +- Representacion de tareas por estado + +**CSV:** +- Formato plano para importacion a spreadsheets +- Headers: id, titulo, estado, fecha_creacion, fecha_completado +- UTF-8 encoding + +### diseno + +Decidi usar una clase base `BaseExporter` con: + +``` +BaseExporter +├── export(data) -> str +├── format_metadata(meta) -> dict +└── validate_data(data) -> bool + +JsonExporter(BaseExporter) +CsvExporter(BaseExporter) +``` + +### codigo + +Escribi la implementacion inicial del exporter: + +```python +class BaseExporter: + def export(self, data: dict) -> str: + raise NotImplementedError +``` + +## Trabajo realizado + +- [x] Analice los requisitos para la exportacion a JSON y CSV +- [x] Diseñe la estructura de datos para los formatos de exportacion +- [x] Implemente la funcion base de exportacion en `exporter.py` +- [x] Escribi pruebas unitarias para los formateadores + +## Bloqueos + +Ninguno. + +## Decisiones + +- Decidi usar una clase base `BaseExporter` con metodos abstractos para cada formato +- La estructura de directorios sigue el patron `YYYY-MM-DD_HHMM.md` +- Los archivos de sesion incluyen front-matter con metadatos estructurados + +## Proximos pasos + +- [ ] Implementar exportacion a CSV +- [ ] Agregar soporte para exportacion parcial (por rango de fechas) +- [ ] Documentar la API de exportacion