Rifly - Digital Raffle Management Platform
“The best way to organize a raffle is to make it simple, transparent, and accessible to everyone.”
Rifly is a comprehensive digital raffle management platform with a Next.js/TypeScript frontend and ASP.NET Core 9.0 backend. The application enables users to create, manage, and organize raffles with real-time number tracking, prize management, winner selection, and extensive customization options.
Features
-
Real-Time Number Tracking: Track raffle numbers with three statuses (available, reserved, sold) with instant visibility into raffle progress.
-
Prize Management: Define multiple prizes with descriptions and ordering, ensuring organized winner selection.
-
Winner Selection System: Assign winners to specific prizes with editing capabilities and dedicated interface.
-
Visual Customization: Multiple color themes and custom banner uploads for personalized raffles.
-
Privacy Controls: Public/private raffle options with password protection for access control.
-
Sharing Functionality: Generate shareable links for easy distribution across channels.
-
Analytics Dashboard: KPIs including active raffles, sold numbers, total revenue, and revenue breakdowns.
-
Multi-Currency Support: Support for multiple currencies (₡, $, €, S/, Bs., ₲, B/., R$).
-
Progressive Web App (PWA): Installable PWA with offline capabilities for native app-like experience.
-
Responsive Design: Fully responsive interface across desktop, tablet, and mobile devices.
Technologies Used
Frontend:
- Next.js: Server-side rendering and static site generation for optimal performance
- TypeScript: Type-safe programming for code reliability and maintainability
- React 19: Modern React with hooks and component patterns
- React Icons: Consistent UI icon library
- CSS Modules: Scoped component-level styling
Backend:
- ASP.NET Core 9.0: RESTful API with C# for robust server-side logic
- PostgreSQL: Relational database with Entity Framework Core for data persistence
- JWT Authentication: Secure token-based authentication with refresh token support
- MinIO: Object storage service for banners and avatar management
- Docker: Containerization for deployment and scalability
- Swagger/OpenAPI: API documentation and testing interface
Challenges Overcome
-
Real-Time State Management: Implementing consistent number tracking with multiple statuses across frontend and backend, ensuring data integrity during concurrent updates.
-
Complex Data Relationships: Managing relationships between raffles, numbers, prizes, and winners with efficient Entity Framework queries and proper database indexing.
-
File Upload and Storage: Implementing secure file uploads with validation (size, type, MIME) and integration with MinIO for scalable object storage.
-
Winner Selection Logic: Developing validation logic to prevent duplicate assignments and maintain data integrity across the API.
-
PWA Implementation: Configuring manifest, service workers, and offline capabilities for cross-device compatibility.
-
Multi-Currency Calculations: Accurate revenue calculations and formatting across currencies with proper decimal handling in PostgreSQL.
-
Security Implementation: JWT authentication with refresh tokens, password hashing with BCrypt, and secure access control for private raffles.
Outcome
-
Streamlined Raffle Management: Reduced raffle setup time from hours to minutes with intuitive workflows.
-
Enhanced User Experience: Real-time updates and responsive design improve engagement and accessibility across devices.
-
Scalable Architecture: Next.js frontend and ASP.NET Core backend with PostgreSQL ensure high performance and scalability for concurrent users.
-
Cross-Platform Accessibility: PWA implementation enables native app-like experience on all devices.
-
Professional Presentation: Visual customization features allow users to create branded raffles that enhance event credibility.
Rifly - Plataforma Digital de Gestión de Rifas
“La mejor manera de organizar una rifa es hacerla simple, transparente y accesible para todos.”
Rifly es una plataforma digital integral de gestión de rifas con frontend en Next.js/TypeScript y backend en ASP.NET Core 9.0. La aplicación permite a los usuarios crear, gestionar y organizar rifas con seguimiento de números en tiempo real, gestión de premios, selección de ganadores y amplias opciones de personalización.
Características
-
Seguimiento de Números en Tiempo Real: Rastrea los números de la rifa con tres estados (disponible, reservado, vendido) con visibilidad instantánea del progreso.
-
Gestión de Premios: Define múltiples premios con descripciones y orden, garantizando una selección organizada de ganadores.
-
Sistema de Selección de Ganadores: Asigna ganadores a premios específicos con capacidades de edición e interfaz dedicada.
-
Personalización Visual: Múltiples temas de color y carga de banners personalizados para rifas personalizadas.
-
Controles de Privacidad: Opciones de rifas públicas/privadas con protección por contraseña para control de acceso.
-
Funcionalidad de Compartir: Genera enlaces compartibles para fácil distribución en todos los canales.
-
Panel de Análisis: KPIs que incluyen rifas activas, números vendidos, ingresos totales y desglose de ingresos.
-
Soporte Multi-moneda: Soporte para múltiples monedas (₡, $, €, S/, Bs., ₲, B/., R$).
-
Progressive Web App (PWA): PWA instalable con capacidades offline para una experiencia similar a app nativa.
-
Diseño Responsive: Interfaz completamente responsive en escritorio, tablet y dispositivos móviles.
Tecnologías Utilizadas
Frontend:
- Next.js: Renderizado del lado del servidor y generación estática para rendimiento óptimo
- TypeScript: Programación con tipos para confiabilidad y mantenibilidad del código
- React 19: React moderno con hooks y patrones de componentes
- React Icons: Biblioteca de iconos consistente para la UI
- CSS Modules: Estilos con alcance a nivel de componente
Backend:
- ASP.NET Core 9.0: API RESTful con C# para lógica robusta del lado del servidor
- PostgreSQL: Base de datos relacional con Entity Framework Core para persistencia de datos
- JWT Authentication: Autenticación segura basada en tokens con soporte de refresh token
- MinIO: Servicio de almacenamiento de objetos para banners y gestión de avatares
- Docker: Containerización para despliegue y escalabilidad
- Swagger/OpenAPI: Documentación y interfaz de pruebas de la API
Desafíos Superados
-
Gestión de Estado en Tiempo Real: Implementación de seguimiento consistente de números con múltiples estados en frontend y backend, garantizando integridad de datos durante actualizaciones concurrentes.
-
Relaciones de Datos Complejas: Gestión de relaciones entre rifas, números, premios y ganadores con consultas eficientes de Entity Framework e indexación adecuada de la base de datos.
-
Carga y Almacenamiento de Archivos: Implementación de cargas seguras con validación (tamaño, tipo, MIME) e integración con MinIO para almacenamiento escalable de objetos.
-
Lógica de Selección de Ganadores: Desarrollo de lógica de validación para prevenir asignaciones duplicadas y mantener integridad de datos en toda la API.
-
Implementación PWA: Configuración de manifest, service workers y capacidades offline para compatibilidad multiplataforma.
-
Cálculos Multi-moneda: Cálculos precisos de ingresos y formato entre monedas con manejo correcto de decimales en PostgreSQL.
-
Implementación de Seguridad: Autenticación JWT con refresh tokens, hashing de contraseñas con BCrypt y control de acceso seguro para rifas privadas.
Resultado
-
Gestión de Rifas Simplificada: Reducción del tiempo de configuración de rifas de horas a minutos con flujos intuitivos.
-
Experiencia de Usuario Mejorada: Actualizaciones en tiempo real y diseño responsive mejoran el compromiso y accesibilidad en todos los dispositivos.
-
Arquitectura Escalable: Frontend en Next.js y backend en ASP.NET Core con PostgreSQL garantizan alto rendimiento y escalabilidad para usuarios concurrentes.
-
Accesibilidad Multiplataforma: La implementación PWA permite una experiencia similar a app nativa en todos los dispositivos.
-
Presentación Profesional: Las funciones de personalización visual permiten a los usuarios crear rifas con marca que mejoran la credibilidad del evento.