Proyecto: Eventos.top
Documentación de usuario
2026-01-07
1. Introducción¶
Greenborn Software se posiciona como una empresa innovadora en el desarrollo de soluciones digitales. El proyecto eventos.top busca crear una plataforma integral para la gestión de eventos, con enfoque en usabilidad, escalabilidad y estética visual.
2. Historias de Usuario¶
Usuario Final¶
- Como usuario quiero registrarme fácilmente para poder acceder a eventos.
- Como usuario quiero filtrar eventos por categoría, fecha y ubicación para encontrar lo que me interesa.
- Como usuario quiero comprar entradas de forma segura para asistir a eventos.
- Como usuario quiero recibir notificaciones sobre cambios o recordatorios de mis eventos.
Base de Datos Completa para eventos.top¶
Este documento describe el esquema completo de la base de datos para la plataforma cultural y social eventos.top, utilizando PostgreSQL como motor principal.
Objetivo¶
Diseñar una base de datos robusta y escalable que soporte:
- Gestión de usuarios y roles.
- Creación y administración de eventos.
- Inscripciones y entradas.
- Comentarios y reseñas.
- Categorías y etiquetas.
- Auditoría y control de cambios.
Modelo Entidad-Relación¶
Usuarios (users)¶
- id (UUID, PK)
- nombre
- apellido
- email (único, case-insensitive)
- password_hash
- rol (admin, organizador, asistente)
- bio
- avatar_url
- is_active
- created_at
- updated_at
Categorías (categories)¶
- id (UUID, PK)
- nombre (único)
- descripcion
- slug (único)
- created_at
- updated_at
Etiquetas (tags)¶
- id (UUID, PK)
- nombre (único)
- slug (único)
- created_at
- updated_at
Eventos (events)¶
- id (UUID, PK)
- titulo
- descripcion
- estado (borrador, publicado, finalizado, cancelado)
- fecha_inicio
- fecha_fin
- lugar_nombre
- direccion
- ciudad
- provincia
- pais
- lat, lng
- capacidad
- precio_base
- moneda
- id_organizador (FK → users)
- id_categoria (FK → categories)
- slug (único)
- cover_url
- created_at
- updated_at
Relación Eventos-Tags (event_tags)¶
- event_id (FK → events)
- tag_id (FK → tags)
- PK compuesta (event_id, tag_id)
Inscripciones (registrations)¶
- id (UUID, PK)
- event_id (FK → events)
- user_id (FK → users)
- estado (pendiente, confirmada, cancelada)
- precio_pagado
- metodo_pago
- codigo_qr
- notas
- created_at
- updated_at
Comentarios (comments)¶
- id (UUID, PK)
- event_id (FK → events)
- user_id (FK → users)
- rating (1–5)
- texto
- is_visible
- created_at
- updated_at
Favoritos (favorites)¶
- user_id (FK → users)
- event_id (FK → events)
- PK compuesta (user_id, event_id)
- created_at
Medios del Evento (event_media)¶
- id (UUID, PK)
- event_id (FK → events)
- tipo (imagen, video)
- url
- orden
- created_at
Auditoría (audit_events)¶
- id (UUID, PK)
- table_name
- record_id
- action (INSERT, UPDATE, DELETE)
- actor_user_id
- payload (JSONB)
- created_at
Funciones y Triggers¶
- make_slug: genera slugs URL-safe.
- set_timestamps: actualiza created_at y updated_at.
- audit_log: registra cambios en tablas clave.
- Triggers para slugs automáticos en categorías, tags y eventos.
Vistas útiles¶
- v_eventos_proximos: próximos eventos publicados.
- v_eventos_inscripciones: resumen de inscripciones por evento.
- v_eventos_rating: rating promedio por evento.
Datos de ejemplo (Seed)¶
- Usuario admin: admin@eventos.top
- Organizadores: Guillermo Dubourdieu, Lito Ryoma.
- Categorías: Música, Teatro, Cine.
- Tags: indie, andino, familia, gratuito.
- Evento de ejemplo: Festival de Música Andina.
- Inscripciones y comentarios de prueba.
Alternativas libres¶
- PostgreSQL: recomendado para producción.
- MongoDB: documentos JSON flexibles.
- CouchDB: replicación distribuida.
- SQLite + JSON1: ideal para prototipos.
Conclusión¶
Este esquema en Markdown resume la base de datos completa para eventos.top, con tablas, relaciones, funciones, vistas y datos iniciales. Está listo para implementarse en PostgreSQL y puede adaptarse fácilmente a otros motores libres como MongoDB o CouchDB.