Está en la página 1de 10

Mini proyecto: Internet banking

[2022] Documento Funcional

Versión 1.0
07 de julio, 2022

© Itla 2022
Autopista Las Américas, Km. 27, PCSD,
La Caleta, Boca Chica 11606.
Tel. 809-738-4852

1
Índice

Objetivo general 3

Funcionalidades generales 3
Login 3
Seguridad 3

Funcionalidades Administrador 4
Dashboard(Home) 4
Administrador de usuarios 4

Funcionalidades cliente 6
Home(Listado de productos) 6
Funcionalidad de Beneficiarios 7
Funcionalidad de Pagos 7
Funcionalidad de Avances de efectivo 9
Funcionalidad de Transferencia entre cuenta 9
Requerimientos técnico 9

2
Objetivo general

● Crear un internet banking app, utilizando asp net core mvc 5, este sistema tendrá dos
roles de usuarios: un administrador y un cliente.

Funcionalidades generales
Login

El sistema en su pantalla inicial te presentará la pantalla para poder acceder al


sistema(Login), aquí hay que agregar una advertencia y es que si el usuario ya se
encuentra logueado e intenta ingresar a la pantalla de login debe redireccionarlo
automatimaticame al Home que le corresponda según el tipo de usuario que esté
logueado.

La pantalla de login tendrá un formulario que solicita el usuario y contraseña y un botón


para enviar eso datos y poder acceder al sistema, si los datos son correctos debe enviarlo
a la pantalla de inicio(Home) del usuario logueado, pero si la contraseña o el usuario es
incorrecto debe mostrarle un mensaje indicando que los datos de accesos son incorrectos,
también si el usuario está inactivo debe mostrarle un mensaje de que está inactivo que se
comunique con el administrador.

Seguridad

Si un usuario no está logueado no puede acceder a las funcionalidades ni del


administrador ni del cliente. Cuando intente entrar a esos enlaces y no esté logueado
debe redirigirlo al login y mostrarle un mensaje de que no tiene permiso para acceder a
esta sección.

También se debe validar que si el usuario logueado es un cliente no puede ingresar a


las opciones del administrador y viceversa que si un administrador está logueado no
pueda entrar a las funcionalidades de los clientes , si intenta acceder a una sección que
no tiene autorizado a entrar debe redirigirlo a una pantalla de acceso denegado desde
donde haya un enlace a sus respectivos home.

Todas estas validaciones deben realizarse usando los filtros de authorize que
implementa identity.

3
Funcionalidades Administrador
Dashboard(Home)

En la pantalla inicial de un administrador se mostrará un menú con las siguientes


opciones:

● Home
● Administración de usuario

Aparte del menú debe mostrar en esa pantalla los siguientes indicadores:

* Las cantidades de transacciones que se han realizado en el sistema total (Desde el


inicio de los tiempos) y las transacciones de ese día.

* Las cantidades de pagos realizados ese día y en total(Desde el inicio de los tiempos).

* La cantidad de clientes activos y los inactivos.

* Las cantidades de productos asignados a los clientes.

Administrador de usuarios

En esta pantalla se muestra un listado con los usuarios que están registrados en el
sistema, en este listado se debe diferenciar entre los usuarios administradores y los
usuarios clientes y de los activos e inactivos.

En la parte superior del listado hay un botón para crear usuarios al hacer clic sobre este
botón se envía a una nueva pantalla o se abre un modal con un formulario con los
siguientes campos, Nombre , Apellido , Cédula , Correo , Usuario , Contraseña ,
confirmar contraseña, tipo de usuario, si el tipo de usuario seleccionado es cliente se
debe mostrar un campo adicional que sea el de monto inicial.

Este formulario tiene las siguientes validaciones, todos los campos son requeridos, a
excepción del monto inicial el cual puede ser cero 0 (Este monto inicial es lo que el
cliente tendrá en su cuenta de ahorro principal al crearse el usuario).

Si el usuario a crear es de tipo de administrador se envía los datos al servidor, se valida


que ese usuario que desea no exista y se crea el usuario.

4
Pero si el usuario es tipo cliente aparte de crear el usuario tipo cliente debe asignarle un
producto de tipo cuenta de ahorro con un monto inicial que es el se coloco en el
formulario al momento de la creación, al asignarle este producto de tipo cuenta de
ahorro se debe generar un número de 9 dígitos que funcione como identificador único
de este producto(Este número identificador no puede existir en el sistema completo) y
se debe marcar esta cuenta de ahorro como la principal.

Volviendo al listado de usuarios desde este se pueden inactivar o activar un usuario (El
usuario administrador logueado en el momento no puede ni editar ni activar su usuario),
para inactivar un usuario existe un botón que al pulsar sobre el te sale una confirmación
de si esta seguro que desea inactivar ese usuario si la respuesta es Si se inactiva , si la
respuesta es No se cierra la confirmación y no se realiza ninguna acción. Si un usuario
ya se encuentra inactivo se mostrará un botón que permitirá activar al usuario e igual al
pulsar sobre este se le preguntará si está seguro que desea activar ese usuario.

Otra acción que se puede realizar sobre un usuario es la edición del mismo, al editar un
usuario tipo administrador se puede modificar los siguientes campos (Nombre , Apellido
, Cédula , Correo , Usuario , Contraseña ), para modificar la contraseña se debe tener con
el campo confirmar contraseña, no se le puede modificar el tipo de usuario.

Pero si el usuario es cliente podemos modificar los siguientes campos ((Nombre ,


Apellido , Cédula , Correo , Usuario , Contraseña ), para modificar la contraseña se debe
tener con el campo confirmar contraseña, y existe un campo que se llama adicional
monto, que el valor que se coloca en ese campo se le suma al total que tiene en la
cuenta de ahorro principal.

Aparte de eso el usuario cliente tiene otra sección llamada productos donde podemos
agregarle o quitarle productos, estos productos viene creado ya por defecto en el
sistema los cuales son: Cuenta de ahorro, Tarjeta de crédito y Préstamo y aunque un
usuario puede tener varias cuentas de ahorro la principal nunca puede ser eliminada, al
asignarle un producto nuevo a un usuario siempre se generar un número de 9 dígitos
que servirá como identificador único de ese producto para ese usuario y esto código
deben ser único en el sistema completo.

5
Al asignarle una tarjeta de crédito debe especificarse el límite de la tarjeta(La cantidad
que puede tomar prestada de la misma), si es un préstamo debe especificarse el monto
de los mismo, este monto se le agregara como balance al usuario en su cuenta principal
y el usuario en su listado de producto puede ir viendo el monto que le debe al
préstamo.

Si el usuario le debe dinero a una tarjeta o un préstamo no se puede eliminar ese


producto del usuario, al igual si borrar una cuenta de ahorro con dinero el monto de esa
cuenta de ahorro se le suma al monto total de la cuenta principal de ahorro.

Funcionalidades cliente
Home(Listado de productos)

En la pantalla de inicio del cliente ya logueado le aparece un menú con las siguiente
estructuctura de opciones:

* Home

* Pagos

-Expreso

-Tarjeta de crédito

-Préstamo

-Beneficiarios

* Beneficiario

* Avance de efectivo

* Transferencia

6
Aparte de ese menú debe mostrarle un listado con todos los productos que tiene el
cliente, en ese listado se debe decir cual es el tipo de producto (Cuenta de ahorro,
Tarjeta de credito o prestamo) y en el caso de las cuentas de ahorro cuánto tiene en esa
cuentas , en el caso de las tarjetas de créditos cuánto le debe y en el caso del préstamo
cuánto le debe.

Funcionalidad de Beneficiarios

En esta pantalla podrá ver un listado con los beneficiarios(Se muestra el nombre ,
apellido y número de cuenta) que tiene agregado (Un beneficiario es una cuenta de
ahorro a la cual le deposita con cierta frecuencia y para no tener que estar buscando el
numero de cuenta cada vez que le va a pagar lo puede agregar como un beneficiario).

En la parte superior de ese listado hay un botón para agregar beneficiario, al hacer clic
sobre ese botón se debe abrir un modal con un campo de número de cuenta, aquí el
usuario coloca el número de cuenta que quiere agregar como beneficiario, este campo
es requerido, al enviar los datos se debe validar que ese número de cuenta existe , si
existe se le agrega al listado de beneficiario del cliente, si no existe se le dice al cliente
que ese número de cuenta no existe.

Otra acción que puede realizar el cliente sobre sus beneficiarios es eliminarlo como
beneficiarios para esto tendrá un botón en el listado de beneficiarios para eliminar , se
le debe preguntar si está seguro de realizar esta acción.

Funcionalidad de Pagos

Hay 4 pantallas de pagos, la primera que vamos a describir es la de pago expresos. En


esta pantalla se pregunta el número de cuenta donde quiere realizar el pago, el monto
de ese pago y la cuenta de donde va a pagar, estos dos campos son requeridos, al
enviar los datos se debe validar que el número de cuenta existe y que tenga esa
cantidad que va a pagar en la cuenta que seleccionó para pagar, si existe la cuenta(Si
no existe se debe cancelar la transacción y decirle al usuario que ese número de cuenta
no existe) y tiene el dinero para realizar el pago(Si no tiene el dinero se debe cancelar la
transacción y decirle al cliente que no tiene ese monto en esa cuenta) se debe enviar a
una pantalla donde le muestre el nombre y apellido del dueño de esta cuenta y
preguntarle si está seguro de realizar la transacción si la respuesta es sí, pues se le

7
quita ese monto del pago de la cuenta que seleccionó para pagar y el otro usuario se le
suma ese dinero a su cuenta, se debe guardar registro de todos los pagos, en cambio si
la respuesta es No se cancela la transacción y se le envía a la pantalla principal al
cliente.

El siguiente pago es el de tarjeta de crédito, en esta pantalla selecciona la tarjeta de


crédito a la cual le quiere hacer el pago , desde qué cuenta le quiere pagar y el monto
que le quiere pagar, se debe validar que el usuario tenga la cantidad que le quiere
pagar en la cuenta que seleccionó, en caso de que se le deban 500 pesos a la tarjeta y
el usuario le paga 1000, lo restante se le regresará a su cuenta o no se le debitará, solo
se paga lo que se debe lo demás no se usa. Una vez realizado el pago a la tarjeta se
reduce el monto a la deuda y se envía al cliente a la pantalla principal.

El siguiente pago es el de préstamo, en esta pantalla selecciona el préstamo al cual le


quiere hacer el pago , desde qué cuenta le quiere pagar y el monto que le quiere pagar,
se debe validar que el usuario tenga la cantidad que le quiere pagar en la cuenta que
seleccionó, en caso de que se le deban 500 pesos a ese préstamo y el usuario le paga
1000, lo restante se le regresará a su cuenta o no se le debitará, solo se paga lo que se
debe lo demás no se usa. Una vez realizado el pago al préstamo se reduce el monto a la
deuda y se envía al cliente a la pantalla principal.

La última opción que vamos a describir es la de pago para beneficiarios. En esta


pantalla se selecciona el beneficiario a quien quiere realizar el pago, el monto de ese
pago y la cuenta de donde va a pagar, estos dos campos son requeridos, al enviar los
datos se debe validar que tenga esa cantidad que va a pagar en la cuenta que
seleccionó para pagar, si tiene el dinero para realizar el pago(Si no tiene el dinero se
debe cancelar la transacción y decirle al cliente que no tiene ese monto en esa cuenta)
se debe enviar a una pantalla donde le muestre el nombre y apellido del dueño de esta
cuenta y preguntarle si está seguro de realizar la transacción si la respuesta es sí, pues
se le quita ese monto del pago de la cuenta que seleccionó para pagar y el otro usuario
se le suma ese dinero a su cuenta, se debe guardar registro de todos los pagos, en
cambio si la respuesta es No se cancela la transacción y se le envía a la pantalla
principal al cliente.

8
Funcionalidad de Avances de efectivo

En esta pantalla el cliente puede seleccionar una de las tarjetas de crédito que tiene
asignada y la cuenta de ahorro donde quiere realizar el depósito y el monto del avance
de efectivo que quiere realizar, estos tres campos son requeridos.

Una vez seleccionada esta información se envía estos datos, se debe validar que no
supere el monto del límite de crédito de la tarjeta de la cual se está tomando el dinero,
ejemplo si el límite de crédito es 500 no puedes hacer una avance de efectivo de 600
pesos, porque supera el límite de crédito.

Si los datos son correctos el monto del avance de efectivo se le suma al balance de la
cuenta seleccionada y a la tarjeta de crédito se le agrega el monto del avance de
efectivo como deuda y aparte de eso se le suma un 6.25 % de interés del monto
tomado prestado de la tarjeta de crédito, ejemplo si el avance de efectivo es de 100
pesos, pues usted le debe 106.25 a la tarjeta de crédito.

Funcionalidad de Transferencia entre cuenta

En esta pantalla el usuario puede hacer transferencia entre su cuenta para hacerlo esta
pantalla cuenta de dos campos donde el usuario seleccione el número de cuenta desde
donde quiere transferir (Cuenta origen), el número de cuenta donde quiere
transferir(cuenta destino) y el monto que desea transferir.

Todo estos datos son requeridos, una vez validados los datos se envía la información y
se debe validar que el monto que se quiere transferir se encuentra en la cuenta de
origen, si no tiene el saldo suficiente debe decirle que no cuenta con ese saldo, pero si
todo está correcto a la cuenta de origen se le quita el dinero y se le suma al balance de
la cuenta de destino.

Requerimientos técnico
* Deben utilizar viewmodels y las validaciones se deben realizar desde los mismos.

* Se debe usar Entity framework con code first para la persistencia de los datos.

* El proyecto tiene que ser visualmente entendible (Usar bootstrap).

* El proyecto debe usar la arquitectura ONION (Esta se debe aplicar correctamente al


100%, en caso de algún error en la misma se considerará que esta incorrecta).

9
* Se deben utilizar repositorio y servicio genéricos.

* Se deben usar identity para el manejo de los usuarios.

* Se deben usar automapper para el mapeo de los viewmodels, entities y dtos.

* Todas las cantidades deben ser manejada con la mayor precisión posible ya que se
trata de dinero y cada centavo cuenta.

10

También podría gustarte