maxtimbo / invoice-cli

A project to help me learn Rust

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Invoice-CLI Work in Progress

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.

Roadmap

  • 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
  • ?

Refactor Roadmap

  • Fix how the CRUD system is implemented
  • Remove the CachedStmt struct(?) and [x] all the traits associated with it
  • Cleaner code...

Maybe Features?

  • Automatically send generated pdf to company email and client email
  • Check if Invoice has been paid
  • Send reminders as due date closes

Installation

  1. 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
  1. Build with cargo:
$ cargo build

Or just run:

$ cargo run

Brief Usage

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.

About

A project to help me learn Rust

License:GNU General Public License v3.0


Languages

Language:Rust 89.5%Language:HTML 10.5%