I wanted to learn how to write in Rust. I'm using this project to practice. I don't recommend you use this until this readme is more fleshed out as the project will likely be closer to completion. In the meantime, have a look at the src to view my progress.
- Basic CLI elements using clap
- Database generation
- Basic CRUD for SQlite using rusqlite
- More complex logic for generating invoices
- Create tables by inputting a json
- Figure out how to handle logo images for the company table
- Generate HTML using Tera
- Refine default.html
- Refactor how currency is handled
- Fix template editor
- Fix generate invoice notes editor
- Add item creation during invoice generation
- Add configuration settings
- Add automatic emails
- Generate PDF from HTML
- ?
- Fix how the CRUD system is implemented
- Remove the CachedStmt struct(?) and [x] all the traits associated with it
- Cleaner code...
- Automatically send generated pdf to company email and client email
- Check if Invoice has been paid
- Send reminders as due date closes
- Clone the repo and
cd
to the dir:
$ git clone https://github.com/maxtimbo/invoice-cli.git
$ cd invoice-cli
Note
Running this app will automatically create the following directory tree in ~/.local/share
~/.local/share/invoice-cli
├── imgs
├── invoice-cli.db
└── templates
└── default.html
- Build with cargo:
$ cargo build
Or just run:
$ cargo run
Check out the example.json
to see how a json file should be structured. Optional fields should be ommitted. You can create as many entities as you want with one json file.