Giter Club home page Giter Club logo

timeclicker's Introduction

Timeclicker

CI CodeQL Deploy to Server TypeScript

Timeclicker is a tool to log how many hours are used on which project.

Interface

Timeclicker has a WebUI with German and English language support for entering your hours. Screenshot of the UI It also has a so called "orga" view for filtering and listing hours of all users. This list can also be downloaded (or accessed via the API) for further processing, e. g. automatic invoice creation.

Integration

Tasks

The tasks that the users can work on are pulled from a configurable endpoint. The following format is expected:

[
  {
    "id": "someId",
    "title": "Work on documentation",
    "note": false
  },
  {
    "id": "anotherID",
    "title": "Prepare talk",
    "note": false
  },
  {
    "id": "thisIdIsUnique",
    "title": "Meetings",
    "note": true
  }
]
  • id: A unique ID
  • title: The tasks title
  • note: Is it mandatory for a user to specify a note? Useful for more broad tasks to let the user specify, what they did.

Users

For user authentication and management this projects connects to Keycloak.

Setup

In both directories client and server copy the file .env.template to .env and configure the settings to your wishes. DB_PORT and DB_HOST can be omitted for the docker variant.

Docker

You can use the docker-compose file to start the Timeclicker and a database by running:

docker compose --env-file server/.env up

Manual

yarn install
yarn run build
cd server
node dist/src/index.js

Other relevant information

Create a link that opens the activity editor with a task already selected

The link should have the following path:

/?action=createTask&taskID=yourID

e.g.: https://clicker.educorvi.de/?action=createTask&taskID=yourID

timeclicker's People

Contributors

dependabot[bot] avatar educorvi-dev avatar github-actions[bot] avatar neferin12 avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

timeclicker's Issues

Filter own tasks in editor

Add a checkbox under the task selection in the editor that is enabled by default and allows to only show the tasks that the user is assigned to.

Synchronize customer and assigned users for task

For every task synchronize the additional fields customer and assignedUsers.

Example:

[
  {
    "id": "someId",
    "title": "someTitle",
    "note": false,
    "customer": "someCustomer",
    "assignedUsers": ["someUser", "anotherUser"]
  }
]

customer can be an arbitrary string that will be shown to the user.
The strings in assignedUsers need to be the content of the sub claim in the oicd token.

ToDos:

  • Implement in TimeClicker backend
  • @kraeks Change Kanban Board accordingly

Internationalisation

  • Replace all strings with call to i18n
  • add English translation
  • localize Dates
  • localize durations

Task refresh endpoint

Provide an endpoint that, when called with an preshared secret, starts synchronizing the tasks from the task provider.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.