Giter Club home page Giter Club logo

thyme's Introduction

Thyme Thyme

A little web app which allows you to log time data.


Build Status

Thyme is a time logging web application which enables you to add and store time spent on different projects you work on.

It displays all the added time entries in a single table with their corresponding duration and project notes.

Create reports with detailed information spent per project over selected periods of time.

Features

  • Integrated timer
  • Create date, start and end time
  • Create projects and sub-projects
  • Assign time sheet entries to projects
  • Reports of total time spent per project
  • Automatic rounding of time spent
  • Export / Import data
  • Saves to localStorage of the browser
  • Ability to sync data in the Thyme Capsule
  • Sync over multiple devices

How to use

Thyme has been made to be as easy as possible to use. However, there is also documentation available at https://usethyme.com/documentation/ for further reading.

If you have questions you can leave issues on this repository or send a message to [email protected]

Screenshots

Timesheets screen

Detailed time logging

Reports screen

Time log reports

Projects screen

Adding and adjusting projects


Running your own instance

  1. Clone the repository, navigate to the created folder, and run npm install.
  2. Use npm build to build the application. Assets will be available in build/.
  3. Change the location of Thyme Capsule by setting the REACT_APP_API_ROOT environment variable before building.
  4. Run npx serve build to serve your build on localhost.

Building browser extensions

  1. Follow the steps for running your own instance.
  2. Use npm run build:extensions to compile and zip the browser extensions.

Generating sample data

To generate sample data to be used for development, or just to clean your development state, you can use the following command:

npm run generate-sample

This will create a new file called sample.json in the root of the project. Use the "Export / Import data" section of the settings page to import the sample data.

Development

You can help out with development using the following steps.

  1. Clone the repository, navigate to the created folder, and run npm install.
  2. Copy the staging environment variables to a local version cp .env.staging .env.local. Adjust if needed.
  3. Open a development server by executing npm start.
  4. Find source files for the app in ./src.

Made with Create React App

This project was bootstrapped with Create React App.

License

MIT

thyme's People

Contributors

gaya avatar scoombe avatar superman32432432 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

thyme's Issues

Add linting to CSS

Look for a way to lint CSS and pick one which fits the JS AirBNB style guide

Add seconds counter in timesheet duration field when tracking time

a suggestion to include seconds in the duration field on timesheets page --> 00:00:00

This could could be added to provide some better immediate visual feedback that the tracking has started, the 00:00 duration was a bit confusing at first since it only shows hour/minutes.

Add some git hooks

Add some git hooks so that the stuff like the lint fix and tests will run before pushes.

Fix deployment on Netlify previews

Because the "homepage" of the project now is /thyme the preview branches will not work on Netlify. Fix the deployment so that the public path can be set to / for deployment previews.

Cannot clear "temporary item"

When you haven't opened Thyme in a long time and you already had a temporary item which you were filling in, it will still be there without a good way of resetting it.

Convert times to actual timestamps

Right now all time data is a combination of a date and start and end time. Preferably this is just a start timestamp and an end timestamp.

This will be much more logical to work with and will be able to support multi day tracking. This is especially good for people working nights

Ability to save a report

It would be a good idea to mark time as being billed and you're able to quickly see which hours to bill next.

Also need to mark a project as being billable.

But for now, I am going to make it possible to save a report range. Serves the same purpose.

  • save reports to store
  • switch reports
  • remove reports
  • export / import reports

Add bar with actions on reports page

Actions include printing the page, saving reports, loading reports. This way we can also improve how working with saved reports look and work.

Look into possibility of exporting to PDF without printing.

Ability to round start and end times

For administrational purposes. It would be could if the user is allowed to setup rounding of start and end times. For example: round at 5 minutes, making the start and end time always rounded at 5 minutes instead of on the minute.

Allow for rounding normal, up or down. And picking the increments of 5 minutes, 10 minutes, 15 minutes, 30 minutes, an hour, or a custom amount.

Nicer alerts and confirms

Confirms:

  • Delete entry
  • Delete project
  • Delete report
  • Import data in settings
  • Remove data in settings

Alerts:

  • Error messages in settings
  • Project remove has children

System tray time toggle to log time outside of the browser

It would be good to have a little icon in the system tray where you can start, stop, pause tracking of time.

This way you don't always have to go to the Thyme instance to do this.

It has to be really lightweight weight and shouldn't be a huge impact on the user's system. So keep in mind that RAM and CPU usage should be as low as possible.

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.