{"id":20276479,"url":"https://github.com/designengineered/py-invoice-gen","last_synced_at":"2025-11-30T23:09:25.983Z","repository":{"id":260684666,"uuid":"882061582","full_name":"designengineered/py-invoice-gen","owner":"designengineered","description":"A command-line tool that generates professional HTML invoices through an interactive interface. Supports multiple tasks, custom rates, and configurable company branding. Generated invoices can be easily converted to PDF using browser printing. Built in Python.","archived":false,"fork":false,"pushed_at":"2024-11-01T19:58:21.000Z","size":7,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-14T06:43:46.942Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/designengineered.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-11-01T19:50:39.000Z","updated_at":"2024-11-01T19:56:40.000Z","dependencies_parsed_at":"2024-11-01T20:28:40.244Z","dependency_job_id":"e7a7a926-84df-4b73-90dd-4f63a375f11a","html_url":"https://github.com/designengineered/py-invoice-gen","commit_stats":null,"previous_names":["designengineered/py-invoice-gen"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/designengineered%2Fpy-invoice-gen","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/designengineered%2Fpy-invoice-gen/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/designengineered%2Fpy-invoice-gen/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/designengineered%2Fpy-invoice-gen/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/designengineered","download_url":"https://codeload.github.com/designengineered/py-invoice-gen/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241768287,"owners_count":20017116,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-14T13:14:06.338Z","updated_at":"2025-11-30T23:09:20.952Z","avatar_url":"https://github.com/designengineered.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Invoice Generator CLI\n\nA simple command-line tool to generate professional HTML invoices that can be easily converted to PDF.\n\n## Features\n\n- Interactive CLI interface for entering invoice details\n- Support for multiple tasks per invoice\n- Configurable company details and branding\n- Custom hourly rates (fixed or variable per task)\n- Professional HTML output with print-optimized styling\n- Easy conversion to PDF using browser print function\n\n## Setup\n\n1. Ensure you have Python installed on your system\n2. Clone this repository\n3. Install dependencies:\n   ```bash\n   pip install -r requirements.txt\n   ```\n4. Create necessary directories (will be created automatically on first run):\n   - `assets/` - for storing logo files\n   - `invoices/` - for generated invoice files\n\n## Configuration\n\nThe tool uses a `config.json` file for basic settings. You can create or modify it with the following structure:\n\n```json\n{\n    \"company\": {\n        \"name\": \"Your Company Name\",\n        \"address\": \"123 Main St, City, State, ZIP\",\n        \"phone\": \"555-1234\",\n        \"email\": \"info@yourcompany.com\"\n    },\n    \"tasks\": [\n        {\n            \"name\": \"Task 1\",\n            \"rate\": 50\n        },\n        {\n            \"name\": \"Task 2\",\n            \"rate\": 60\n        }\n    ]\n}\n```\n\n### Configuration Options:\n- `company`: Your business details\n  - `name`: Company name that appears on invoices\n  - `address`: Full company address\n  - `phone`: Contact phone number\n  - `email`: Contact email address\n- `tasks`: Predefined list of tasks with default rates\n  - `name`: Task name/description\n  - `rate`: Default hourly rate for this task type\n\nIf no config file exists, the tool will create one with default values.\n\n## Using the CLI\n\n### Starting the Tool\n```bash\npython cli.py\n```\n\n### Interactive Prompts\n\n1. **Client Information**\n   ```\n   Enter client/organization name: [Client Name]\n   ```\n\n2. **Task Selection**\n   ```\n   Select task type or enter custom task:\n   1. Task 1 ($50/hr)\n   2. Task 2 ($60/hr)\n   3. Custom task\n   ```\n\n3. **Task Details**\n   ```\n   Enter task date (YYYY-MM-DD): [Date]\n   Enter hours spent: [Hours]\n   ```\n\n4. **Adding More Tasks**\n   ```\n   Add another task? (y/n): [y/n]\n   ```\n\n### Example Session\n```bash\n$ python cli.py\nEnter client/organization name: Acme Corp\nSelect task type:\n1. Task 1 ($50/hr)\n2. Task 2 ($60/hr)\n3. Custom task\nChoice: 1\nEnter task date (YYYY-MM-DD): 2024-03-15\nEnter hours spent: 8\nAdd another task? (y/n): n\n```\n\n### Output\nThe tool will generate an HTML invoice in the `generated-invoices` directory. The filename will include the client name and date.\n\n## Converting to PDF\n\n1. Open the generated HTML file in your browser\n2. Press `Ctrl+P` (or `Cmd+P` on Mac)\n3. Select \"Save as PDF\" in the print dialog\n4. Click \"Save\"\n\n## Tips\n\n- Dates must be in YYYY-MM-DD format\n- You can press Ctrl+C at any time to cancel invoice generation\n- The generated HTML is optimized for A4 paper size\n- All monetary values are in USD","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdesignengineered%2Fpy-invoice-gen","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdesignengineered%2Fpy-invoice-gen","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdesignengineered%2Fpy-invoice-gen/lists"}