Report generator
A modular Kotlin library and CLI that turns database queries, CSV files or in-memory data into TXT, HTML, PDF or Markdown reports, with formats loaded as plugins.
- Layer
- Data
- Context
- Software Components course, RAF
- Status
- Complete
- Built with
- Kotlin, Gradle, SPI
- Plugin architecture. A reporting API defines the contract; each output format is a separate Gradle module discovered at runtime through Java’s Service Provider Interface.
- Formats. Plain text with fixed-width columns, HTML and PDF with styling, and Markdown.
- Calculations. A separate component computes SUM, AVG, COUNT, MIN and MAX, derived columns from arithmetic between columns, and conditional summaries.
- CLI. Lists the available format plugins, connects to a database or reads a CSV, and builds a report from command-line options.