Skip to content

MendietaGarciaAlejandro/MisFinanzasNET

Repository files navigation

Personal Finance Tracker

Pequeña app WinForms para gestionar ingresos y gastos, con gráficos e informes.

? Estado del Proyecto

Fase 1 completada: Estructura base, modelos, BD y servicios listos para usar.

Features Actuales

  • ? CRUD de transacciones, categorías y cuentas vía Repositories
  • ? Base de datos SQLite + Entity Framework Core
  • ? Export/Import CSV
  • ? Autenticación local mediante PIN (hashed PBKDF2)
  • ? Backup/Restore de BD
  • ? MainForm con DataGridView de transacciones

Tech Stack

  • .NET 10 + WinForms
  • SQLite + Entity Framework Core
  • OxyPlot (gráficos - próximo)
  • PBKDF2 (seguridad PIN)

Estructura

PersonalFinanceTracker/
??? Models/              (Transaction, Category, Account)
??? Data/                (EF Core, Repositories)
??? Services/            (Auth, Export, Import, Backup)
??? MainForm.cs          (UI WinForms)
??? Program.cs           (Inicialización)

Instalación y Uso

cd PersonalFinanceTracker
dotnet restore
dotnet build
dotnet run

Base de Datos

  • Ubicación: %LocalAppData%\PersonalFinance\app.db
  • Se crea automáticamente en la primera ejecución
  • Incluye seed data (categorías y cuenta por defecto)

Ejemplos de Código

// Cargar transacciones
var repo = new TransactionRepository(dbPath);
var transactions = await repo.GetByDateRangeAsync(
    new DateTime(2025, 1, 1), 
    new DateTime(2025, 1, 31)
);

// Exportar a CSV
var csvService = new CsvExportService();
await csvService.ExportTransactionsToCsvAsync(transactions, "export.csv");

// Autenticación PIN
var authService = new AuthService();
var (hash, salt) = authService.CreateHash("1234");
bool isValid = authService.VerifyPin("1234", hash, salt);

Ver USAGE_EXAMPLES.md para más ejemplos.

Roadmap

  • Formulario de edición de transacciones (modal)
  • Gestor de categorías UI
  • Gestor de cuentas UI
  • ReportsForm con gráficos OxyPlot
  • Export PDF (iText)
  • Tests unitarios
  • CI/CD (GitHub Actions)
  • Tema oscuro/claro
  • Multiidioma

Archivos de Documentación

  • STRUCTURE.md - Descripción detallada de la estructura
  • USAGE_EXAMPLES.md - Ejemplos de uso de todos los servicios
  • docs/db_init.sql - Schema SQL (referencia)
  • docs/sample_data.csv - Datos de ejemplo para import

Contribuir

  1. Fork el repo
  2. Crea una rama (git checkout -b feature/nueva-feature)
  3. Commit tus cambios
  4. Push y abre Pull Request

Licencia

MIT

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages