Code Monkey home page Code Monkey logo

banco-adb's Introduction

BancoTransacciones

Pequeño sistema de gestión de transacciones bancarias escrito en Java y utiliza MySQL como base de datos.

Versiones

  • Java 8 o superior
    • Maven
  • MySQL 5.7 o superior

Recursos

Prototipo de interfaz gráfica

Requisitos actuales

Entregables obligatorios

  • Protitpos de Interfaz gráfica
    • Establecer interfaces necesarias
    • ClienteForm
      • Nuevo
      • Editar
    • CuentaBancariaForm
      • Nuevo
      • Cancelar
    • Transferencia
    • Retiro Sin Tarjeta
    • Login
  • Modelos
    • Entidad Relacion
    • Relacional
  • Scripts
    • init.sql
      • DB
      • Tablas
      • Triggers
    • dumbdata.sql
  • Check transacciones
  • Uso de Maven
  • JavaDoc

Requerimientos Funcionales

  • Permite Gestionar las transacciones
  • Puede tener diferentes cuentas asociadas
  • Posibilidad de registro de usuario
  • Posibilidad de actualizar datos de usuario
  • Posibilidad de cancelar cuenta
  • Un usuario puede transferir a otras cuentas (suyas o no)
  • Realizar retiros sin ser clientes
  • Historial de operaciones con rango de fechas
  • Diferentes cuentas por usuario.

Requerimientos No Funcionales

  • Encriptación de contraseñas al almacenarlas
  • Retiros sin tarjeta pasan a no cobrado después de 10 min sin retirar dinero.
  • Validaciones
    • Datos de entrada (e.g. formato / campos vacíos)
    • Logicas (e.g. saldo negativo, doble retiro sin cuenta)
    • información repetida
  • Fechas y dinero con formato correspondiente

Estrategia

Triggers

  1. Entradas a la tabla operaciones

    1. esta tabla va a guardar diferentes tipos de operaciones, entre estos se encuentran: "actualizacion", "transferencia", y "retiro". a. Las actualizaciones se refiere a cambios en la información del usuario, estos se van a ver efectuadas mediante UPDATE's, un trigger en los updates a la tabla clientes podría alimentar esos registros. b. Las operacion "transferencia" indica la creación de un registro en la tabla transferencias, otro trigger podría estar en todos los INSERT INTO de esta tabla. c. En la última operación "retiro", un trigger podría ser aplicado al hacer UPDATE en la tabla de CuentasBancarias, el único campo a actualizar es el saldo.
  2. Propuesta de alteración a operaciones: esta también podría almacenar la creación de cuentas bancarias, agregando un trigger en los INSERT INTO de CuentasBancarias, esto podría no ser del todo necesario ya que cada cuenta bancaria tiene una fecha de apertura que contendría esta operación.

  3. Para asegurar que no se guarden montos de dinero negativos, se podría aplicar un trigger en todos los cambios que manejen este tipo de atributo, verificando antes de insertar que el valor sea mayor a 0. Esto aplicaría a: Monto de RetiroSinCuenta, SaldoMXN de CuentasBancarias, y Monto de Transferencias.

  4. Hay ingresos de fechas que no tendrían sentido, y sería lógico meter algunas validaciones mediante triggers. Esto podría aplicar a la FechaNacimiento de Clientes, que no sea mayor a la fecha actual; que FechaFin no sea menor a FechaInicio en RetirosSinCuenta; FechaApertura de CuentasBancarias tampoco debería ser mayor a la fecha actual.

Transacciones

  1. La transferencia de dinero de una cuenta a otra require el uso de transacciones para asegurar la integridad de la operación.

  2. Se podría aplicar transferencia en ambas, retiro y depósito, a cuentas bancarias, siendo este aparentemente no tan necesario podría asegurar que los movimientos se reflejen de manera correcta.

Stored Procedures

  1. Se pueden simplificar operaciones CRUD para realizar conjuntos de consultas en una sola desde el código, por ejemplo, se puede crear un procedimiento almacenado que maneje las transferencias, recibiendo una referencia de cada cuenta con el monto, y que se encargue de crear el registro de la misma transferencia y los cambios en el dinero de ambas cuentas

  2. Podría aplicarse un procedimiento almacenado que reciba un tiempo en el cual el retiro pasará a un estado en el que no pueda ser retirado, calculando dentro de aquí la fecha de FechaFin.

Avances

Avance 1

Avance 2

  • Definir dónde pretenden utilizar el trigger.
  • Definir dónde pretenden utilizar la transacción.
  • Definir dónde pretenden utilizar el stored procedure.
  • Desarrollar completamente un formulario de su elección. Debe incluir conexión con BD, DAO, Formulario, clases de Dominio, validaciones, etc.
  • URL del repositorio público de Github con el código del proyecto actualizado hasta ese momento.

Footnotes

  1. El modelo ER pueden ser abierto mediante esta página o usando la aplicación de escritorio

banco-adb's People

Contributors

silverflin avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.