Pequeña app WinForms para gestionar ingresos y gastos, con gráficos e informes.
Fase 1 completada: Estructura base, modelos, BD y servicios listos para usar.
- ? 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
- .NET 10 + WinForms
- SQLite + Entity Framework Core
- OxyPlot (gráficos - próximo)
- PBKDF2 (seguridad PIN)
PersonalFinanceTracker/
??? Models/ (Transaction, Category, Account)
??? Data/ (EF Core, Repositories)
??? Services/ (Auth, Export, Import, Backup)
??? MainForm.cs (UI WinForms)
??? Program.cs (Inicialización)
cd PersonalFinanceTracker
dotnet restore
dotnet build
dotnet run- Ubicación:
%LocalAppData%\PersonalFinance\app.db - Se crea automáticamente en la primera ejecución
- Incluye seed data (categorías y cuenta por defecto)
// 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.
- 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
STRUCTURE.md- Descripción detallada de la estructuraUSAGE_EXAMPLES.md- Ejemplos de uso de todos los serviciosdocs/db_init.sql- Schema SQL (referencia)docs/sample_data.csv- Datos de ejemplo para import
- Fork el repo
- Crea una rama (
git checkout -b feature/nueva-feature) - Commit tus cambios
- Push y abre Pull Request
MIT