Skip to content

Desarrollo Practico: Plataforma de Analisis de Datos de Trafico con Go

Descripcion general

Este proyecto practico te requiere trabajar con un PRD real para completar una plataforma de analisis de datos de trafico usando Go. La direccion de este proyecto es diferente a los sistemas CRUD anteriores: necesitas construir un flujo de datos completo de "ingesta de datos -> agregacion -> alertas -> visualizacion". Este tipo de producto de datos es muy comun en escenarios como IoT, monitoreo y analisis de operaciones.

Esta es la seccion de practica integral de la Etapa 2, y tambien tu primer contacto con el lenguaje Go. No te preocupes, con la base de JavaScript/TypeScript que ya tienes, aprender Go no es dificil; el enfoque esta en comprender las ideas de diseno del flujo de datos.

Conocimientos previos

Antes de comenzar este proyecto, ya deberias dominar lo siguiente:

Objetivos de aprendizaje

Despues de completar esta practica, podras:

  1. Leer un PRD y extraer la lista de tareas de desarrollo para un producto de datos
  2. Usar Go (Gin o Fiber) para construir un servicio API backend
  3. Disenar el flujo completo de ingesta de datos, agregacion por ventanas de tiempo y alertas
  4. Mantener la consistencia entre los datos del backend y el dashboard frontend
  5. Completar la integracion de extremo a extremo, entregando un prototipo de producto de datos demostrable

Introduccion del proyecto

El producto que vas a construir es una plataforma de analisis de datos de trafico con Go:

ModuloResponsabilidad
Ingesta de datosRecibir eventos de trafico sin procesar y almacenarlos en la base de datos
Agregacion de datosCalcular tendencias e indicadores de congestion por ventanas de tiempo
AlertasGenerar registros de alertas basados en reglas
Dashboard de visualizacionMostrar graficos de tendencias, rankings y lista de alertas en el frontend

PRD

El documento de requisitos de este proyecto esta en GitHub: Ver PRD

Primera parte: Analisis de requisitos

1.1 Leer el PRD

Abre el documento PRD y responde las siguientes preguntas clave:

  • Cual es la fuente de datos? Que campos tiene?
  • Cual es la definicion de las metricas principales? (por ejemplo, el criterio especifico de "congestion")
  • Cuales son las reglas de alertas? La primera version debe limitarse a reglas simples?
  • Que paginas y graficos incluye el dashboard?

WARNING

Si no tienes respuestas claras a las preguntas anteriores, no comiences a escribir codigo. La comprension inadecuada de los requisitos es la causa mas comun de retrabajo.

1.2 Confirmar el flujo de datos

mermaid
flowchart TD
  prd["PRD"] --> ingest["API de ingesta de datos"]
  ingest --> raw["Tabla de datos sin procesar"]
  raw --> agg["Tarea de agregacion"]
  agg --> alert["Reglas de alertas"]
  agg --> dashboard["Interfaces del dashboard"]
  alert --> dashboard

Segunda parte: Construccion del esqueleto del proyecto

2.1 Generar el servicio API Go

Referencia de prompts:

text
Basandote en el PRD actual, ayudame a generar el esqueleto de una plataforma de analisis de datos de trafico con Go.

Requisitos:
1. Usar Gin o Fiber
2. Proporcionar interfaz de ingesta de datos
3. Proporcionar esqueleto de tarea de agregacion
4. Proporcionar esqueletos de interfaces para dashboard y alertas
5. No hacer analisis complejo real, solo estructura ejecutable

2.2 Verificar la estructura del proyecto

Verificar item por item:

  • [ ] El servicio Go se puede iniciar normalmente
  • [ ] La interfaz de ingesta de datos puede recibir y almacenar datos
  • [ ] El framework de tarea de agregacion esta listo
  • [ ] La pagina del dashboard frontend puede mostrar graficos basicos

Tercera parte: Desarrollo iterativo

3.1 Avanzar por modulos

  1. API de ingesta de datos: Recibir eventos de trafico sin procesar y escribirlos en la base de datos
  2. Agregacion de datos: Agregar por ventanas de tiempo, calcular tendencias e indicadores de congestion
  3. Reglas de alertas: Generar registros de alertas basados en umbrales
  4. Interfaces del dashboard: Proporcionar datos de tendencias, datos de ranking y lista de alertas
  5. Dashboard frontend: Graficos de tendencias, rankings y paginas de lista de alertas

3.2 Autoverificacion de modulos

Item de verificacionMetodo de verificacion
Ingesta de datosLos datos sin procesar se almacenan correctamente en la base de datos
Definicion de metricasLa logica de calculo de indicadores de tendencias y rankings es consistente
Reglas de alertasLas condiciones de activacion de alertas cumplen las expectativas
Consistencia de datosLo que muestra el dashboard coincide con los datos del backend
Estandares de APITiene estructura de retorno unificada y manejo de errores

Cuarta parte: Integracion y despliegue

4.1 Pruebas de extremo a extremo

Verificar al menos los siguientes escenarios:

  • Ingresar un lote de datos de prueba -> La tarea de agregacion se ejecuta -> El dashboard se actualiza
  • Activar una condicion de alerta -> Se genera un registro de alerta -> La pagina de alertas lo muestra

Entregables

Despues de completar este proyecto, necesitas enviar lo siguiente:

  • [ ] Enlace de demostracion en linea accesible
  • [ ] Enlace al repositorio de codigo fuente (incluyendo README)
  • [ ] Documento PRD
  • [ ] Capturas de pantalla de paginas clave (demo de ingesta de datos, dashboard de tendencias, lista de alertas)
  • [ ] Video de demostracion de 60 segundos

Criterios de evaluacion

DimensionRequisitos basicosRequisitos avanzados
Alineacion con PRDFuncionalidades y estructura de datos basicamente cumplen con el PRDPuede explicar claramente las definiciones de metricas y la logica de agregacion
Flujo de datosIngesta -> Agregacion -> Alertas -> Dashboard funciona completamenteLa tarea de agregacion soporta actualizaciones incrementales
Capacidad de analisisLos tres modulos de tendencias, ranking y alertas son funcionalesLas metricas son configurables y las reglas de alertas son personalizables
Visualizacion frontendEl dashboard puede mostrar graficos basicosLos graficos soportan filtrado por rango de fechas
Completitud de ingenieriaAPI Go, base de datos y pipeline frontend conectadosLa API tiene manejo de errores unificado y registro de logs

Referencias