Giter Club home page Giter Club logo

eiszeit's Introduction

Eiszeit Time Tracking & Reports

What it is

Eiszeit is a web based time tracking app. It tracks time you spend on tasks and projects and allows to report to project leads and customers how much time has been spent for them and what is billable. It will also allow to report on working time contracted between employee and employer. For the latter it is planned (but not yet implemented) to take into account the individual contracted hours, contracted vacation days, public holidays, illnesses, etc.

Focus

This application is meant to be efficient and not to get into your way, especially in daily repeating tasks like booking your attendance and project hours. It might not (and probably never will) ship with all bells and whistles that other software has, but it is meant to be as open as possible. So it should always be easy to integrate with other software.

What it isn't

It's not a project planning tool. The tool is meant to report in retrospect and not to make plans for the future. Projects often go on for much longer than thought, but their structure often changes in between. From my year long experience it never pays to set up a very detailed project structure for reporting. In the end, all you want to know is what can be billed, what not and what may be in dispute. It's not a (human) resource planning tool. Again, this software is meant to report over the past, not the future. It's also neither meant to be nor suited to monitor employees against their will. In fact we strongly believe that this application helps to relieve tensions between employee and employer by providing tools for transparency, reliability and modern flextime arrangements.

Maturity

Eiszeit is in alpha stage. It is not (yet) meant to be used in production. If you do, please take care! Primarily, you might want to learn more about the underlying BaseX database, e.g. how to make backups of it and how to query and migrate your data, just in case the front-end is not working as expected.

Eiszeit grows on a as needed basis. "We eat our own dog food" and add features as we need them and as we see them fit best.

What's missing, but planned

  • Feedback from you and others. When developers use their own products, they sometimes oversee the obvious.
  • Authentication rewrite. You still get an ugly browser auth dialog. Please click "cancel" twice and then login. Sorry.
  • Permissions. Right now, everybody is allowed to do almost anything. There will be RBAC eventually
  • Internationalization. It's all English (but there is not much text anyway), it's all 24h mode, dates in reports are in format dd.mm.yyyy
  • Database migration scripts. Data might get lost or become inaccessible after upgrades. But we have some groundwork laid.
  • Employee contracted hours and holidays
  • Bookings of sickness and vacations
  • Management of clients
  • "Freezing" of bookings so they cannot be edited after being billed
  • "Freezing" of attendance so it cannot be edited after being accepted by HR
  • A logo
  • Front-end tests. Jasmine coming
  • Configuration of user and application settings.
  • Documentation

License

The application is licensed under the Mozilla Public License 2.0

Quick start

  • Pull and run the official docker image on your local machine:
docker run willhoeftit/eiszeit
  • Open up your local webpage on port 3000
  • Login as "admin" and password "password"
  • Go to the user managing page and a new user.
  • Click on the user's "key" symbol (below of his card) to copy the password reset link to your clipboard
  • Logout as admin
  • Paste the password reset link into your browser
  • Enter your new password
  • Login as the new user
  • Go to the task managing page
  • add a project group, project and some tasks
  • add the new user to the new tasks
  • Go to the daily booking page and log some work to your assigned tasks
  • Examine the reports on your tasks in the
  • dashboard
  • report on projects
  • report on attendance

Technology stack

From user to CPU, Eiszeit is built on

Build

build frontend

See frontend/README.md

build backend

Actually nothing to build here. But you may want to run tests (TODO)

build docker image

Build frontend first, so it will be integrated in the image. See docker/README.md

Develop

How to setup a nice dev environment with basex and Vue CLI.

setup the backend

  • setup a basex server
  • its often handy to have the admin webapp enabled. Check here http://localhost:8984/dba (default login 'admin', password 'admin')
  • make a symlink in its webapps/ folder to your basex/ project folder like this: ~/bin/basex/webapp$ ln -s ~/projects/eiszeit/basex eiszeit
  • start the server with bin/basexhttp. Check if this works: http://localhost:8984/eiszeit/api/tasks
  • if you start from scratch, you need to create the database 'eiszeit' and add the provided files at basex/evolutions/*_init.xml

setup the frontend

  • if necessary, configure the api dev-proxy in frontend/vue.config.js to forward to your basex server
  • start the dev frontend in the eiszeit/frontend/ folder with npm run serve
  • open your browser to the shown URL

Now all changes under the frontend/src/ and basex/ folders should be instantly reflected. Go code!

run backend tests

TODO

vuetify docs (optional)

Because the docs may not be available in the used version online, check it out and compile the version you need:

git clone https://github.com/vuetifyjs/vuetify.git cd vuetify git checkout v1.4.2

install yarn (alternative npm client, only for vuetify docs): see https://yarnpkg.com/en/docs/install#debian-stable

curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list sudo apt-get update && sudo apt-get install yarn

yarn yarn build cd packages/docs yarn dev

http://localhost:8095/en/

eiszeit's People

Contributors

jwillhoeft avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

Forkers

baitcenter

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.