/wunallet-interbank-interface

Interbank interface built in Python and Java using OOP principles.

Primary LanguagePython

Wunallet. An interbankary app, build using OOP

English

Abouth the project

Overview

This project, developed for an Object-Oriented Programming course at the Universidad Nacional de Colombia, provides an interbankary interface to centralize a user's financial operations across multiple banks. Implemented in both Java (CLI) and Python (GUI), the project demonstrates a deep understanding of OOP principles and software development best practices.

Development Phases

  • Phase 1 (Java CLI)

    • Thoroughly modeled a complex real-life interaction suitable for a software solution with at least 5 functionalities.
    • Implemented the approved model as a command-line interface application in pure Java.
    • Created extensive documentation serving as a user manual, technical reference, and application overview.
  • Phase 2 (Python GUI)

    • Ported the existing model and Java implementation into pure Python.
    • Significantly enhanced user experience by developing a graphical user interface using Tkinter.
    • Continued emphasis on high-quality documentation for easy understanding and use of the project.

Objectives

  • OOP Mastery: Internalize and apply core object-oriented programming concepts, including:

    • Abstract classes and methods
    • Class attributes and methods
    • Encapsulation
    • Polymorphism
    • Inheritance simple and multiple
    • Dynamic and static binding
    • Interfaces
    • Method overloading
  • Software Development Expertise: Demonstrate proficiency in:

    • Exception handling
    • Serialized database management
    • UML diagrams
    • Technical writing
    • Software design
    • GUI development

Key Functionalities

The interbankary interface offers the following functionalities:

  • Credit Access: Analyze credit records to facilitate access to bank credits.
  • Interbank Transfers: Securely transfer funds between accounts of different users, potentially across different banks.
  • Account Management: Handle requests for account upgrades and capability expansions.
  • Transaction History: Query and view transaction details within user accounts.
  • Frequent Contacts: Register accounts for streamlined, frequent transactions.

Español

Acerca del proyecto

Resumen

Este proyecto, desarrollado para un curso de Programación Orientada a Objetos en la Universidad Nacional de Colombia, proporciona una interfaz interbancaria para centralizar las operaciones financieras de un usuario en múltiples bancos. Implementado tanto en Java (CLI) como en Python (GUI), el proyecto demuestra una profunda comprensión de los principios de la POO y las mejores prácticas de desarrollo de software.

Fases de Desarrollo

  • Fase 1 (Java CLI)

    • Se modeló cuidadosamente una interacción compleja de la vida real, adecuada para una solución de software con al menos 5 funcionalidades.
    • Se implementó el modelo aprobado como una aplicación de interfaz de línea de comandos en Java puro.
    • Se creó una amplia documentación que sirve como manual de usuario, referencia técnica y descripción general de la aplicación.
  • Fase 2 (Python GUI)

    • Se adaptó el modelo existente y la implementación en Java a Python puro.
    • Se mejoró significativamente la experiencia del usuario mediante el desarrollo de una interfaz gráfica de usuario (GUI) utilizando Tkinter.
    • Se continuó haciendo hincapié en la documentación de alta calidad para facilitar la comprensión y el uso del proyecto.

Objetivos

  • Dominio de la POO: Internalizar y aplicar los conceptos centrales de la programación orientada a objetos, incluyendo:

    • Clases y métodos abstractos
    • Atributos y métodos de clases
    • Encapsulamiento
    • Polimorfismo
    • Herencia simple y múltiple
    • Ligadura dinámica y estática
    • Interfaces
    • Sobrecarga de métodos
  • Experiencia en Desarrollo de Software: Demostrar competencia en:

    • Manejo de excepciones
    • Gestión de bases de datos serializadas
    • Diagramas UML
    • Redacción técnica
    • Diseño de software
    • Desarrollo de GUI

Funcionalidades Clave

La interfaz interbancaria ofrece las siguientes funcionalidades:

  • Acceso a Créditos: Analizar historiales crediticios para facilitar el acceso a créditos bancarios.
  • Transferencias Interbancarias: Transferir fondos de forma segura entre cuentas de diferentes usuarios, potencialmente en distintos bancos.
  • Gestión de Cuentas: Gestionar solicitudes de ampliación de cuentas y aumento de capacidades.
  • Historial de Transacciones: Consultar y visualizar los detalles de las transacciones en las cuentas del usuario.
  • Contactos Frecuentes: Registrar cuentas para agilizar transacciones frecuentes.

Authors

Nombre Git user
Diego Ospina Ramirez Dioprz
Daniel Escobar David DanielED07
Cesar Augusto Ospina Muñoz Cesar-580
David Cardona celthion