Skip to content
This repository has been archived by the owner on Jun 16, 2024. It is now read-only.

Tagirijus/freelance

Repository files navigation

Archived

ATTENTION: Since 2024-06-16 I decided to archive this project, due to compability and dependency problems or so ... also due to bad coding etc. While I archive this repo I start a new project, though. Feel free to check out plainvoice here on github!

Description

A programm for managing clients, projects and connected offers and invoices.

Example workflow

asciicast

Example offer output

example offer

In detail

The programm is meant to help self-employed freelancers with their project management. You can have a list of clients with metadata, connected projects to the clients with metadata and also offers and invoices connected to the projects. The offer module can have entries, which will calculate prices automatically - the invoice module is similar. In the end you can even export offers and invoices to open office format.

The frontend is made with my tweaked version of npyscreen.

Installation

To be honest: a bit helpless here. I have installed my tweaked version of npyscreen in the system. I did it with this command in the terminal:

pip3 install -U git+https://github.com/Tagirijus/npyscreen@NotifyInput

My freelance script is in any folder, which I start with python3 run.py.

This is probably totally noob-alike. Maybe somebody is going to improve it some day?

Usage

Start the programm and open the menu with Ctrl+X. Then you have a help option for nearly every form of the progamm, which should help you.

Client database converter

general/convert_clients.py is a simple command line programm to convert your old client database to the Freelance format and vice versa. Start the programm with -h or --help to see how it works.

Important changes

  • Since commit 4b0b9d2bf4df4859ff7d9fd39dab600625bda3ae from 2017-06-02 the database has changed. I changed the variable amount to quantity due to proper captioning in an invoice. To update the database I wrote a simple script: amount_to_quantity.sh. Run it in your database directory (only there to not destroy other data of your system!) to let the script replace every amount with quantity automatically. You only have to run it, if you had a database made with the program before the mentioned commit on the mentioned date. Otherwise you'Re fine to use the programm like it is!

Known issues

Apparently the ODT export with the module secretary uses another Python module called Jinja2. Since version 3 of the latter module the ODT export does not work anymore. The ugly workaround is to downgrade to an older version of Jinja2: pip3 install Jinja2==2.10. This did the trick for me.

Also the programm only works with python3.6 as it seems ...

To do

  • Make Freelance work faster. Especially the replacer() function slows the programm down very much.