A professional B2B system for managing invoices, cash flow, and contractors. Designed to comply with Polish accounting standards.
Invoice Manager is more than just a document generator. It solves real Cash Flow management problems for small service businesses (B2B).
The application addresses real-world business challenges:
- Data Integrity: What happens to an old invoice if the client changes their address? (Solution: Snapshotting).
- Financial Liquidity: Who is late with payments? How much was paid in advance? (Solution: KPI Dashboard and Split Payments).
- Legal Compliance: Does the invoice meet official requirements? (Solution: Validations and Humanizer).
I implemented the Snapshot pattern to "freeze" client data when an invoice is created.
- Updates to the
Clientstable do not affect historical invoices. - This guarantees data immutability for accounting purposes.
The system supports partial payments and down payments.
- Automatically calculates the
Remaining Amount. - Real-time status updates:
Draft→Pending→Paid. - Business logic prevents editing of invoices that have been paid or sent.
Generates legally binding PDF documents using the Rotativa library.
- Automatic "number to words" conversion (Humanizer).
- Dynamic mapping of VAT rates.
- Supports various units (
hours,km,pcs,set).
A command center for the business owner:
- KPIs: Real-time revenue from the last 30 days.
- Alerts: Overdue invoices highlighted in red.
- Quick Actions: One-click payment registration.
Backend:
- C# / .NET Framework
- ASP.NET MVC 5
- Entity Framework 6 (Code First)
- LINQ
Database:
- MS SQL Server
- Repository Pattern (Separation of logic from data access)
Frontend:
- Razor Views (
.cshtml) - Bootstrap 5 (Dark Mode Support)
- jQuery / AJAX (Modal handling)
- FontAwesome
Tools:
- Rotativa: Generating PDFs from HTML views.
- Humanizer: Logic for converting numbers to text.
- Git: Version control.
- Clone the repository:
git clone [https://github.com/TwojNick/InvoiceManager.git](https://github.com/TwojNick/InvoiceManager.git)
- Open the
.slnfile in Visual Studio 2022. - Update the
connectionStringinWeb.configto match your local SQL Server. - Run
Update-Databasein the Package Manager Console:Update-Database - Run the project (F5).
- Add unit tests (NUnit/xUnit).
- Migrate to .NET 8 / ASP.NET Core.
- Integrate with GUS API (fetch company data by Tax ID).
- Email sending (SMTP).
Kacper Kotecki 📧 kacperkotecki@protonmail.com 🔗 LinkedIn Profile