Skip to content

A Redmine plugin for creating timer based time entries not unlike Toggl

License

Notifications You must be signed in to change notification settings

renuo/redmine_tracky

Repository files navigation

Redmine-Tracky

Improved time tracking for Redmine (tested using Redmine 5.1)

Prerequisites

Development Setup

git clone -b 5.1-stable https://github.com/redmine/redmine
git clone https://github.com/renuo/redmine_tracky redmine/plugins/redmine_tracky
cd redmine/plugins/redmine_tracky

bin/setup

Optional: Adjust the database file

Production Setup

git clone https://github.com/renuo/redmine_tracky plugins/redmine_tracky

RAILS_ENV=production rake redmine:plugins:redmine_tracky:install

Configuration

Administration => Roles & Permissions

Development

  • Run: rake run
  • Lint: rake lint
  • Test: rake test
  • Watch Assets: rake watch

Time Tracking Flow

stateDiagram-v2
    [*] --> CheckingSession : Start Request
    
    CheckingSession --> Conflict : Session Exists
    Conflict --> [*] : Return Conflict
    
    CheckingSession --> SessionCreation : No Active Session
    SessionCreation --> ValidatingSession : Create Session
    
    ValidatingSession --> IssueAssociation : Valid Session
    ValidatingSession --> Error : Invalid Session
    Error --> [*] : Return Unprocessable
    
    IssueAssociation --> ConnectorValidation : Issue Connector Init
    ConnectorValidation --> Error : Connector Invalid
    Error --> [*] : Return Unprocessable
    
    ConnectorValidation --> CheckingFinished : Connector Valid
    CheckingFinished --> Finalize : Session Finished
    CheckingFinished --> UpdateTimer : Session Active
    
    Finalize --> TimeEntryCreation : Mark Finished
    TimeEntryCreation --> Success : Create Time Entries
    Success --> [*] : Return Success
    
    UpdateTimer --> TimerUpdated : Update Session
    TimerUpdated --> Success : Valid Update
    TimerUpdated --> Error : Invalid Update
    Error --> [*] : Return Unprocessable
    
    destroy : Destroy Session
    destroy --> Cancel : Cancel Timer
    Cancel --> [*] : Return Cancel
Loading

Copyright

Copyright 2021-2024 Renuo AG, published under the MIT license.