WorkFerret: Difference between revisions

From Woozle Writes Code
Jump to navigation Jump to search
(status update)
(content from htyp)
 
(5 intermediate revisions by the same user not shown)
Line 1: Line 1:
<hide>
__NOTOC__
[[page type::article]]
[[File:2019-12-17.screenshot.Greenmine.Project 2 - Sage Swift.redacted.png|thumb|Screenshot of WorkFerret's project page for an example client]]
[[thing type::software]]
[[WorkFerret]] (WF) is a web application I use for tracking billable hours, generating invoices, and recording payments against outstanding balances. It is written as a plug-in module running under [[Ferreteria]], my web application framework currently under development.
[[license::open source]]
 
[[category:software]]
The screenshot at right shows the main menu on the left (which includes other applications besides WorkFerret), with the project information taking up the rest of the page (from top to bottom):
</hide>
* project ID, name, settings
==About==
* current un-invoiced work sessions
[[WorkFerret]] (WF) is an application for tracking billable work done for different clients, generating invoices, and recording payments. It is essentially a special-purpose [[accounts receivable]].
* existing charges (invoices) and payments, and the final balance due
==History==
* past invoices
WF was originally written in [[MS Access 97]], and ported to PHP as a [[MediaWiki extension]] sometime around 2005-2010. The code was first posted on [[GitHub]] in May 2015 (see [[#Links]]). As of 2017 I am porting it as a [[Ferreteria]] drop-in module.
 
===Features===
Each work-session can track date, starting/finishing time, hourly rate, and/or flat dollar amount. The user enters starting and stopping times and the rate being charged, and WorkFerret will automatically convert to dollars. (There is also a provision for flat dollar amounts, e.g. for fixed bids or billable purchases made for the client.)
 
Invoices are available in both HTML and {{l/wp|.odt}} format, using complex templates. The .odt format was especially tricky, as it actually consists of a collection of files that have been {{l/wp|gzip}}ped together -- but in a certain particular order, so you have to use the right options with the <code>gzip</code> command.
==Features==
* Ways of entering work done:
* Ways of entering work done:
** Stopwatch for timing a work session
** Stopwatch for timing a work session
Line 24: Line 27:
** keeps track of which sessions have been invoiced to prevent double-billing for a session
** keeps track of which sessions have been invoiced to prevent double-billing for a session
** automatically totals session costs, doing whatever math is needed
** automatically totals session costs, doing whatever math is needed
** formats as HTML table (copy/paste into word processor document with letterhead)
** formats as HTML table
** generates .odt document from template
===Future===
===Future===
* Generate complete invoice (currently requires existing document to use as a template, copy/paste data from browser into doc)
* Sync with payments in [[FinanceFerret]] (using a pre-designated category or equity account)
* Sync with payments in [[FinanceFerret]] (using a pre-designated category or equity account)
* More configurability of templates, e.g. default global template but specialized templates per client
==History==
WF was originally written in {{l/htyp|MS Access 97}}, and ported to PHP as a [[MediaWiki extension]] sometime around 2005-2010. The code was first posted on [[GitHub]] in May 2015 (see [[#Links]]). In 2017 I rewrote it as a [[Ferreteria]] drop-in module.
==Technical==
==Technical==
* [[/tables]]
* [[/tables]]
==Links==
==Links==
* [http://rm.vbz.net/projects/workferret project manager] ([http://bugs.hypertwins.org/projects/work-ferret old])
* '''Repository''': WorkFerret is now part of the '''[[Greenmine]]''' project
* [https://github.com/woozalia/WorkFerret GitHub repository]
* [http://rm.vbz.net/projects/workferret project on VBZ Redmine]
==Archive==
* [https://github.com/woozalia/WorkFerret GitHub: original MediaWiki version]

Latest revision as of 20:43, 1 May 2022

Screenshot of WorkFerret's project page for an example client

WorkFerret (WF) is a web application I use for tracking billable hours, generating invoices, and recording payments against outstanding balances. It is written as a plug-in module running under Ferreteria, my web application framework currently under development.

The screenshot at right shows the main menu on the left (which includes other applications besides WorkFerret), with the project information taking up the rest of the page (from top to bottom):

  • project ID, name, settings
  • current un-invoiced work sessions
  • existing charges (invoices) and payments, and the final balance due
  • past invoices

Each work-session can track date, starting/finishing time, hourly rate, and/or flat dollar amount. The user enters starting and stopping times and the rate being charged, and WorkFerret will automatically convert to dollars. (There is also a provision for flat dollar amounts, e.g. for fixed bids or billable purchases made for the client.)

Invoices are available in both HTML and .odt format, using complex templates. The .odt format was especially tricky, as it actually consists of a collection of files that have been gzipped together -- but in a certain particular order, so you have to use the right options with the gzip command.

Features

  • Ways of entering work done:
    • Stopwatch for timing a work session
    • Manually correct start/stop times
    • Manually enter adjustments to work session total (add or subtract)
      • e.g. to allow for distractions (minus), or forgetting to start the clock at first (plus)
    • Manually enter start or stop times
    • Manually enter total time in session
    • Manually enter flat amount to charge
  • Allows different hourly rates
    • Keeps track of which rates are used for which clients (with client-specific description)
    • Global rates also listed for all clients
  • Invoice generation
    • keeps track of which sessions have been invoiced to prevent double-billing for a session
    • automatically totals session costs, doing whatever math is needed
    • formats as HTML table
    • generates .odt document from template

Future

  • Sync with payments in FinanceFerret (using a pre-designated category or equity account)
  • More configurability of templates, e.g. default global template but specialized templates per client

History

WF was originally written in MS Access 97, and ported to PHP as a MediaWiki extension sometime around 2005-2010. The code was first posted on GitHub in May 2015 (see #Links). In 2017 I rewrote it as a Ferreteria drop-in module.

Technical

Links

Archive