invoiced

command module
v0.0.0-...-a449dc4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 7, 2023 License: BSD-2-Clause Imports: 16 Imported by: 0

README

Buy me a coffee

InvoiceD

Simple hour registration + invoice generator.

What makes us better than the competition (non-technical):

  • Audit trail, every change is recorded and easily revertable!
  • Always available, no internet? no problem!! The whole system runs from your own PC (if you want)
  • Searching for an old invoice? We got a powersearch, so finding it should be a breeze!
  • We're FAST, instantly loading pages :D
  • Completely free! (But if you pay 1EUR/month we'll give you backups)
  • Quick keys, you don't need to use your mouse all the time :)

What makes us better than the competition (technical):

  • we save all userdata as TOML-files onto the filesystem (human readable and possibly readable after corruption)
  • we commit changes to a local Git-repository (free version control of precious data with an audit-trail of changes)
  • we push/pull with remote GIT nodes on change (distributed accounting/easy backups)
  • we index everything (Bleve) so we got a power search!
  • we're good looking
  • we're FAST (average page loading time of 400ms!)
  • we're opensource (sourcecode is free, adjustable and we like contributions back)

Technical background

  • The backend is Golang/Bleve/Git
  • The frontend is ReactJS/TypeScript/Brunch (static-src)

1] contrib/desktop( invoiced ) 2] static

1] contrib/desktop Implements the desktop specific stuff and runs the invoice-daemon into a sub-process

2] static Is offered by invoiced and contains all HTML+CSS+JS that uses the invoiced API to build it's UI.

How to build

Frontend

# Install NodeJS
# Install yarn (better npm)
cd static-src
yarn install
npm run dev

Backend

# Install go
go get github.com/mpdroog/invoiced
cd $GOPATH/src/github.com/mpdroog/invoiced
go build

Installing

# First create some keys
cd contrib/gen
$ go build && ./gen
Enter Password: <XXX>
entities.toml input
IV:   &d13dfa0685c88dd2df7a4afb4359ed8
Salt: 9c7cd736769046bd6779599e71785f65
Hash: 8476a5883163ada1ebfb80257a2303ec6167059a6329e212b561f37004009c5f
cd -

# Init db (~ is your homedir)
mkdir ~/billingdb
cd ~/billingdb
git clone https://github.com/mpdroog/acct-example .
vi entities.toml
>>
IV="PASTE_IV_HERE"
Version=1

[company.name]
Name="YOUR_COMPANY"
COC="YOUR_Chamber_Of_Commerce_Number"
VAT="YOUR_VAT_NUMBER"
IBAN="YOUR_IBAN_NUMBER"
BIC="YOUR_BANK_BIC"
Salt="PASTE_SALT_HERE"

[[user]]
Email="you@yourcompany.com"
Hash="PASTE_HASH_HERE"
Company=["name"]
Name="YourName"
Address1="Street houseno"
Address2="Postal City"
<<

git add .
git commit -m "Update company/auth details"

cd -
vi config.toml
>>
[queues.support]
User = "myemail@gmail.com"
Pass = "supersecret"
Host = "smtp.gmail.com"
Port = 465
From = "myemail@gmail.com"
FromReply = "myemail@gmail.com"
Display = "MyCompany"
Subject = ""
BCC = ["myemail@gmail.com"]
>>

./invoiced -v -d ~/billingdb
open "http://localhost:9999"

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
contrib
gen
hack
hack is a small tool to convert invoiced boltdb into the toml-text structure go build && rm -rf ./db && ./hack
hack is a small tool to convert invoiced boltdb into the toml-text structure go build && rm -rf ./db && ./hack
reindex
reindex throws away the current index and builds a new one
reindex throws away the current index and builds a new one
Package db implements a very simple filesystem abstraction to save all as toml and instruct Git to commit/push.
Package db implements a very simple filesystem abstraction to save all as toml and instruct Git to commit/push.
UBL XML Invoice https://www.jortt.nl/online-boekhouden/ubl-factuur/
UBL XML Invoice https://www.jortt.nl/online-boekhouden/ubl-factuur/
camt053
camt053 implements low-level XML parsing of the banktransaction file.
camt053 implements low-level XML parsing of the banktransaction file.
Package rules contains all domain specific validators for this project.
Package rules contains all domain specific validators for this project.
package writer abstracts the used encoding lib to send data back to the client.
package writer abstracts the used encoding lib to send data back to the client.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL