Skip to content

Backend con Django/DRF y MySQL, frontend con React, Vite, SASS, TailwindCSS y animaciones 3D con Three.js.

Notifications You must be signed in to change notification settings

sanyimo/eventapp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎟️ EventApp

Plataforma fullstack para gestión de eventos con experiencia 3D inmersiva, dashboards por roles y flujo completo de tickets y regalos.

Django Python JavaScript React Vite Three.js MySQL REST API Deployed on Alwaysdata

EventApp es una plataforma interactiva para descubrir y gestionar eventos, comprar entradas y gestionar la experiencia completa del asistente.
Integra backend robusto con Django & REST API y frontend avanzado con React, Vite, Three.js y Tailwind, apostando por una experiencia visual inmersiva y animada.

Flujo completo del sistema:
descubrimiento → compra → ticket → regalo → gestión → estadísticas


🧠 Descripción general

EventApp permite a:

  • 🌐 Visitantes explorar eventos sin autenticarse.
  • 🎫 Usuarios registrados comprar pases, gestionar tickets y regalos.
  • 🏢 Empresas organizar eventos, administrar pases y regalos.
  • 🛠 Staff y Admins administrar datos y supervisar la plataforma.

🎨 Concepto y experiencia visual

EventApp no sigue una navegación tradicional.
Está diseñada como una experiencia espacial e interactiva:

  • 🏠 Home 3D con escenario animado
  • 🧍‍♂️ Personaje interactivo (Sr. Lupito) como guía
  • 🎡 Slider de eventos sobre un plató
  • 🔍 Búsqueda inmersiva
  • 🎁 Sistema visual de regalos
  • 🧳 Carrito de compra
  • 🔄 Navegación direccional
         Search
           ↑
 Login <- Home -> Register
           ↓
       Dashboard

🖼️ Galería visual (capturas & videos)

EventApp está diseñada como una experiencia interactiva 3D, no como una web tradicional.
Cada vista representa un escenario con lógica y narrativa propias.

ℹ️ Las capturas son thumbnails optimizados para GitHub.
Los videos muestran el flujo real de la aplicación.

🏠 Home – Escenario principal

🎥 Video:

Home 3D

Blue mode Black mode

Incluye:

  • Escenario con iluminación dinámica
  • Esfera de partículas animada
  • Escultura de corazones rotatoria
  • Navegación espacial
  • Acceso a contacto y enlaces (legales y RRSS)
🧍‍♂️ Sr. Lupito – Personaje interactivo

Rol

  • Guía visual
  • Punto de entrada a búsqueda
  • Refuerzo narrativo y UX
🔍 Búsqueda – Camerino interactivo

Incluye:

  • Escenario tipo camerino
  • Búsqueda por nombre y categoría
  • Render dinámico de eventos
  • Acceso a ficha completa y pases
Eventos sin pases Eventos con pases Modal de pases
Eventos sin pases Evento con pases pases
🎁 Regalos por evento y pase
Sin login Con login + ticket
🛒 Carrito de compras
Desde búsqueda Desde dashboard

Incluye:

  • Gestión visual de pases
  • Interacciones animadas
  • Flujo de compra completo

🎥 Flujo completo:

📅 Dashboard – gestión

Incluye

  • Calendario interactivo
  • Gestión por roles
  • Tickets con QR
  • Estadísticas y gráficas

Eventos con Admin Eventos con Usuario

👉 Ver más capturas:


🎥 Videos

👉 Dashboard mobile 👉 Dashboard desktop
👉 Crear Evento 👉 Crear Regalo

🎫 Tickets y QR
Asistente para usuario Ticket

📊 Historial

Dashboard Historial

Video:

EventApp-historical.mp4

🛠️ Lógica de negocio

EventApp está construida alrededor de un flujo completo de gestión de eventos, desde la creación hasta el análisis posterior, con reglas claras y roles bien definidos.


🧩 Entidades principales
  • Profile

    • Responsabilidades y vistas según cada nivel
  • Event

    • Evento creado por una empresa
    • Tiene fecha, ubicación, estado, etc.
    • Otras entidades derivadas: Category, EventImage, EventDate
  • EventPass

    • Pase asociado a un evento
    • Define precio, tipo, condiciones y regalos disponibles
  • Ticket

    • Se genera al comprar un EventPass
    • Es único, pertenece a un usuario y contiene un QR
  • GiftItem

    • Regalo definido por la empresa
    • Puede depender del tipo de pase y del estado del ticket
  • Company

    • Empresa organizadora
    • Gestiona eventos, pases, regalos y estadísticas

🔁 Flujo principal del sistema
Usuario explora eventos
        ↓
Selecciona evento
        ↓
Elige EventPass
        ↓
Compra → se genera Ticket
        ↓
Ticket habilita regalo (si aplica)
        ↓
Evento ocurre
        ↓
Datos disponibles en Dashboard

🎫 Tickets
  • Un Ticket se crea siempre a partir de un EventPass
  • Contiene:
    • Usuario
    • Pase comprado (snapshot)
    • Estado (válido / expirado / usado)
    • QR descargable
  • Un ticket no puede reutilizarse

🎁 Regalos
  • Los regalos:
    • Los define la empresa
    • Pueden depender del tipo de pase o disponibles para cualquier evento propio
  • Regla base:
    • 1 ticket válido → 1 regalo
  • Limitaciones:
    • Ticket expirado o usado no puede reclamar regalo
    • El stock se actualiza en tiempo real

📅 Dashboard y gestión

El dashboard adapta su comportamiento según el rol:

👤 Attendee

- Ver eventos y calendario
- Consultar tickets
- Descargar tickets con QR
- Ver regalos asignados
- Gestionar su perfil

🏢 Company Staff & Admin

- CRUD de eventos propios
- CRUD de pases y regalos
- Ver asistentes
- Acceso a estadísticas del evento

⚙ Platform Staff & Admin

- Acceso global a todos los datos
- Supervisión del sistema
- Control administrativo completo

📊 Estadísticas
  • Seguimiento de eventos
  • Ingresos
  • Asistencia
  • Tipos de pases
  • Regalos entregados

🔐 Roles y permisos

Funcionalidad / Rol Anonymous Attendee Company Staff Company Admin Platform Staff Platform Admin
Ver eventos ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Comprar pases ✔️ ✔️ ✔️ ✔️ ✔️
Ver tickets propios ✔️ ✔️ ✔️ ✔️ ✔️
CRUD eventos ✔️ (propios) ✔️ (empresa) ✔️ ✔️
Ver asistentes ✔️ (propios) ✔️ (propios) ✔️ ✔️
Estadísticas ✔️ (empresa) ✔️ (empresa) ✔️ ✔️
Acceso total ✔️

🔧 Tecnologías principales

Backend, API & Django Admin
  • Django + Django REST Framework

  • MySQL

  • Arquitectura por capas:

    • helpers
    • services
    • serializers
    • views
  • API REST organizada por recursos:

    • Event
    • EventPass
    • Ticket
    • User
    • GiftItem (admin-gifts, user-gifts)
    • Company
    • etc.
  • API preparada para:

    • consumo frontend
    • paneles administrativos
    • escalado futuro
  • Django Admin configurado por roles:

    • Admin de plataforma
    • Staff con permisos ampliados
    • Admin de empresa con acceso a datos propios
Frontend & UX
  • React + Vite
  • Three.js (escenas 3D)
  • Framer Motion (animaciones)
  • TailwindCSS + SCSS modular
  • React Big Calendar + date-fns
  • Axios, SweetAlert2, Recharts
  • QR Code Styling

📁 Resumen estructura del proyecto

gestor_eventos
├── backend
│   ├── event_manager
│   │   ├── settings.py
│   │   ├── urls.py
│   │   └── wsgi.py, etc.
│   ├── events
│   │   ├── helpers
│   │   ├── serializers
│   │   ├── services
│   │   ├── views
│   │   └── templates/emails
│   └── media
└── frontend
    └── src
        ├── assets
        ├── components
        │   ├── Dashboard
        │   ├── Events
        │   ├── modals
        │   └── UI, etc.
        ├── pages
        ├── hooks
        ├── context
        ├── styles
        └── utils

📧 Extras

  • Formulario de contacto con sistema de correos
  • Funcionalidad completa de login, registro y recuperación de contraseña vía email

🚀 Despliegue

El backend está desplegado en Alwaysdata, integrado con el frontend.

👉 Puedes acceder a la aplicación en:
https://eventapp.alwaysdata.net/

Explora sin registrarte

Para facilitar la prueba de la app, se proporciona una cuenta demo que permite acceder a las funciones principales sin necesidad de registro, pero sin poder modificar datos reales.

Cuenta demo:

Usuario: DemoUser

Contraseña: demo1234

Permisos:

  • Ver eventos, tickets, regalos y datos de usuario de prueba
  • No se permite CRUD sobre datos reales

📫 Contacto

Email * GitHub * Discord



Gracias por tu visita!

About

Backend con Django/DRF y MySQL, frontend con React, Vite, SASS, TailwindCSS y animaciones 3D con Three.js.

Topics

Resources

Stars

Watchers

Forks