Budget Case Management System
A desktop system for end-to-end tracking of school budget audit cases.
Problem
As a freelance developer, I was hired by the accounting firm A&M Consultores to replace manual tracking (loose spreadsheets and email follow-ups) of the full lifecycle of a school budget audit case: intake, assignment to a staff member, review, reassignment when someone is out, final delivery, and generating vouchers and reports — with no centralized visibility into each case's status or owner.
Solution
A C# / WinForms desktop application, built on a layered architecture (CapaPresentacion → CapaNegocios → CapaDatos → CapaEntidades, plus CapaUtilidades for cross-cutting concerns) on top of Entity Framework and SQL Server. It covers the full case lifecycle — cases pending delivery, delivered, and reviewed, reassignment between staff members, vouchers and notifications — with a dashboard showing indicators per staff member and per year, an audit module that traces every action, and report exports to Excel (EPPlus) and PDF (iTextSharp / PDFsharp). Role-based login, plus parameter administration (users, institutions) with support for restoring deactivated records. Distributed to end users via ClickOnce (installer with automatic updates).
Stack & Architecture
- C# / WinForms on .NET Framework 4.7.2, with the UI built on Guna.UI2 controls.
- Classic layered architecture:
CapaPresentacion(forms),CapaNegocios(business rules per entity: cases, vouchers, reassignment, auditing, notifications...),CapaDatos(data access via Entity Framework),CapaEntidades(shared models/DTOs), andCapaUtilidades. - SQL Server as the database engine, with Entity Framework 6 (database-first model) and stored procedures for reporting queries.
- Report generation: EPPlus for Excel and iTextSharp / PDFsharp for PDF, built from audit and case-delivery data.
- Core modules: case management (pending / delivered / reviewed), case reassignment between staff members, vouchers, notifications, an indicator dashboard, auditing, and parameter management (users, institutions).
- Deployed to end users via ClickOnce (
setup.exe+.applicationmanifest), with automatic version updates.
Challenges
Modeling a state flow that faithfully reflected the accounting firm's real process (intake, assignment, review, reassignment for absences, delivery) without losing traceability of who did what and when — solved with a dedicated audit module that logs every relevant transition. Another challenge was keeping strict layer separation in a WinForms project, where it's easy to end up coupling business logic directly to the forms; this was solved by centralizing rules in CapaNegocios and keeping the presentation layer focused solely on user interaction.