Skip to content

🎲 Simulador de Rifas con Backend Node.js - Proyecto Talento Tech curso NODE.JS. Sistema completo con autenticación JWT, base de datos SQLite y interfaz responsive para sorteos interactivos.

Notifications You must be signed in to change notification settings

fasmote/TalentoTech-SimulaRifas

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎲 SimulaRifas - TalentoTech

Estado del Proyecto Versión Licencia

Simulador de Rifas Educativo - Proyecto Final Integrador del curso Node.js de TalentoTech

📋 Descripción

SimulaRifas es una aplicación web educativa que simula el funcionamiento de rifas y sorteos sin involucrar dinero real. Desarrollada como proyecto final para el curso de Node.js de TalentoTech, implementa una arquitectura completa con frontend interactivo y backend robusto.

🎯 Características Principales

  • Simulador Interactivo: Interfaz intuitiva para seleccionar números y realizar sorteos
  • Gestión de Usuarios: Sistema de autenticación con JWT
  • Rifas Privadas: Creación y gestión de simulaciones con códigos de acceso
  • Rifas Públicas: Contenido de demostración accesible sin registro
  • API RESTful: Backend modular con arquitectura MVC
  • Responsive Design: Adaptable a dispositivos móviles y desktop

🚀 Demo en Vivo

🛠️ Tecnologías Utilizadas

Frontend

  • HTML5 - Estructura semántica
  • CSS3 - Estilos modernos con Flexbox y Grid
  • JavaScript ES6+ - Lógica interactiva
  • Fetch API - Comunicación con el backend

Backend

  • Node.js - Entorno de ejecución
  • Express.js - Framework web
  • JWT - Autenticación de usuarios
  • JSON - Almacenamiento de datos (migración a Firebase en progreso)
  • CORS - Configuración de dominios cruzados

Deploy y Herramientas

  • Vercel - Plataforma de despliegue
  • Git/GitHub - Control de versiones
  • VS Code - Editor de código

📁 Estructura del Proyecto

TT_rifas_LIMPIA_LIMPIA/
├── public/                  # Archivos estáticos
│   ├── css/
│   │   └── styles.css      # Estilos principales
│   ├── js/
│   │   ├── app.js          # Lógica principal
│   │   └── rifas.js        # Funciones de rifas
│   └── index.html          # Página principal
├── backend/                 # Servidor Node.js (en desarrollo)
│   ├── controllers/        # Lógica de negocio
│   ├── models/             # Modelos de datos
│   ├── routes/             # Rutas de la API
│   ├── services/           # Servicios de datos
│   └── server.js           # Servidor principal
├── docs/                   # Documentación
├── .gitignore              # Archivos ignorados
├── .env.example            # Variables de entorno
├── README.md               # Este archivo
└── PRODUCTO.md             # Requerimientos detallados

🚀 Instalación y Configuración

Prerrequisitos

  • Node.js (versión 14 o superior)
  • npm o yarn
  • Navegador web moderno

Instalación Local

  1. Clonar el repositorio

    git clone https://github.com/fasmote/TalentoTech-SimulaRifas.git
    cd TalentoTech-SimulaRifas
  2. Instalar dependencias del backend

    cd backend
    npm install
  3. Configurar variables de entorno

    cp .env.example .env
    # Editar .env con tus configuraciones
  4. Inicializar DB

    npm run init-db
  5. Agregar contenido demo

    npm run demo-content
  6. Iniciar el servidor backend

    npm run dev
  7. Abrir el frontend

    • Abrir public/index.html en el navegador
    • O usar un servidor local como Live Server

Scripts Disponibles

npm run dev          # Iniciar servidor en modo desarrollo
npm start            # Iniciar servidor en producción
npm run init-db      # Iniciar DB  
npm run demo-content # Crear contenido de demostración
npm test             # Ejecutar pruebas

📖 Uso de la Aplicación

🎮 Modo Demo (Sin Registro)

  1. Visita la página principal
  2. Selecciona números haciendo clic en la grilla
  3. Usa "Elegir al Azar" para selección automática
  4. Haz clic en "Simular Sorteo" para ver el ganador

👤 Modo Registrado

  1. Crear Cuenta: Registrarte con usuario, email y contraseña
  2. Crear Simulaciones: Título y descripción personalizados
  3. Compartir Código: Código de 6 caracteres para participantes
  4. Gestionar: Editar, ver estadísticas y realizar sorteos

🔑 Acceso por Código

  1. Ve a "Acceder por Código"
  2. Ingresa el código de 6 caracteres
  3. Selecciona números y participa
  4. El propietario puede realizar el sorteo

🎯 Funcionalidades Principales

Para Usuarios Anónimos

  • ✅ Simulador de demostración
  • ✅ Visualización de rifas públicas
  • ✅ Acceso por código a rifas privadas

Para Usuarios Registrados

  • ✅ Crear simulaciones personalizadas
  • ✅ Gestionar rifas (editar, eliminar)
  • ✅ Códigos de acceso únicos
  • ✅ Realizar sorteos automatizados
  • ✅ Estadísticas de participación

API Backend

  • ✅ Autenticación JWT
  • ✅ CRUD completo de rifas
  • ✅ Participación en rifas
  • ✅ Sorteos automatizados
  • ✅ Manejo de errores

🔧 API Endpoints

Autenticación

POST /api/auth/register    # Registrar usuario
POST /api/auth/login       # Iniciar sesión
POST /api/auth/logout      # Cerrar sesión
GET  /api/auth/me          # Datos del usuario actual

Rifas

GET    /api/rifas          # Listar rifas públicas
POST   /api/rifas          # Crear nueva rifa
GET    /api/rifas/my       # Mis rifas
GET    /api/rifas/my/:id   # Ver mi rifa específica
PUT    /api/rifas/:id      # Actualizar rifa
DELETE /api/rifas/:id      # Eliminar rifa

Participación

GET  /api/rifas/access/:code     # Acceder por código
POST /api/rifas/:id/participate  # Participar en rifa
POST /api/rifas/:id/draw         # Realizar sorteo

🔒 Seguridad y Consideraciones

Legales

  • Sin dinero real: Aplicación educativa únicamente
  • Cumple normativas: No constituye juego de apuestas
  • Datos ficticios: Participantes y premios simulados

Técnicas

  • JWT Tokens: Autenticación segura
  • Validación: Datos de entrada sanitizados
  • CORS: Configuración de dominios permitidos
  • Rate Limiting: Protección contra spam (en desarrollo)

🚧 Estado del Desarrollo

✅ Completado

  • Frontend responsivo completo
  • Sistema de autenticación
  • CRUD de rifas y usuarios
  • Simulador interactivo
  • Deploy en Vercel

🔄 En Progreso

  • Fase 16: Arquitectura MVC backend
  • Fase 17: API RESTful independiente
  • Fase 18: Migración a Firebase/Firestore

📋 Próximas Features

  • Notificaciones push
  • Analytics de rifas
  • Exportación de resultados
  • Modo oscuro
  • Internacionalización

🤝 Contribución

Este proyecto es parte de un curso educativo, pero las contribuciones son bienvenidas:

  1. Fork del repositorio
  2. Crear rama feature (git checkout -b feature/AmazingFeature)
  3. Commit cambios (git commit -m 'Add some AmazingFeature')
  4. Push a la rama (git push origin feature/AmazingFeature)
  5. Abrir Pull Request

📄 Licencia

Este proyecto está bajo la Licencia MIT. Ver LICENSE para más detalles.

👨‍💻 Autor

Claudio - Estudiante TalentoTech Node.js

🙏 Agradecimientos

  • TalentoTech por la excelente formación en Node.js
  • Prof. Jean Paul Ferreira por la guía y enseñanza en Node.js
  • Comunidad open source por las herramientas utilizadas

📞 Soporte

Si tienes problemas o preguntas:

  1. Revisa la documentación en PRODUCTO.md
  2. Busca en Issues
  3. Crea un nuevo issue si es necesario

🎲 SimulaRifas - Aprendiendo Node.js con TalentoTech 🎲

DemoDocumentaciónReporte de Bug

About

🎲 Simulador de Rifas con Backend Node.js - Proyecto Talento Tech curso NODE.JS. Sistema completo con autenticación JWT, base de datos SQLite y interfaz responsive para sorteos interactivos.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published