Skip to content

longaresf/bank-account-core-java

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Bank Account Core & Transaction Engine (Java)

Este repositorio contiene un módulo de backend desarrollado en Java, diseñado para modelar y gestionar las operaciones nucleares de un sistema bancario (Core Banking). El proyecto aplica de forma estricta los pilares de la Programación Orientada a Objetos (POO) para resolver de manera segura flujos transaccionales críticos, tales como aperturas de cuentas, depósitos, retiros y validaciones de fondos.

🚀 Características y Capacidades Técnicas

  • Modelado de Entidades Financieras: Estructuración robusta de clases orientadas a objetos (como CuentaBancaria, Cliente) garantizando una alta cohesión en la lógica del negocio.
  • Motor Transaccional Seguro: Métodos encapsulados para el procesamiento de transacciones financieras, controlando condiciones de saldo e impidiendo operaciones inválidas (como retiros mayores al saldo disponible o depósitos negativos).
  • Encapsulamiento Avanzado: Restricción estricta del acceso directo a los estados financieros de las cuentas, asegurando que cualquier mutación de saldo se realice exclusivamente a través de reglas de negocio autorizadas.
  • Extensiones Financieras: Lógica para cuentas corrientes con autorización de sobregiro, cálculo de tasas de interés, generación de números de cuenta únicos.

🛠️ Stack Tecnológico

  • Lenguaje Principal: Java (JDK 8 / 11 / 17 o superior)
  • Paradigma: Programación Orientada a Objetos (POO)
  • IDE de Desarrollo: Visual Code.
  • Gestor de Construcción: Gradle.

⚙️ Principios de Ingeniería y Solución de Problemas

El desarrollo de este motor bancario se diseñó bajo estándares de software que priorizan la integridad de los datos:

  1. Inmutabilidad y Consistencia de Saldo: Los atributos críticos (como el saldo y el identificador de la cuenta) están protegidos mediante modificadores de acceso privados. No existen métodos de mutación directa (Setters) para el saldo, obligando al sistema a pasar por flujos de validación antes de consolidar un cambio.
  2. Abstracción del Negocio: La lógica encargada de validar las reglas bancarias se encuentra completamente aislada de cualquier interfaz de entrada o salida por consola. Esto permite que el núcleo del software sea 100% reutilizable para escalar hacia una API REST con Spring Boot.
  3. Tratamiento de Excepciones de Negocio: Implementación de estructuras de control o excepciones personalizadas para gestionar de forma elegante los intentos de transacciones fallidas, evitando el colapso del sistema (runtime crashes).

🔧 Configuración y Ejecución Local

Para compilar, auditar o ejecutar este componente backend en tu máquina local, sigue estos pasos:

  1. Clonar el repositorio:
   git clone [https://github.com/longaresf/bank-account-core-java.git](https://github.com/longaresf/bank-account-core-java.git)
  1. Ingresar al directorio del proyecto: Bash cd bank-account-core-java

  2. Compilación y Ejecución (Consola): Compila las clases de Java:

Bash javac Main.java ```

  • Ejecuta el programa compilado:
       java Main
    (Nota: Si tu clase principal con el método public static void main tiene otro nombre, reemplaza Main por el correspondiente).
  1. Ejecución en IDE (Recomendado):
    • Importa el directorio en tu IDE preferido (IntelliJ IDEA, Eclipse o VS Code).
    • Localiza la clase principal y ejecuta el entorno de pruebas para validar las transacciones por consola.

✒️ Autor

  • Francisco Longares - Desarrollador Backend - longaresf

About

Core banking account simulation in Java, demonstrating strict encapsulation, secure transaction handling, and robust data validation principles.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages