|
| 1 | +--- |
| 2 | +ID: PRD-ASKBOT-v1 |
| 3 | +Versión: 0.1 |
| 4 | +Autor: Alberto Basalo |
| 5 | +Fecha: 2025-09-09 |
| 6 | +Estado: draft |
| 7 | +--- |
| 8 | + |
| 9 | +# PRD — AskBot CLI |
| 10 | + |
| 11 | +## Resumen ejecutivo |
| 12 | +CLI educativo que consulta APIs públicas para dar información básica de la IP del usuario y servicios asociados: localización, clima, moneda, hora y sol. |
| 13 | + |
| 14 | +## Objetivos y métricas |
| 15 | +- CLI usable en taller. |
| 16 | +- Demostrar consumo de APIs REST. |
| 17 | +- Lograr que todos los comandos funcionen en local. |
| 18 | + |
| 19 | +## Usuarios |
| 20 | +- Estudiante de programación. |
| 21 | +- Instructor. |
| 22 | + |
| 23 | +## Historias de usuario |
| 24 | +- Como usuario, quiero saber mi localización actual a partir de mi IP. |
| 25 | +- Como usuario, quiero conocer el pronóstico de hoy en mi ciudad. |
| 26 | +- Como usuario, quiero ver la moneda oficial de mi país y cotizaciones básicas. |
| 27 | +- Como usuario, quiero conocer mi hora local y diferencia con UTC. |
| 28 | +- Como usuario, quiero saber las horas de salida y puesta del sol. |
| 29 | + |
| 30 | +## Alcance |
| 31 | +Included: CLI con 5 comandos. |
| 32 | +Excluded: interfaz gráfica, persistencia, autenticación. |
| 33 | + |
| 34 | +## Requerimientos funcionales |
| 35 | +1. RF-1: `/loc` muestra ciudad, país, lat/long de [`ipapi.co/json`](https://ipapi.co/json/) |
| 36 | +2. RF-2: `/weather` muestra temperatura, prob. lluvia, código meteorológico de [`open-meteo.com`](https://open-meteo.com/) |
| 37 | +3. RF-3: `/money` muestra moneda oficial + cotización en EUR/USD/GBP/CHF de [`open.er-api.com/v6`](https://open.er-api.com/v6) |
| 38 | +4. RF-4: `/time` muestra hora local, huso, verano/invierno, diff con UTC de [`timeapi.io`](https://timeapi.io/) |
| 39 | +5. RF-5: `/sun` muestra salida y puesta de sol de [`open-meteo.com`](https://open-meteo.com/) |
| 40 | + |
| 41 | +## Requerimientos no funcionales |
| 42 | +- Simplicidad ante todo. |
| 43 | +- Respuesta <1s con conexión activa. |
| 44 | +- Uso de APIs públicas gratuitas: |
| 45 | + - ipapi.co |
| 46 | + - open-meteo.com |
| 47 | + - open.er-api.com/v6 |
| 48 | + - timeapi.io |
| 49 | + |
| 50 | +## Dependencias |
| 51 | +- Dotnet 7+ |
| 52 | +- APIs externas |
| 53 | + |
| 54 | +## Criterios de aceptación |
| 55 | +- Cada comando devuelve datos legibles. |
| 56 | +- CLI ejecutable con `dotnet run /command`. |
| 57 | + |
| 58 | +## Riesgos |
| 59 | +- APIs caídas → fallback genérico. |
| 60 | + |
| 61 | + |
0 commit comments