Giter VIP home page Giter VIP logo

bambooing's Introduction

Bambooing

Welcome to bambooing, a gem to track bamboo time hassle free! This gem is addressed to people who forgets to clock-(in|out) during work hours.

Usage

If you have docker installed on your machine, please run the following command:

make create_current_weekdays

This will add entries in Bamboo for the current week. These entries will consist of 8 hours per day with 2 breaks of 0-30 minutes, summing a total of 40 weekly hours.

Note, it is needed to pass valid values for the configuration.env file (e.g. csrf_token, session_id or employee_id)

If you are ever lazier, you can add entries in Bamboo for the current month, based on the same strategy that for the current week. Please run the following command:

make create_current_month_weekdays

Getting your credentials

You will need to open your bamboo account on a browser and navigate to My Info tab. Execute the following commands to read your CSRF Token and Employee ID:

console.log('Employee id:', currentlyEditingEmployeeId);
console.log('CSRF token:', CSRF_TOKEN);

For the Session ID, you will have to use the browser's develpoment tools to find the value for the cookie named 'PHPSESSID'

Notice that if BAMBOOING_DRY_RUN_MODE is enabled, the times will be generated but will not be uploaded to bamboo, you have to disable it if you want to upload the times.

Test

make test

Development

make devel

This will create an image and run a container to play/develop further features in bambooing. Then, run bundle exec rake spec to run the tests. You can also run bin/console for an interactive prompt that will allow you to experiment.

Installation

Add this line to your application's Gemfile:

gem 'bambooing'

And then execute:

$ bundle

Or install it yourself as:

$ gem install bambooing

Code status

Build Status

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/jollopre/bambooing. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.

License

The gem is available as open source under the terms of the MIT License.

Code of Conduct

Everyone interacting in the Bambooing project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the code of conduct.

bambooing's People

Contributors

dependabot[bot] avatar eduardosimon avatar jelohe avatar jollopre avatar

Stargazers

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

Watchers

 avatar  avatar  avatar

bambooing's Issues

Entropy for weekly hours rate

Bambooing is offering the possibility to add entries for a week manually, however every day registers exactly 8 hours of work done. In reality, a clocker does not work 8 hours sharp every single day so we will need to tweak the algorithm to be more aligned with employees daily hours rate.

Rake to populate timesheet monthly

Currently bambooing offers timesheet data insertion on weekly basis. Since we are sending timesheets for approval on a monthly basis, a rake to populate hours for the 'current' month will reduce the manual triggering of the rake from 4 to 1.

Add random hours for a specific day

Currently bambooing is offering to possibility to fill up your current weekday, however if you missed to run the rake during a week, you would have to enter these hours manually. In order prevent adding entries manually, we would like to create a rake task that permits adding random time for a given day passed.

Concentrate logic to determine today's date

There are several places that get today's date however we would like to have it in just one place. That refactoring will make it easy to change today's date behaviour manually

Exclude from timesheet any Time off type

Currently only the approved PTO time off type (77) is excluded from the timesheet entries. However there are more time off types that could be also taken into account:

  • 81 - Floating day
  • 91 - Overtime
  • 102 - Digital Disconnect Day
  • 104 - FlyBetter Days
  • 80 - Sick Policy
  • 92 - Personal days
  • 98 - Parental leave
  • 89 - Personal leave
  • 97 - Carryover PTO

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.