PaymentManager es una aplicación desarrollada con .NET MAUI para la gestión integral de pagos, usuarios y planes de pago. El proyecto está diseñado con una arquitectura modular y flexible, integrando servicios, validaciones avanzadas y soporte multiplataforma gracias a .net.
Permite administrar usuarios, métodos de pago, planes de pago y registrar pagos de manera eficiente. Es ideal para organizaciones, clubes, academias o cualquier entidad que requiera llevar el control de cobros periódicos y la gestión de sus miembros.
- Gestión de usuarios: Alta, edición, baja y validación de usuarios.
- Gestión de métodos de pago: Registro y administración de diferentes formas de pago (efectivo, transferencia, etc.).
- Planes de pago: Creación y asignación de planes personalizados a usuarios.
- Registro de pagos: Permite registrar pagos realizados por los usuarios, asociándolos a planes y métodos.
- Historial y reportes: Consulta de historial de pagos, periodos y estado de cada usuario.
- Notificaciones: Envío de mensajes por email y SMS (integración con servicios externos).
- Validaciones avanzadas: Sistema de validación tipo Laravel para asegurar la integridad de los datos.
- Filtros y búsqueda: Herramientas para filtrar y buscar usuarios, pagos y planes.
- Asignación de planes: Un usuario puede tener uno o varios planes de pago activos, con periodos definidos y reglas de vencimiento.
- Pagos periódicos: El sistema calcula automáticamente los periodos de pago y permite registrar pagos parciales o totales.
- Validación de unicidad: Evita duplicidad de usuarios, pagos o asignaciones mediante reglas de validación.
- Mensajería automatizada: Permite enviar recordatorios o confirmaciones de pago de forma automática.
- Extensibilidad: La lógica de negocio está desacoplada en servicios, facilitando la extensión o personalización.
- Multiplataforma: Compatible con Android, iOS, Windows, MacCatalyst y Tizen gracias a .NET MAUI.
- Persistencia: Utiliza Entity Framework Core con SQLite para almacenamiento local.
- Servicios desacoplados: Implementación de servicios para usuarios, métodos de pago, planes, pagos, mensajería (email/SMS) y validaciones.
- UI moderna: Uso de CommunityToolkit.Maui y Syncfusion para una experiencia de usuario rica y personalizable.
El sistema de validaciones implementado es potente y flexible, inspirado en el sistema de validación de Laravel:
- Reglas como string: Puedes definir reglas en formato string separadas por
|, igual que en Laravel. - Mensajes personalizados: Permite asociar mensajes específicos para cada regla y campo.
- Validaciones comunes: Incluye reglas como
required,min,max,regex,email,digits,betweenyunique. - Extensible: Puedes agregar fácilmente nuevas reglas o validaciones personalizadas en el método
ApplyRule. - Declarativo y reutilizable: La validación es declarativa y fácil de mantener, reutilizable para distintos modelos mediante validadores que heredan de
BaseValidator<T>.
- Permitir reglas condicionales o personalizadas mediante delegados.
- Soportar mensajes de error por defecto globales.
- Validación de arrays o colecciones.
- Validaciones anidadas para objetos complejos.
Models/— Modelos de dominio (User, Payment, PaymentPlan, etc.)Services/— Servicios para lógica de negocio y acceso a datosValidators/— Validadores y lógica de validaciónData/— Contexto de base de datos (EF Core)Views/yViewModels/— Vistas y lógica de presentación (MVVM)Resources/— Recursos gráficos y fuentes