Skip to content

Invoicing Application

Full-stack invoicing platform with .NET backend, Angular frontend, AI-powered queries, and PDF export.

2024.NET, C#, Angular, TypeScript, Supabase

Problem

The client needed a comprehensive invoicing tool that handles the full lifecycle, from creating invoices and managing clients to exporting PDFs, sending emails, and tracking payment status, with AI-powered querying for quick data access.

Constraints

  • PDF output must match professional invoice formatting standards
  • Support for multiple currencies and tax configurations
  • AI query integration must be fast and produce accurate results
  • Email delivery with reliable delivery via SendGrid
  • JWT-based authentication for admin access

Key Decisions

  1. .NET + Angular over full JavaScript stack

    The project requirements included strong typing, enterprise patterns, and reliable PDF generation.

    Chose .NET 7 for robust backend with C# type safety, and Angular for structured frontend architecture with TypeScript.

    Trade-off: Higher complexity than a Node.js/React stack, but stronger typing guarantees and better fit for business logic patterns.
  2. OpenAI for natural language invoice queries

    Users wanted to query invoice data without learning SQL or complex filter UIs.

    Integrated OpenAI to parse natural language questions and convert them to database queries against the invoice data.

    Trade-off: Added API cost and latency for queries, but dramatically improved data accessibility for non-technical users.
  3. Supabase PostgreSQL over self-hosted database

    Needed managed PostgreSQL with connection pooling and easy setup.

    Used Supabase for managed PostgreSQL with session pooler, reducing infrastructure management overhead.

    Trade-off: Vendor dependency and free tier limits, but zero database administration and built-in connection pooling.
Timeline
2024
Stack
.NET, C#, Angular, TypeScript, Supabase, PostgreSQL, OpenAI, SendGrid