Giter Site home page Giter Site logo

timemanager's Introduction

TimeManager App

A Nextcloud app to track time spent on work, life or anything in-between.

Looking for screenshots, official release packages or a place to leave a rating? ๐Ÿ‘‰ Visit the app on the Nextcloud Appstore

๐Ÿ“ฑ Looking for a mobile companion app? Try the Android app (currently in beta) made by @joleaf.

Features

  • ๐Ÿ’… Organize time entries based on tasks, projects and clients.
  • ๐ŸŽค Quickly record a time entry for your latest tasks.
  • โœ… Check or uncheck a time entry (e.g. to save whether you've billed it).
  • ๐Ÿง‘โ€๐Ÿ’ป Get summaries of your time spent on tasks, projects and clients.
  • ๐Ÿ“Š Take a glance at simple, but useful statistics.
  • ๐Ÿ“’ Create basic reports using filters, timerange selection and a simple graph.
  • ๐Ÿค Track your time together with others by sharing a client and its associated projects and tasks (web app only).

Planned features

  • Allow tracking of time in the background.
  • Work with start & end of time entry or duration.
  • Allow to organize time entries without assigning them to tasks, projects or clients.
  • REST API improvements for mobile clients

Development

The client-side JavaScript of this plugin uses ES6 features and needs to be transpiled for use in a browser. To run a watch command that automatically updates the bundle.js file when you make changes, execute npm run dev. To make a simple build, use npm build.

Before building or development, dependencies need to be installed once by running npm install.

Automated testing

Some end-to-end testing is done using Cypress. Tests currently cover basic features of the app and run in a headless Chrome browser on a dockerized Nextcloud instance. For this repository tests run on a mirror repository on Gitlab.

To run tests locally, change into the tests directory. Before running or working on tests, run npm install to install dependencies. Make sure to create a .env file based on .env.example and a cypress.env.json based on cypress.env.example.json; values can be chosen freely, only make sure they align between the two files.

To run the app install docker and docker-compose on your machine. Then run docker-compose up, followed by docker exec $(docker ps -qf "name=app") sh -c 'chown www-data:root custom_apps'. Wait for the app to be ready, then run docker exec -u www-data $(docker ps -qf "name=app") sh -c 'php -f ./occ app:disable firstrunwizard'.

Finally, run npm start and use Cypress' UI to start running the tests included in the spec file.

To shut down containers and delete the temporary volumes, run docker-compose down -v in a second terminal while you're in the same tests directory.

Test cases might depend on running in a specific order. This means you might need to wind down your docker containers and start them again as described above when re-running tests.

New features are supposed to be covered by end-to-end tests in a way that reflects their average usage.

Bugfixes are supposed to include a test case that demonstrates the bug being fixed and prevent it to be re-introduced in the future.

Changelog

The changelog is available in the CHANGELOG file

timemanager's People

Contributors

te-online avatar thovi98 avatar p-bo avatar lakehy avatar dependabot[bot] avatar joleaf avatar

Watchers

James Cloos avatar Igor Oliveira avatar

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.