Estimado(a) usuario(a), es un placer y honor compartir este nuevo proyecto, agradezco mucho la visita a este repositorio. Antes de iniciar, usted debe realizar algunas configuraciones iniciales para el buen funcionamiento de este proyecto en su servidor. A continuación se detallará los cambios que usted debe realizar en el código fuente de la aplicación.
1) Configuración variable global de aplicación: Este proyecto ha sido trabajado bajo el prefijo del puerto número 90. (http://localhost:90/) Por lo cual si usted tiene configurado el mismo con otro puerto, o en su defecto mantiene el estándar original, debe realizar ese cambio; caso contrario los estilos y redirecciones de la aplicación no funcionarán y será imposible el óptimo funcionamiento del mismo. Para realizar el cambio, por favor ubique los siguientes archivos: (CashManHa/controlador/cIniciosSesionesUsuarios.php y CashManHa/controlador/cGestionesCashman.php) dónde usted podrá ubicar la variable $UrlGlobal; y realizar el cambio pertinente.
2) Configuración ajustes SMTP PHPMAILER: Este proyecto cuenta con el envío de correos electrónicos automáticos, que su función principal son el envío de código de validación / seguridad para recuperación de contraseñas olvidadas, aviso de confirmación actualización credenciales de acceso contraseñas olvidadas y envío de código de seguridad para realizar transferencias de dinero a otras cuentas de ahorro (clientes). Por lo cual para realizar el cambio, por favor ubique los siguientes archivos (CashManHa/controlador/cIniciosSesionesUsuarios.php y CashManHa/controlador/cGestionesCashman.php) y realice los cambios pertinentes de configuración SMTP PHPMAILER. Para información más detallada, por favor consulte la documentación oficial de PHPMAILER. Usted es libre de utilizar su SMTP ya sea de prueba como Papercut o Mailtrap por mencionar algunos ejemplos; o bien un hosting de pago con un correo institucional real.
3) Configuración importación estilos CSS: Lo mencionado en el primer punto, algunos estilos css son importados mediante una regla especial css. Motivo por el cual usted debe cambiar la URL asignada por defecto a la de su servidor (entiéndase por defecto http://localhost:90/) Por favor ubique el archivo en CashManHa/vista/css/style.css y realice los cambios pertinentes.
4) Enlace descarga carpeta imágenes: Si por alguna razón tiene problemas en visualizar todas las imágenes de este proyecto, por favor sustituya la carpeta de imagenes por este archivo. Alojado en Google Drive = Enlace: https://drive.google.com/file/d/1BUKOcMmnws7Am91ilkKR6j9IoDXlmzkd/view?usp=sharing (CashManHa/vista/pegaraquí)
5) Base de datos: Si por alguna razón al momento de importar la base de datos a su servidor existen errores o alertas de advertencia, quiere decir que parcialmente se ha importado la base de datos y no en su totalidad. Se ha incluido cada uno de los query sql para que usted proceda manualmente a ejecutarlos en su SGBD. (Más detalles de los elementos en total más abajo).
Se ha realizado una pequeña correción al trigger / disparador llamado (RecalcularSaldoFinal_CreditosClientes) y ubicar la variable _saldocredito. Originalmente aparece como DECLARE _saldocredito decimal(9,2); Por favor realizar el cambio únicamente a los valores y no al tipo de dato de la siguiente manera: DECLARE _saldocredito decimal(15,6);. Motivo: no realizaba el cálculo exacto de los saldos finales de las solicitudes crediticias al momento de procesar los pagos de las cuotas mensuales asignadas. A LOS USUARIOS QUE CLONARON O DESCARGARON ESTE REPOSITORIO ANTES DE ESTA EDICION, FAVOR REALIZAR EL CAMBIO. NUEVAS CLONACIONES Y DESCARGAS SE HA SOLVENTADO EXITOSAMENTE ESE ERROR.
Se recomienda encarecidamente el uso del SGBD Mysql Workbench, de esta manera la importación de todos los datos que este sistema necesita se realiza de mejor manera que usando phpMyAdmin. Para ello debe seguir los siguientes pasos:
- Primero cree el esquema de la base de datos. Se recomienda el nombre cashmanha. Ya que ese es el nombre de conexión el cuál se refleja en la aplicación. Usted es libre de elegir el nombre de esquema que desee crear. Cualquier cambio se deben realizar los respectivos ajustes en el archivo de conexión de la aplicación.
- En este punto puede importar el respectivo archivo sql que contiene todo lo que la aplicación necesita. Sí por alguna razón no utiliza el SGBD mencionado, puede realizarlo manualmente, en este caso primero ejecute archivo sql que contiene todas las tablas del sistema.
- Inserte todos los registros (datos) de las tablas del sistema.
- Agregué los índices respectivos de relaciones de las tablas del sistema.
- Ejecute todas las instrucciones sql de las respectivas vistas de las tablas del sistema.
- Ejecute todas las instrucciones sql de las respectivos procedimientos almacenados de las tablas del sistema.
- Ejecute todas las instrucciones sql de las respectivos disparadores de las tablas del sistema.
- Ejecute todas las instrucciones sql de las respectivos eventos de las tablas del sistema.
Siguiendo todos los pasos anteriores, enhorabuena ʕ•́ᴥ•̀ʔっ usted ya tiene todo listo para ejecutar este proyecto en su servidor. A continuación se detallarán aspectos técnicos de esta aplicación.
¿Qué es CashMan H.A? Es una aplicación financiera / bancaria que simula un entorno real de algunas tradicionales bancas en línea de los corporativos financieros reconocidos. Usted puede adquirir préstamos (que son divididos en tres / Personales / Vehículos / Hipotecarios). Además de obtener una cuenta de ahorro personal y poder realizar transferencias de dinero a otras cuentas registradas. Puede conocer el status de su solicitud crediticia antes de ser aprobada y cuando este ha sido marcado así, además de posibilidad de reestructurar créditos o simplemente denegarlos. Puede consultar su estado de cuenta respecto a su solicitud crediticia y ver los comprobantes de cada operación efectuada dentro de la aplicación (aplica para créditos activos, históricos y cuentas de ahorro). Es un sistema muy completo que se encuentra dividido en cinco roles de usuarios
Este sistema a nivel de código y base de datos se encuentra distribuido de la siguiente manera:
- Base de Datos:
- 21 Tablas.
- 148 Procedimientos Almacenados.
- 67 Vistas.
- 21 Disparadores.
- 5 Eventos.
- Sistema:
- Lenguaje de Programación PHP.
- Versión 8.XX
- Patrón MVC (Modelo, Vista, Controlador).
- Gestiones AJAX, JQuery.
- Complementos JQuery, Javascript
- Plantilla Bootstrap.
- División de cinco roles de usuarios, los cuales son (administradores, presidencia, gerencia, atención al cliente y clientes).
Es importante mencionar que dentro del código del sistema no existen llamadas directas en código SQL, sino únicamente los llamados a los procedimientos almacenados declarados en la base de datos, con su pase de parámetros respectivos.
- Registar nuevos usuarios (dónde pueden ser usuarios administrativos o clientes).
- Generación de informe PDF con las credenciales de acceso para todos los nuevos usuarios (punto de estricto cumplimiento para absolutamente todos los nuevos usuarios).
- Registar nuevos productos (tomar en cuenta que nuevos productos requieren de adecuaciones significativas dentro de la aplicación).
- Registar nuevos roles de usuario (tomar en cuenta que roles de usuario requieren de adecuaciones significativas dentro de la aplicación).
- Registar nuevas solicitudes crediticias (con sus mantenimientos tales como aprobarlas, denegarlas o reestructurarlas)
- Registar cuotas mensuales de X a Y fecha, según el requerimiento solicitado por clientes.
- Registar pagos de cuotas mensuales de solicitudes crediticias aprobadas.
- Generación de informe PDF con los detalles de todos los movimientos efectuados en la aplicación (aplicable para créditos y cuentas de ahorro).
- Registar nuevos productos (tomar en cuenta que nuevos productos requieren de adecuaciones significativas dentro de la aplicación).
- Registar nuevas cuentas de ahorro personales.
- Realizar retiros, depósitos y anular transacciones efectuadas en las cuentas de ahorro personales.
- Cálculo automático de saldos (aplicable para créditos y cuentas de ahorro).
- Cálculo automático de cuotas que han caído en impago (moras) El estándar definido que por cada día de atraso, será cargada a la cuota en impago un total de $5.99 por cada día de incumplimiento..
- Consulta de cuotas no pagadas (clientes morosos) y consulta detallada de perfil de cliente moroso.
- Consulta general de todos los movimientos efectuados en la aplicación, con sus respectivos comprobantes de pago.
- Registrar tickets de soporte y notificación de problemas dentro de la aplicación.
- Envío de mensajes a otros usuarios dentro de la aplicación.
- Registro automático de notificaciones de movimientos de interés efectuados dentro de la plataforma.
- Envío de dinero por medio de transferencia a otras cuentas personales registradas en la aplicación.
- Consulta de mi perfil personal, con mantenimientos de interés y consulta de datos de interés tales como información personal e información de sesión activa y sesiones anteriores.
- Consulta de estado de cuenta y la posibilidad de generar una versión impresa.
- Todos los nuevos usuarios, es de estricto cumplimiento que deben cambiar sus credenciales de acceso. Además de la posibilidad de cambiar su usuario único por una sola vez (según roles de usuario).
- Requisitos créditos:
Préstamos Personales:
▪ Disponible para asalariados, independientes y jubilados
▪ Tasas de interés mensual desde el 3% hasta el 20% mensual sobre el crédito
▪ Monto máximo a financiar hasta $10,000.00 USD para asalariados y jubilados, y $15,000.00 para independientes
▪ Plazo máximo de financiamiento de hasta 120 meses
Préstamos Hipotecarios:
▪ Disponible para asalariados e independientes
▪ Tasas de interés mensual desde 1.05% hasta 12% mensual sobre el crédito
▪ Monto mínimo de financiamiento desde $30,000.00 USD hasta un máximo de $3,000000.00
▪ Plazo máximo de financiamiento hasta 20 años
Préstamos de Vehículos:
▪ Disponible para asalariados e independientes
▪ Tasas de interés mensual desde 10% hasta 60% mensual sobre el crédito
▪ Monto máximo de financiamiento de $100,000.00 USD para asalariados y $200,000.00 USD para independientes
▪ Plazo máximo de financiamiento hasta 90 meses
Todos los créditos se someten a un estudio, que, en base al salario devengado por el cliente interesado, tendrá que ser aprobado por presidencia y gerencia, antes de ser aprobado finalmente, y registrar su crédito en el sistema, con sus cuotas a cumplir, dar de alta a ese cliente en el sistema y entregar el estado de cuenta y copia de contrato celebrado con el que el debe de cumplir a cabalidad.
Por favor realiza los ajustes antes mencionados, de igual forma cambia las URL que hacen los llamados a los correos electrónicos automáticos, sustituyendo el http://localhost:90/ por la URL de tu servidor de prueba o real. Además se ha optado a bien el revelar la API KEY que básicamente es informar sobre el estado del tiempo climático actual en la ciudad de San Salvador, El Salvador. Motivo que únicamente funciona como consulta de datos. NUNCA REVELAR API KEY QUE INTEGREN OTROS SERVICIOS.
* Contrato generado automáticamente, según producto asociado créditos clientes (Préstamos Hipotecarios)
* Contrato generado automáticamente, según producto asociado créditos clientes (Préstamos Personales)
* Contrato generado automáticamente, según producto asociado créditos clientes (Préstamos de Vehículos)
** Los datos de usuarios no son reales. Cumplen únicamente la función del llenado de posible información real a gestionar en esta plataforma.
Para la realización de este proyecto, se ha utilizado diferentes recursos, los cuales se mencionan a continuación:
1. API Climatica: OpenWeather -> https://openweathermap.org/
2. Iconos animados SVG Clima: basmilius -> https://github.com/basmilius/weather-icons
3. Conversión cifras números a letras: lecano -> https://github.com/lecano/php-numero-a-letras
4. Documentos PDF: FPDF -> http://www.fpdf.org/