Universidad del Quindío
Ingeniería de Sistemas y Computación
Curso: Programación II
Esta aplicación es una billetera virtual desarrollada en Java que permite a los usuarios gestionar sus finanzas personales de forma digital. Ofrece funcionalidades como registro, administración de cuentas bancarias, creación de presupuestos, seguimiento de transacciones y generación de reportes financieros, tanto para usuarios como para administradores.
- Características
- Herramientas Principales
- Roles del Sistema
- Entidades principales
- Requisitos técnicos
- Patrones de diseño aplicados
- Interfaz del aplicativo
- Estructura del proyecto
- Autores
Virtual Wallet App es una aplicación de escritorio desarrollada en Java con interfaz gráfica basada en JavaFX, que permite la administración eficiente de las finanzas personales mediante una billetera virtual. Esta solución ofrece una experiencia completa tanto para usuarios comunes, que desean gestionar sus cuentas y presupuestos, como para administradores, encargados del control y monitoreo del sistema financiero digital.
Entre sus principales características se encuentran:
-
📌 Registro e inicio de sesión de usuarios.
-
🧾 Administración de cuentas bancarias, incluyendo transferencias, depósitos y retiros.
-
📊 Creación y seguimiento de presupuestos categorizados.
-
💳 Registro y consulta detallada de transacciones financieras.
-
🗃️ Generación de reportes en formatos PDF y CSV usando librerías como Apache POI y PDFBox.
-
📈 Visualización de estadísticas mediante gráficas dinámicas con JavaFX Charts.
-
🛡️ Sistema de roles con funcionalidades diferenciadas para usuarios y administradores.
-
♻️ Aplicación de múltiples patrones de diseño (Factory, Singleton, Builder, Facade, Observer, Strategy, entre otros) para garantizar un código modular, reutilizable y escalable.
-
🧩 Estructura del proyecto bien organizada, que separa la lógica de negocio, controladores, servicios, vistas y utilidades.
-
tilesfx: Biblioteca para crear paneles de información tipo dashboard, ideales para estadísticas y visualización de datos.
-
pdfbox: Librería de Apache para generar documentos PDF de forma dinámica desde Java. Usada para reportes financieros.commons-csv: Herramienta de Apache para exportar datos en formato CSV, útil para reportes que pueden ser abiertos en Excel o Google Sheets.
- RF-001: Registrarse y/o iniciar sesión.
- RF-002: Modificar su perfil (nombre, correo, teléfono).
- RF-003: Agregar, retirar y transferir dinero entre cuentas.
- RF-004: Crear, modificar y eliminar presupuestos.
- RF-005: Consultar y categorizar transacciones.
- RF-006: Gestionar cuentas bancarias.
- RF-007: Ver todas sus transacciones y presupuestos.
- RF-008: Consultar saldo actual y estado financiero.
- RF-009: Crear, actualizar, eliminar y listar usuarios.
- RF-010: Gestionar cuentas bancarias.
- RF-011: Crear y listar transacciones.
- RF-012: Ver estadísticas (gastos comunes, usuarios activos, saldo promedio).
- RF-013: Mostrar estadísticas gráficas con JavaFX Charts.
- Agregar/editar/eliminar cuentas.
- Consultar detalles de cuentas.
- Crear y listar transacciones.
- Filtrar por fecha, tipo y categoría.
- Crear/modificar/eliminar presupuestos.
- Monitorear el gasto asignado por categoría.
- Crear y gestionar categorías de transacciones.
- RF-018: Implementación técnica:
- Estructura organizada del proyecto.
- CRUD funcionales con datos de prueba.
- Interfaz gráfica con JavaFX.
- RF-019: Generador de reportes (PDF/CSV) con Apache POI / PDFBox.
-
Creacionales:
Singleton: Gestión global de configuración o conexión.Factory Method: Creación flexible de transacciones.Builder: Creación manejable de los modelos y los DTO`s
-
Estructurales:
Facade: Validación de acceso (usuario/admin).Flyweight: Optimización de imágenes de perfil.Decorator: Funcionalidad adicional como cuentas aseguradas.
-
Comportamiento:
Observer: Notificación de cambios en cuentas.Command: Manejo de acciones como transacciones.Strategy: Estrategias de categorización de transacciones.
/src/main/java/co.edu.uniquindio.virtual_wallet
├── command/
├── controller/
├── decorate/
├── exceptions/
├── factory/
├── mapping/
├── dto/
├── mapper/
├── models/
├── builder/
├── enums
├── service/
├── strategy/
├── utils/
├── facade/
├── viewController/
└── App.java
├
/resources/
├── images/
├── view/
| Autor |
|---|
| @Nicolas C.S |


