Skip to content

Repository files navigation

BudgetMaster Logo

BudgetMaster 💰

Licencia: MIT

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.

✨ Características Principales

  • 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.

📸 Capturas de Pantalla

TODO:

Ejemplo: ![Captura 1](enlace_a_captura_1.png) ![Demo GIF](enlace_a_demo.gif)

🛠️ Tecnologías y Arquitectura

  • 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)

🏗️ Estructura del Proyecto

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 de BudgetMasterApplication.

🚀 Cómo Empezar

Prerrequisitos

  • Android Studio (Última versión estable recomendada)
  • Android SDK
  • Emulador o Dispositivo Android Físico

Instalación y Compilación

  1. Clona el repositorio:
    git clone https://github.com/Johnson1255/BudgetMaster.git 
    cd BudgetMaster
  2. Abre en Android Studio:
    • Inicia Android Studio.
    • Selecciona "Open an existing project".
    • Navega al directorio BudgetMaster clonado y ábrelo.
  3. 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.
  4. 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.

🗺️ Hoja de Ruta (Roadmap)

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.

🛡️ Seguridad

La seguridad de este proyecto es importante. Por favor, revisa nuestra Política de Seguridad para entender cómo reportar vulnerabilidades.

🤝 Contribuciones

¡Las contribuciones son bienvenidas! Si deseas contribuir, por favor sigue estos pasos:

  1. Haz un Fork del Proyecto
  2. Crea tu Rama de Característica (git checkout -b feature/AmazingFeature)
  3. Confirma tus Cambios (git commit -m 'Add some AmazingFeature')
  4. Empuja a la Rama (git push origin feature/AmazingFeature)
  5. 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.

📄 Licencia

Este proyecto está bajo la Licencia MIT - mira el archivo LICENSE para más detalles.

About

Aplicación de finanzas personales desarrollada en Kotlin para Android

Resources

Security policy

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages