Skip to content

Task timer for projects, customer billing, personal analytics and future time estimates

Notifications You must be signed in to change notification settings

sachamasry/klepsidra-timer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Klepsidra

Time your activities to bill clients, and understand where your time goes.

Overview

Klepsidra is an activity timer for freelance service providers, agencies, developers, and others providing services quoted and billed in time taken. Use it to time activities, for internal use and analysis, and for client billings.

Setup & Installation

Install Elixir, clone this repository, then change into its directory.

To start your Phoenix server:

  • Run mix setup to install and setup dependencies
  • Start Phoenix endpoint with mix phx.server or inside IEx with iex -S mix phx.server

Now you can visit localhost:4000 from your browser.

Ready to run in production? Please check our deployment guides.

To do

MVP: Make application self-hosting

  • Review aggregate duration query and code, for refactoring opportunities, possible error conditions which need to be handled, code documentation and typing
  • Debugging
    • When starting and stopping timers, override internal 'patch' command, returning user to where they instigated the action (home page)
    • When starting an automated timer and billable has been selected, do not show the billing duration or time increment
  • UI improvements
    • Add number of timers tracked on 'today' view in home screen
    • When starting/stopping/adding/modifying timer on home screen, live update number of timers and total time tracked
    • Correct all entity view titles
    • Correct all entity button labels
    • Correct business partner titles and labels to 'Customers'
    • Update tag list sorting to case-insensitive alphabetical
    • Implement list sorting on entities: projects, business partners, activity types, etc.
  • Business partner should be visible and accessible even when billing is false
  • Provide a 'today' view
    • Open timers needing closing
    • Widen app width from max-w-2xl to full width
  • Provide reporting
    • Filter: by customer; tags; date range

Future

  • UI improvements
    • Select a UI component framework, to aid in the building of a modern web app
    • Improve on cryptic or incomplete UI error messages
    • Resize datetime, duration and duration unit controls to more efficiently use space
    • Start implementing colour palette
    • Improve presentation of currency fields; at present they use an input control of type 'number' which is unintuitive UX
  • Tagging UX improvements
    • Make it possible to drill into the tag from the live component
    • Provide ability to set new tag colour when creating freeform tag in live component
    • Document tag selector live component
    • Improve search functionality to perform fuzzy query directly in the database
    • Develop ability to cope with temporary data structures, before a timer has been created?
  • Look into default timestamps() fields; it appears that datetime stamps are in UTC, where local timezone may be preferable
    • Specifically for timestamps recorded for notes
  • Full-text search
    • Create a full-text tag search
    • Begin adding keyboard shortcuts for an improved user interface
    • Enable SQLite notes field full-text search
    • Start enabling full-text search on other relevant database fields
  • Reformat listing display to a more useful format, removing description field to a popup box or tooltip; change date display to more informative format
  • Change data defaults for duration to nil, and no duration time units until clocking out

One day

  • Break down and list all ultimate desiderata for an activity timer

Tests

  • Test on month-first locales
  • Test on 12-hour clock locales
  • Do all browsers return a 'T' delimited datetime-local stamp? Do both delimiters need to be handled? According to the standard, yes

Learn more

About

Task timer for projects, customer billing, personal analytics and future time estimates

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published