Project index
ToolpublicCLI Utilities & Point-of-Sale

Production-grade C++17 POS receipt & persistence engine

Customer Slip Generator (CLI)

Customer Slip Generator is a production-quality command-line application engineered in modern C++17 with CMake. Designed for retail checkouts and point-of-sale environments, it captures customer contact details, itemized totals, and percentage discounts with strict input validation. The tool implements atomic multi-format data persistence (writing concurrently to CSV and JSONL without risk of data corruption), case-insensitive substring searching (--view <name>), pretty-printed JSON exports (--export-json), and cross-platform CMake build automation backed by a comprehensive CTest unit test suite.

Customer Slip Generator CLI session showing customer input prompts, generated product slip with price breakdown, and saved CSV/JSONL records.

Problem

Small storefronts and embedded point-of-sale systems often require fast, lightweight, and dependency-free transaction logging that guarantees durable file writes without the overhead of heavy database servers.

Solution

A zero-dependency, compiled C++17 CLI providing instant terminal receipt rendering, thread-safe atomic data persistence to both CSV and JSONL, search filtering, and JSON export utilities.

Outcome

A dependable, portable POS transaction utility demonstrating modern C++17 software design, atomic file persistence patterns, CMake cross-platform builds, and automated unit testing.

Standout Features

  • Modern C++17 architecture with clean separation of input parsing, business math, and persistence
  • Atomic multi-format storage writing transaction slips to CSV and JSONL simultaneously
  • Case-insensitive search filter (--view <name>) and structured JSON export (--export-json)
  • Comprehensive CTest test suite validating discount math, edge cases, and file serialization

Stack & Signals

  • C++17
  • CMake
  • CTest
  • Ninja / Make
  • GCC / Clang / MSVC
  • GitHub Actions CI

Canonical destination

github.com/SagarBiswas-MultiHAT/CustomerSlip-CLI

View on GitHub