Sistema de Gestión de Rifas para Chile 🇨🇱
RifApp Plus es una aplicación web moderna y escalable para la gestión de rifas en Chile. Desarrollada con arquitectura MVC en PHP, ofrece una plataforma segura y transparente para organizar y participar en rifas con total confianza.
- Backend: PHP con patrón MVC personalizado
- Base de Datos: MySQL con localización chilena
- Frontend: JavaScript modular + Tailwind CSS (estilo Glassmorphism)
- Email: Integración con PHPMailer
- Enrutamiento: URLs amigables basadas en slugs
- Super Administrador: Control total del sistema
- Administrador: Gestión de rifas y vendedores
- Vendedor: Venta de números de rifas
- Comprador: Vista pública (sin registro requerido)
- Inventario Compartido: Todos los vendedores ven los mismos números
- Inventario Estático: Cada vendedor tiene su propia copia de números
- Inventario Específico: Asignación manual o automática de rangos
- Notificaciones en tiempo real
- Registro de acciones (logs) para auditoría
- Sistema de "blames" para trazabilidad
- Formato de moneda CLP
- Validación de RUT chileno
- Formatos de fecha chilenos
- Validación de números telefónicos chilenos
- PHP: 7.4 o superior
- MySQL: 5.7 o superior
- Extensiones PHP requeridas:
- PDO MySQL
- OpenSSL
- Mbstring
- JSON
- cURL
- Permisos de escritura: directorios
/storage/y raíz del proyecto
# Clonar el repositorio
git clone https://github.com/tu-usuario/rifapp-plus.git
cd rifapp-plus
# Instalar dependencias
composer install- Accede a
http://tu-servidor/app/install/ - Sigue el asistente de instalación paso a paso:
- Verificación de requisitos del sistema
- Configuración de base de datos
- Creación de usuario administrador
- Configuración general de la aplicación
- Instalación final
Después de completar la instalación, DEBES eliminar el directorio /install/ por seguridad:
# En Windows
rmdir /s "ruta\del\proyecto\install"
# En Linux/Mac
rm -rf /ruta/del/proyecto/install/- Accede a
http://tu-servidor/app/(redirige automáticamente) - O directamente a
http://tu-servidor/app/public/ - Inicia sesión con las credenciales del administrador creadas durante la instalación
- ¡Listo para usar!
- Principal:
http://tu-servidor/app/- Redirige automáticamente a public/ - Directo:
http://tu-servidor/app/public/- Acceso directo a la aplicación - Instalador:
http://tu-servidor/app/install/- Solo durante la instalación inicial
Después de eliminar /install/, el acceso a http://tu-servidor/app/ funcionará sin mostrar listado de directorios.
rifapp-plus/
├── index.php # ✅ Punto de entrada principal (redirige a public/)
├── .htaccess # ✅ Configuración principal de Apache
├── app/ # Aplicación principal
│ ├── Controllers/ # Controladores MVC
│ ├── Models/ # Modelos de datos
│ └── Views/ # Vistas y templates
├── config/ # Archivos de configuración
├── core/ # Clases base del framework
├── install/ # ⚠️ Instalador (ELIMINAR después de instalar)
│ ├── views/ # Vistas del instalador
│ ├── index.php # Controlador del instalador
│ └── README.md # Documentación del instalador
├── public/ # Punto de entrada web
│ ├── .htaccess # ✅ Configuración de ruteo
│ ├── assets/ # CSS, JS, imágenes
│ └── index.php # Archivo principal de la aplicación
├── routes/ # Definición de rutas
├── scripts/ # Scripts SQL y utilidades
├── storage/ # Archivos de la aplicación
├── vendor/ # Dependencias de Composer
├── .env # Variables de entorno (generado en instalación)
├── .env.example # Plantilla de variables de entorno
└── composer.json # Dependencias PHP
El directorio /install/ contiene el asistente de instalación web. DEBE ser eliminado después de completar la instalación por razones de seguridad.
- cURL (para composer)
- Servidor Web: Apache con mod_rewrite o Nginx
- Composer: Para gestión de dependencias
# Clonar en el directorio de tu servidor web (ej: xampp/htdocs)
git clone https://github.com/tu-usuario/rifas-chile.git
cd rifas-chilecomposer install# En sistemas Unix/Linux
chmod -R 755 storage/
chmod -R 755 public/assets/
chmod 644 .env.example
# Asegurar que el servidor web pueda escribir en storage/
chown -R www-data:www-data storage/- Abre tu navegador y ve a:
http://tu-dominio.com/install - Sigue el asistente paso a paso:
- Paso 1: Verificación del sistema
- Paso 2: Configuración de base de datos
- Paso 3: Configuración de correo electrónico
- Paso 4: Creación del super administrador
- Paso 5: Finalización
Después de la instalación, puedes configurar:
- SEO: Meta tags, sitemap, etc.
- Analytics: Google Analytics, Tag Manager, Facebook Pixel
- Límites: Cantidad de rifas por admin, vendedores por rifa
- Páginas: Políticas de privacidad, términos y condiciones
Si prefieres configurar manualmente sin el asistente:
cp .env.example .envEditar .env con tu configuración:
# Base de Datos
DB_HOST=localhost
DB_NAME=rifas_chile
DB_USER=tu_usuario
DB_PASSWORD=tu_password
# Email
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=tu_email@gmail.com
MAIL_PASSWORD=tu_app_password
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=noreply@tudominio.cl
MAIL_FROM_NAME="Rifas Chile"
# Aplicación
APP_NAME="Sistema de Rifas Chile"
APP_URL=http://localhost/rifas-chile/public
APP_DEBUG=false
APP_TIMEZONE=America/SantiagoCREATE DATABASE rifas_chile CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;php scripts/migrate.phpphp scripts/create_superadmin.phpAcceso: /superadmin/login
Funcionalidades:
- Gestión completa de usuarios
- Configuración del sistema
- Configuración de seguridad y límites
- Impersonificación de usuarios (drill-down)
- Visualización de logs y auditoría
- Configuración SEO y Analytics
Acceso: /login (registro público disponible)
Funcionalidades:
- Creación y gestión de rifas
- Asignación de vendedores
- Configuración de premios
- Estadísticas y reportes
- Gestión de ventas
Acceso: /login (creado por administradores)
Funcionalidades:
- Vista de rifas asignadas
- Venta de números
- Gestión de pagos (pagado/por pagar)
- Estadísticas personales
- Lista de rifas:
/rifas - Vista de rifa:
/rifas/nombre-de-la-rifa - Vista de vendedor:
/vendedor/nombre-vendedor
El sistema utiliza un diseño moderno con efectos de vidrio. Puedes personalizar:
- Colores: Editar variables CSS en
public/assets/css/app.css - Efectos: Modificar backdrop-filter y transparencias
- Gradientes: Personalizar los gradientes de fondo
- ui.js: Interacciones visuales, modales, toasts
- logic.js: Cálculos, validaciones, lógica de negocio
Archivos de idioma en: resources/lang/es/
- Tokens CSRF en todos los formularios
- Hashing de contraseñas con PHP password_hash()
- Validación de entrada en todos los campos
- Sanitización de datos de salida
- Sesiones seguras con regeneración de ID
- Control de acceso basado en roles
- Rate limiting en intentos de login
Todas las configuraciones sensibles se almacenan en .env:
- Credenciales de base de datos
- Configuración SMTP
- Claves de API
- Tokens de seguridad
usuarios (Users)
├── rifas (Raffles)
│ ├── premios (Prizes)
│ ├── numeros_rifa (Raffle Numbers)
│ └── rifa_vendedores (Raffle Vendors)
├── ventas (Sales)
├── action_logs (Activity Logs)
├── paginas (Static Pages)
└── configuraciones (System Config)
El sistema implementa "soft deletes" - los registros se marcan como eliminados pero se mantienen para auditoría.
- Configurar
APP_DEBUG=false - Configurar SSL (HTTPS)
- Configurar backup de base de datos
- Configurar logs del servidor
- Configurar caché (Redis/Memcached)
- Optimizar imágenes
- Configurar CDN
- Monitoreo de rendimiento
# Limpiar logs antiguos
php scripts/clean_logs.php
# Backup de base de datos
php scripts/backup_database.php
# Optimizar base de datos
php scripts/optimize_database.phpError de permisos en storage/
chmod -R 755 storage/
chown -R www-data:www-data storage/Error de conexión a base de datos
- Verificar credenciales en
.env - Verificar que MySQL esté ejecutándose
- Verificar permisos del usuario de BD
Emails no se envían
- Verificar configuración SMTP en
.env - Verificar que el puerto SMTP esté abierto
- Para Gmail, usar contraseña de aplicación
URLs no funcionan
- Verificar que mod_rewrite esté habilitado
- Verificar configuración de
.htaccess - Verificar
APP_URLen.env
Los logs se almacenan en:
storage/logs/actions.log- Actividad del usuariostorage/logs/errors.log- Errores del sistemastorage/logs/emails.log- Log de emails enviados
- Fork el proyecto
- Crear una rama para tu feature (
git checkout -b feature/AmazingFeature) - Commit tus cambios (
git commit -m 'Add some AmazingFeature') - Push a la rama (
git push origin feature/AmazingFeature) - Abrir un Pull Request
Este proyecto está bajo la Licencia MIT - ver el archivo LICENSE.md para detalles.
Para soporte técnico:
- Email: soporte@rifaschile.cl
- Documentación: docs.rifaschile.cl
- Issues: GitHub Issues
Rifas Chile - Sistema de gestión de rifas hecho en Chile, para Chile 🇨🇱