Skip to content

GregJohnStewart/task-timekeeper

Repository files navigation

task-timekeeper

All-in one tool for keeping track of time spent on tasks

License Build Status codecov Maintainability

The base code behind all the projects is located in the BaseCode project.

Implementations can be found in DesktopApp and WebServer

How it works

The Manager works off of several objects:

  • task - A task you spend time on.
    • Made up of the name of the task and any number of custom attributes.
    • Example: Project name, with charge code as an attribute
  • Timespan - A span of time spent on a task
    • Made up of the task being worked, and a start/end datetime
  • Work period - A period of time in which work takes place.
    • Made up of timespans, and can have any number of custom attributes associated with it.
    • timespans are added to a period to describe how long certain tasks were worked for that period
    • Example: a workday where I worked on a project from 1:00 to 2:00

Known Issues/ TODOs

This is a list of known issues, if any.

  • Unify new logo copying, make copy to on image script run rather than pull at Gradle build

Webserver

  • The webserver is very much in development. If you see test errors in the project, just ignore them. Tentatively waiting for GraalVm to support Java11 to continue.

Desktop App

The desktop app is located here. You can run it either as a cli or gui, and lets you jump into using the tool.

Build/ Development notes

Commit-hooks

This project uses Pre-commit hooks to make sure things are nice when committing.

Installation/ overview

Github

Versioning

The versioning in this project follows the following loose guidelines:

<major>.<minor>.<micro>.<build>

Major

This version describes a large set of changes; this is bumped when backwards incompatible changes are made and when enough changes warrants it

Minor

This version describes minor but significant changes, such as in small behaviors and improvement tweaks

Micro

This version describes tiny changes, such as tweaks in output wording, spelling, or format. These changes would not affect behavior (at least significantly)

Build

This version is automatically incremented at build time, simply a counter for the number of builds.

Dependency Checking

We have integrated OWASP's dependency check into Gradle, and can generate reports on the dependencies used by the projects. To generate the reports, you can run:

./gradlew dependencyCheckAggregate

The reports are placed in each projects' build/security-report repository.