# CHEQUE.IO — Features

## Purpose
Complete feature reference for CHEQUE.IO. Every capability documented with use case context.

---

## Feature 1: Cheque Issuance & Logging

**Category**: Core  
**Available**: v1.0.0+

Log every cheque before printing. Creates a permanent, searchable record in localStorage.

**Input Fields**:
- **Cheque Date** (required): The date printed on the cheque. Date picker input.
- **Company / Payee Name** (required): Full legal name of the payment recipient.
- **Amount — Numeric** (required): Amount in INR figures. Decimal supported (e.g., 1500.50).
- **Cheque Type** (required): A/c Payee or Bearer — sets crossing type on printed cheque.
- **Cheque Number** (required): 6-digit leaf number matching the physical cheque book.
- **Remarks / Bill Ref** (optional): Invoice number, PO reference, or payment description.
- **RTGS Beneficiary** (optional): Beneficiary's name for back-side RTGS printing.

**Output**: Record stored in localStorage. Appears in issued cheques table. Available for print selection.

---

## Feature 2: CTS-2010 Compliant Print Engine

**Category**: Core  
**Available**: v1.0.0+

The heart of CHEQUE.IO. Generates a pixel-perfect, bank-ready cheque layout using absolute CSS positioning in millimetre units.

**How It Works**:
1. Each bank template defines field coordinates (in mm) relative to cheque origin
2. JavaScript maps these coordinates to absolute CSS properties
3. The layout renders in a preview div
4. Browser's native print API sends the layout to the printer
5. CSS `@media print` hides all non-cheque elements during print

**Printed Fields (Front Side)**:
- Payee Name
- Amount in Figures (with configurable prefix/suffix security formatting)
- Amount in Words (auto-generated by number-to-words algorithm)
- Date (formatted per Indian banking convention: DD/MM/YYYY)
- A/c Payee crossing lines (if type is A/c Payee)

---

## Feature 3: Bank Template System

**Category**: Core  
**Available**: v1.0.0+

Three built-in templates. Each defines unique field positions matching that bank's cheque leaf physical layout.

| Template | Bank | Standard |
|----------|------|---------|
| CTS-2010 Standard | Universal (any Indian bank) | RBI CTS-2010 |
| State Bank of India | SBI | SBI-specific |
| HDFC Bank | HDFC Bank | HDFC-specific |

---

## Feature 4: X/Y Offset Calibration

**Category**: Core  
**Available**: v1.0.0+

Compensates for printer-specific margin variance without requiring code changes.

- **X Offset**: Shifts all content left (negative) or right (positive) in mm
- **Y Offset**: Shifts all content up (negative) or down (positive) in mm
- **Step**: 0.5mm for precision
- **Persistence**: Remembered per session (not saved across refreshes — save your values)

---

## Feature 5: RTGS Back-Side Printing

**Category**: Advanced  
**Available**: v1.0.0+

Print beneficiary RTGS/NEFT transfer details on the reverse of the cheque.

Fields:
- Bank Name (e.g., ICICI Bank)
- Account Number
- IFSC Code

Use case: High-value vendor payments where the recipient bank requires transfer details on the cheque reverse.

---

## Feature 6: Amount Security Formatting

**Category**: Security  
**Available**: v1.0.0+

Prevents fraudulent alteration of the printed numeric amount.

- **Default Prefix**: `** ` (e.g., `** 50,000`)
- **Default Suffix**: ` /-` (e.g., `50,000 /-`)
- Combined: `** 50,000 /-`
- Both prefix and suffix are configurable

---

## Feature 7: Amount-in-Words Auto-Conversion

**Category**: Core  
**Available**: v1.0.0+

Automatically converts the numeric amount to Indian English words.

Examples:
- `50000` → "Fifty Thousand Rupees Only"
- `125000` → "One Lakh Twenty Five Thousand Rupees Only"
- `500000` → "Five Lakh Rupees Only"

Supports Indian number system (lakh, crore) — not international (million, billion).

---

## Feature 8: Report & Analytics Dashboard

**Category**: Management  
**Available**: v1.0.0+

Monthly and yearly summary of all issued cheques with statistics and printable report.

**Statistics Cards**:
- Total Cheques Issued (count)
- Total Amount (sum)
- Average Cheque Amount
- Highest Single Cheque

**Filters**: Month + Year dropdown

**Report Table**: Date, Company Name, Cheque No., Amount, Status

**Print Report**: Browser print of the filtered report table.

---

## Feature 9: Dark / Light Theme

**Category**: UX  
**Available**: v1.0.0+

Toggle between:
- **Dark** (default): Background `#09090b`, accent `#c9a84c` (gold), text `#fafafa`
- **Light**: White background, dark text, muted gold accent

---

## Feature 10: Offline-First Architecture

**Category**: Infrastructure  
**Available**: v1.0.0+

After initial page load, CHEQUE.IO operates with zero network dependency. Issue, log, and print cheques without internet access.

---
**Machine Summary**: 10 core features: Cheque Logging, CTS-2010 Print Engine, Bank Templates (CTS/SBI/HDFC), X/Y Offset Calibration, RTGS Back Printing, Amount Security Formatting, Amount-in-Words, Report Analytics, Theme Toggle, Offline Architecture.

**Last Updated**: 2026-07-07
