Skip to content

Sistema Bancario Financiero / Préstamos (Banca en línea) desarrollado en PHP puro Versión 8.1, bajo el patrón MVC (Modelo-Vista-Controlador), MySQL, AJAX, JQuery, Javascript

License

DanielRivera03/SistemaBancario

Repository files navigation

CashMan H.A - Sistema Bancario Financiero / Banca en Línea

Portada

Configuración Inicial

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.

Configuracion URL Servidor

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.

ConfiguracionSMTP

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.

ConfiguracionCSS (2)

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).

Importante - Nuevos ajustes trigger base de datos

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.

Recomendación:

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.
Y de este modo, usted ha importado con éxito toda la información e instrucciones que la base de datos necesita para comunicarse óptimamente con la aplicación. Sí registra fallos, ejecute las instrucciones una por una para así descartar cualquier fallo (punto de pocas probabilidades sí ha seguido los pasos como deben ser). Por favor verifique que la cantidad de elementos coindicen con lo detallado más abajo.

Información General

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

ezgif-1-afbd8fd598

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.

¿Qué se puede hacer dentro de esta aplicación bancaria / financiera?

  • 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.

Son algunas de las funciones más principales e importantes que tú puedes realizar dentro de esta plataforma. Tome nota que son acciones descritas de manera general, por cada rol de usuario existen limitaciones según a lo descrito anteriormente

Fórmulas Matemáticas

* Préstamos Personales

carbon (6)

* Seguro de deuda y gastos administrativos según rango de crédito solicitado

carbon (1)

* Préstamos Hipotecarios: Financiamiento máximo hasta un 90% sobre el valor del inmueble

carbon (2)

* Seguro de deuda y gastos administrativos según rango de crédito solicitado

carbon (3)

* Préstamos de Vehículos:

carbon (4)

* Seguro de deuda, gastos administrativos y servicio de GPS según rango de crédito solicitado

carbon (5)

* Seguro de deuda: Monto añadido a la cuota de los clientes, protección desempleo.
* Gastos administrativos: Monto que se descuenta al préstamo solicitado por los clientes.
* Servicio GPS: Monto añadido a la cuota de los clientes exclusivamente en créditos de vehículos.
* Total Desembolso: Monto final que recibirá el cliente, en concepto del crédito solicitado.

Modelo Entidad Relación (m-ER) Base de Datos

DiagramaER_CashmanHa

Adicional

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.

Algunas Capturas

* Login / inicio de sesión general

1

* Registro Nuevos Usuarios

RegistroUsuarios

* Consulta usuarios y asignación nuevas solicitudes crediticias

NuevosCreditos

InformacionNuevosCreditos

InformacionProductosCreditos

NuevoCreditoAsignacion

ReferenciasPersonales

* Consulta créditos aprobados

CreditosAprobados

* Sistema de pagos CashMan H.A

SistemaPagos

OrdenPagos

* Transferencias Dinero Otras Cuentas

TransferenciasCuentasDatos

TransferenciasCuentasEnvio

* Comprobante pago créditos (mismo modelo aplica con transacciones cuentas de ahorro clientes)

Comprobante3

Comprobante1

Comprobante2

* Perfil de usuarios

Perfil1

Perfil2

Perfil3

Perfil4

* Envío de mensajes a otros usuarios (Bandeja de Entrada, Lectura Mensajes y Envío Mensajes)

Mensaje1

Mensaje2

Mensaje3

* Consulta notificaciones recibidas

Notificaciones

* Consulta estado de cuenta créditos y vista impresión

EstadodeCuenta

16

* Contrato generado automáticamente, según producto asociado créditos clientes (Préstamos Hipotecarios)

CopiaContratoHipoteca

* Contrato generado automáticamente, según producto asociado créditos clientes (Préstamos Personales)

CopiaContratoPersonales

* Contrato generado automáticamente, según producto asociado créditos clientes (Préstamos de Vehículos)

CopiaContratoVehiculos

* Consulta cliente moroso (problemas de impagos en su responsabilidad crediticia)

CuotasImpagoMoras

EstadoCuotaMoraCliente

* Vista General Todas Las Transacciones Procesadas (Cuentas de Ahorro)

VistaTransaccionesCuentas

* Inicio Portal Administradores

admin

* Inicio Portal Presidencia

presidencia

* Inicio Portal Gerencia

gerencia

* Inicio Portal Atención al Cliente

atencioncliente

* Inicio Portal Clientes

17

* Recuperación cuentas | contraseñas olvidadas

Recuperacion1

Recuperacion2

Recuperacion3

Recuperacion4

* Muestra recepción correos automáticos

19

20

21

** Los datos de usuarios no son reales. Cumplen únicamente la función del llenado de posible información real a gestionar en esta plataforma.

Créditos Especiales:

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/

Muchas gracias por obtener este repositorio hecho con muchas tazas de café ☕ ❤️

poster_5dfe44fc8738c205dc24cc919a7de3fd

*** Fecha de Subida: 11 abril 2022 ***