mirror of
https://github.com/marcogll/telegram_expenses_controller.git
synced 2026-01-13 05:15:15 +00:00
3.5 KiB
3.5 KiB
TASKS.md - To-Do List
Este documento define el plan de ejecución del proyecto.
Principio rector:
Cada fase deja el sistema en un estado funcional, testeable y estable.
Fase 1 – Base del Sistema (Infraestructura + Entrada)
Objetivo: Recibir datos de gastos y dejarlos listos para procesar.
- 1.1 Bootstrap del Proyecto
- Crear estructura de carpetas modular en
/app. - Configurar entorno virtual y
requirements.txt. - Dockerización con
docker-compose.yml.
- Crear estructura de carpetas modular en
- 1.2 Configuración y Base de Datos
- Definir
.env.examplecon variables para OpenAI, Telegram y MySQL. - Configurar servicio de MySQL 8.0 en Docker.
- Implementar
app/config.pypara carga de variables.
- Definir
- 1.3 Entrada de Datos (Multimodal)
- Endpoint
/process-expensepara integración externa. - Endpoint
/webhook/telegrampara recepción directa. - Implementar módulos de ingestión inicial (
text.py,image.py,audio.py).
- Endpoint
- 1.4 Orquestación Inicial
- Implementar
router.pypara coordinar el pipeline.
- Implementar
Fase 2 – Modelo de Datos y Estados
Objetivo: Tener claridad absoluta sobre qué es un gasto y en qué estado vive.
- 2.1 Modelos Pydantic
- Crear modelos en
app/schema/base.py:RawInput,ExtractedExpense,ProvisionalExpense,FinalExpense.
- Crear modelos en
- 2.2 Estados del Gasto
- Definir
ExpenseStatus(RECEIVED, ANALYZED, CONFIRMED, etc.).
- Definir
- 2.3 Persistencia SQL
- Implementar modelos SQLAlchemy y repositorios en
app/persistence.
- Implementar modelos SQLAlchemy y repositorios en
Fase 3 – Configuración y Lógica de Negocio
Objetivo: Mover la inteligencia determinística fuera del código.
- [/] 3.1 Loader de Configuración
- Implementar carga dinámica de
config/providers.csvykeywords.csv.
- Implementar carga dinámica de
- 3.2 Matching de Proveedores
- Implementar matching por nombre y aliases.
- 3.3 Clasificación por Keywords
- Implementar búsqueda de keywords en descripciones para categorización automática.
Fase 4 – The Analyst (Procesamiento Inteligente)
Objetivo: Convertir texto crudo en un gasto provisional estructurado mediante IA.
- [/] 4.1 Extracción Multimodal (Completa)
- Texto -> Extracción con GPT.
- Voz -> Transcripción (Whisper/OpenAI).
- Imagen -> OCR + Extracción.
- 4.2 Validación y Score de Confianza
- Implementar
app/ai/confidence.pypara evaluar la calidad de la extracción.
- Implementar
- 4.3 Detección de Duplicados
- Evitar registrar el mismo gasto dos veces.
Fase 5 – Interacción con el Usuario
Objetivo: Asegurar control humano y correcciones.
- 5.1 Flujo de Confirmación en Telegram
- Enviar botones de "Confirmar" / "Editar" tras procesar un gasto.
- 5.2 Parsing de Correcciones
- Capacidad de corregir campos específicos mediante mensajes de texto.
- 5.3 Comandos de Consulta
- Implementar
/statusy/searchfuncionales.
- Implementar
Fase 6 – Exportación y Cierre
Objetivo: Facilitar el uso de los datos fuera del sistema.
- 6.1 Exportación a CSV/Excel
- Implementar exportador básico a CSV.
- 6.2 Integración con Google Sheets (Opcional)
- Sincronización automática de gastos confirmados.
Fase 7 – Hardening
Objetivo: Estabilidad y producción.
- 7.1 Manejo de Errores Robusto
- Reintentos en llamadas a API de IA.
- Alertas de sistema.
- 7.2 Logs de Auditoría
- Registro detallado de quién cambió qué y cuándo.