BudgetMaster es una aplicación Android nativa diseñada para la gestión de finanzas personales de manera sencilla. Registra tus ingresos y gastos, categoriza transacciones y monitorea tu progreso hacia tus metas de ahorro.
- Seguimiento de Transacciones: Registra fácilmente ingresos y gastos.
- Categorización: Asigna categorías a las transacciones para un mejor análisis.
- Metas de Ahorro: Establece y sigue tus objetivos financieros.
- Reportes: Visualiza patrones de gasto (Planeado).
- Dashboard: Obtén una visión general rápida de tu estado financiero (Planeado).
- Offline First: Los datos se almacenan localmente usando la persistencia de Room.
TODO:
Ejemplo:


- Lenguaje: Kotlin
- UI Toolkit: Jetpack Compose
- Arquitectura: MVVM (Model-View-ViewModel)
- Persistencia de Datos: Room (Wrapper de SQLite)
- Navegación: Navigation Compose
- Gestión de Dependencias: Gradle con Catálogo de Versiones (
libs.versions.toml)
El proyecto sigue el patrón de arquitectura MVVM para una clara separación de responsabilidades, mejorando la testeabilidad y mantenibilidad.
data: Contiene modelos de datos (Transaction,Category,Goal), DAOs, base de datos Room (AppDatabase), patrón repositorio (BudgetRepository), y convertidores de datos.ui: Incluye pantallas de Jetpack Compose, ViewModels para cada pantalla, configuración de navegación (Screen.kt), componentes de UI (BottomNavigationBar), y definiciones de tema.di/app: Configuración básica de provisión de dependencias dentro deBudgetMasterApplication.
- Android Studio (Última versión estable recomendada)
- Android SDK
- Emulador o Dispositivo Android Físico
- Clona el repositorio:
git clone https://github.com/Johnson1255/BudgetMaster.git cd BudgetMaster - Abre en Android Studio:
- Inicia Android Studio.
- Selecciona "Open an existing project".
- Navega al directorio
BudgetMasterclonado y ábrelo.
- Sincroniza Gradle:
- Android Studio debería sincronizar automáticamente el proyecto con los archivos Gradle. Si no, ve a
File > Sync Project with Gradle Files.
- Android Studio debería sincronizar automáticamente el proyecto con los archivos Gradle. Si no, ve a
- Ejecuta la aplicación:
- Selecciona un emulador o conecta un dispositivo físico.
- Haz clic en el botón "Run" (icono de reproducción verde) en Android Studio.
Esto es lo que está planeado para el desarrollo futuro:
- Implementar Pantallas Centrales:
- Dashboard (Resúmenes, actividad reciente, progreso de metas)
- Gestión de Metas (Listar, Crear, Editar, Eliminar)
- Reportes (Gráficos de gastos por categoría)
- Gestión de Categorías
- Formulario Añadir/Editar Transacción
- Formulario Añadir/Editar Meta
- Conectar Navegación: Habilitar los flujos de navegación entre pantallas.
- Refinamiento de UI: Reemplazar placeholders, implementar gráficos, pulir formularios y estilos.
- Lógica de Negocio: Implementar operaciones CRUD en ViewModels, cálculos para reportes/dashboard.
- Pruebas (Testing): Añadir pruebas unitarias y de instrumentación completas.
- Opcional: Precargar categorías por defecto.
- Autenticación de Usuarios (Login/Registro):
- Permitir que múltiples usuarios utilicen la aplicación con datos separados.
- Consideración: Actualmente, la aplicación funciona de manera offline, almacenando todos los datos localmente en el dispositivo.
- Implementar pantallas de inicio de sesión y registro.
- Modificar la estructura de la base de datos (Room) para asociar todos los datos (transacciones, categorías, metas) a un
userId. - Asegurar el manejo adecuado de credenciales y datos sensibles.
- Opcional (Fase 2): Explorar la posibilidad de sincronización en la nube para los datos de usuario.
La seguridad de este proyecto es importante. Por favor, revisa nuestra Política de Seguridad para entender cómo reportar vulnerabilidades.
¡Las contribuciones son bienvenidas! Si deseas contribuir, por favor sigue estos pasos:
- Haz un Fork del Proyecto
- Crea tu Rama de Característica (
git checkout -b feature/AmazingFeature) - Confirma tus Cambios (
git commit -m 'Add some AmazingFeature') - Empuja a la Rama (
git push origin feature/AmazingFeature) - Abre una Pull Request
Por favor, asegúrate de que tu código se adhiera al estilo de codificación del proyecto e incluya pruebas donde sea aplicable.
Este proyecto está bajo la Licencia MIT - mira el archivo LICENSE para más detalles.
