INTECH Invoice is a simple PDF invoice generation application. This is a console program written in C# using NET 7 framework with minimal dependencies. The app is fully dockerized to be used in both development and production environments. It includes unit, integration (mostly database-related) and end-to-end tests written using NUnit testing framework.
- All monetary unit input and output values are assumed to be in euros.
- Invoice numbers have the format of yyyyMMddHHmmss where each letter corresponds to the current year, month, day, hours, minutes and seconds respectively.
- Immutability
- No static methods
- No DTOs
- No ORM
- No
nulls - No getters and setters
- No public constants
- No controllers (and MVC)
- Unit, integration and end-to-end tests
- Standard VAT rate is 20% by default. It can be changed using
STANDARD_VAT_RATEenvironment variable. - Time zone affects timestamps that constitute invoice numbers. It is configured as a
case-insensitive string via
TIME_ZONEenvironment variable. For example,Europe/Munich,Europe/Moscoware valid values. Local (system) time zone is used by default. More information. - Date and money format is specified in RFC 4646 format via the
CULTUREenvironment variable. Example:en-US,de-DE. System locale is used by default. More information