Customer Slip Generator is a small, production-quality C++17 CLI that captures customer details, calculates totals, prints a clean slip, and persists records to CSV and JSONL with atomic writes for safe, durable storage.
- CMake 3.16+
- C++17 compiler (GCC 9+, Clang 10+, or MSVC 2019+)
cmake -S . -B build -D CMAKE_BUILD_TYPE=Release
cmake --build buildcmake -S . -B build -G Ninja -D CMAKE_BUILD_TYPE=Release
cmake --build build./build/customer_slip./build/customer_slip --view "ada"./build/customer_slip --export-json$ ./build/customer_slip
===== Enter Customer Details =====
Name: Sagar Biswas
Phone: +8801727371077
Address: XYZ Motijheel, Dhaka - 1000
Price: 120.50
Discount (%): 10
===== Product Slip =====
Name: Sagar Biswas
Phone: +8801727371077
Address: XYZ Motijheel, Dhaka - 1000
Price: $120.50
Discount: 10.00%
Total: $108.45
Slip saved to data/slips.csv and data/slips.jsonl.
name,phone,address,price,discount,total,timestamp
Ada Lovelace,+1-555-0100,"42 Analytical Engine Way, London",120.50,10.00,108.45,2026-02-01T12:34:56Z
{"name":"Ada Lovelace","phone":"+1-555-0100","address":"42 Analytical Engine Way, London","price":120.50,"discount":10.00,"total":108.45,"timestamp":"2026-02-01T12:34:56Z"}
cmake -S . -B build -D CMAKE_BUILD_TYPE=Release
cmake --build build
ctest --test-dir build --output-on-failureA green test run indicates core formatting and parsing logic is correct.
See CONTRIBUTING.md for coding style, branching, and PR checklist.
See CHANGELOG.md for release notes and planned enhancements.