Coder Social home page Coder Social logo

timeoff-management / timeoff-management-application Goto Github PK

View Code? Open in Web Editor NEW
903.0 903.0 560.0 2.79 MB

Simple yet powerful absence management software for small and medium size business (community edition)

Home Page: https://TimeOff.Management

License: MIT License

JavaScript 83.30% CSS 0.48% Dockerfile 0.11% SCSS 0.53% Handlebars 15.58%
absence absence-management businessapp calendar employee-absence employees hr node-js sequelizejs sickness timeoff web-app

timeoff-management-application's People

Contributors

alfredopalhares avatar ampem avatar bbadjari avatar borfast avatar fery avatar gerrypower avatar javierabreu avatar jdambron avatar jekuno avatar jjasonkal avatar jnormington avatar johan162 avatar mback2k avatar nunorafaelrocha avatar officeschwarts avatar pavelito avatar realshaunoneill avatar rixx avatar vpp avatar vpp-ffx avatar waffle-iron avatar wulfboy-95 avatar zefixlluja avatar zoenolan 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  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

timeoff-management-application's Issues

Consider adding holiday approvers on individual bases rather than on departments

As one of our customers suggested:

"It would be very helpful to be able to be to assign an approver individually for each employee rather than having the approver combined with the department."

We need to think how to add this feature without having big impact on current structure of model.

Not sure about solution at this moment yet.

Transferring unused holidays to next year

System should automatically transfer all remaining vacation days to the next year.

Alternatively when calculating employee allowance previous year should be taken into consideration.

Some notes on implementation:

  • Linking table to user: carried_over_allowance. With fields: id, user_id, year, carried_over_allowance, suggested_allowance
  • Supervisor automatically sees missing carry overs on the my requests page (the section to be renamed into My messages)
  • Employee details page allows to amend carried over but not to exceed the suggested value. In case when user want to have more, suggest manual allowance adjustments
  • Send email to employee when her allowance was carried over
  • Department or Company has a property that could define max amount of carried over days

Add new bank holiday

When adding new bank holiday and enter invalid data, e.g. leave name blank, after form submission page report success, but nothing is added.

Respect end date for employee

Prevent her from:

  • login into system
  • showing on the team view page
  • showing in the list of possible approvers
  • reduce code duplication
  • Make sure when updating deactivated user to be active again, system checks that such user does not exist in other companies.

Make some email notifications optional

Add a way for disabling some of emails on company level. It should be done as a set of checkboxes on company settings.

Emails like "notify approver for decision" etc.

By default all emails should be enabled.

As per feedback:

ability to enable and disable sending emails via web interface. Like the Ldap or at least web option on the fly to "mute" the mail sender when doing some "administrative" tasks. Currently I have to comment the config file and reboot the service.

Update email footer to get rid of Pavlo

As some customers complained the name Pavlo is not relevant to the emails from TimeOff.Management

Lets change the email signature to be just "TimeOff.Management"

Consider adding "Share all absences" flag to the company

As one of our customers suggested:

"How are view permissions setup? I want everyone in my company to see everyone else’s calendar regardless of the department they are in."

It sounds like very reasonable requirement and could be implemented cheaply as a flag on Company with effect on Team view. If set the Team View will show entire company not just peers. Consider to just to amend "All departments" item to show actually all departments but not employees from department current user can manage.

My calendar bank holidays

When my calendar page shows only four upcoming months and some of them are in new year, bank holidays from those months are not shown, even though when year is expanded to full they are shown.

Multi location companies

Consider adding concept of locations into companies.

So it is possible to have different sets of bank holidays within same organisation. E.g. if company has offices in different countries.

Here is a comment of one of our customers:

"... Our company is international, which brings a load of complications concerning different calendars and vacation time rules for each country. To generalize it, being able to define different sets of public holidays and determining which set a person gets is the sort of flexibility that we would need.... "

UPD.

Consider generalising concept of department into a "group" of employees.

Each such group could bring particular attribute to employee, such as bankholiday set, visibility etc.

Employees are to be part more then one of such departments/groups.

Fix a typos

On the calendar view Upcomming months is misspelled. it should be "Upcoming Months".

Clean up app.js

We need to clean up the structure of app.js:

  • how 500 page is handled
  • moove session secret into config
  • move handlebars setup into midleware

UI: add_new_leave_type_btn overlap

Not sure if intentional but the "Add new" button is overlapping the "Save changes" button.

Before changing button padding:

hud5und

## After changing button padding:

toqdmgp

Consider increasing granularity of the leaves by splitting days into hours.

As one of our customers suggested:

"> I can provide one suggestion for a feature. It’d probably require a

bit of an overhaul and rethinking of some things, but it seems
important if you want to continue growing this for wider usage. Most
places I’ve worked for have broken down personal and vacation time
to hours, not days. Right now it seems as if your system entirely
considers things in the concept of day, and not hours, and that would
need to be reworked before we can deploy it (we have some accruals
like 4.75 hours, not in even “day” amounts). Do you think this is
something you’d ever consider moving to, or are you fairly stuck on
the unit being days? "

We need to consider that.

Fix a ugly output ini tests

There are some moment.js usage that is going to be deprecated, following is from test runs:

Basic leave request
Deprecation warning: moment construction falls back to js Date. This is discouraged and will be removed in upcoming major release. Please refer to moment/moment#1407 for more info.
Arguments: [object Object]
Error
at Function.createFromInputFallback (/home/travis/tom/node_modules/moment/moment.js:850:105)
at configFromString (/home/travis/tom/node_modules/moment/moment.js:970:32)
at configFromInput (/home/travis/tom/node_modules/moment/moment.js:1473:13)
at prepareConfig (/home/travis/tom/node_modules/moment/moment.js:1456:13)
at createFromConfig (/home/travis/tom/node_modules/moment/moment.js:1423:44)
at createLocalOrUTC (/home/travis/tom/node_modules/moment/moment.js:1505:16)
at local__createLocal (/home/travis/tom/node_modules/moment/moment.js:1509:16)
at utils_hooks__hooks (/home/travis/tom/node_modules/moment/moment.js:16:29)
at /home/travis/tom/lib/model/mixin/user/absence_aware.js:24:16
at Function..map..collect (/home/travis/tom/node_modules/underscore/underscore.js:172:24)
at _get_calendar_months_to_show (/home/travis/tom/lib/model/mixin/user/absence_aware.js:23:16)
at promise_calendar (/home/travis/tom/lib/model/mixin/user/absence_aware.js:42:36)
at router.get.base_date (/home/travis/tom/lib/route/calendar.js:107:14)
at Layer.handle as handle_request
at next (/home/travis/tom/node_modules/express/lib/router/route.js:100:13)
at Route.dispatch (/home/travis/tom/node_modules/express/lib/router/route.js:81:3)
at Layer.handle as handle_request
at /home/travis/tom/node_modules/express/lib/router/index.js:234:24
at Function.proto.process_params (/home/travis/tom/node_modules/express/lib/router/index.js:312:12)
at /home/travis/tom/node_modules/express/lib/router/index.js:228:12
at Function.match_layer (/home/travis/tom/node_modules/express/lib/router/index.js:295:3)
at next (/home/travis/tom/node_modules/express/lib/router/index.js:189:10)
at /home/travis/tom/node_modules/express/lib/router/index.js:191:16
at Function.match_layer (/home/travis/tom/node_modules/express/lib/router/index.js:295:3)

Move to DO hosting

Fed up with troubles with Webfaction hosting.

Constant outages.

Move the website onto DO hosting.

Hints on registration page

Add bootstrap tool tips with brief field description next to field on registration page.

More important is to update the wording on the registration page to make it clear that it is registration of new COMPANY not just a user.

Accrued allowance feature

Currently the application allocate the number of free time off days at the start of the year and employee is able to spend them at any point.

Few customers asked for feature when the allowance is accrued based on how far in the current year we are now.

"... We would need some notion of accrued time. Instead of having a fixed amount of time available at the beginning of the year, we officially accrue time based on an annual rate. If you had 12 vacation days per year, you would accrue 1 day per month (or more precisely, a certain amount per day). This is useful for 2 cases ..."

To implement this feature we do not need to do any DB changes other than adding new flag to the company level - that enables/disables it.

The business logic needs to be amended such a way that when requesting new leave system checks if user still within accrued number of available days.

That feature overlaps with some functionality discussed in #37

Progressive allowance feature

This is what of one of the customers wrote:

"In our case, time off is based on length of employment."

As it looks to me it is not complex to add feature of "time in company based allowance", that it with every year of being with a company employee gets extra day off until lets say 5.

That change would require few changes of DB structure:

  • add flag that enables the feature on company level
  • add the limit of how many extra days is possible to gain in such a way; again on the company level

The code that calculates the amount of available allowance needs to perform extra calculations: count of how many years the employee is with current company and based on that add extra days.

Fix deprecation error

express deprecated req.param(name): Use req.params, req.body, or req.query instead lib/route/login.js:94:23
express deprecated req.param(name): Use req.params, req.body, or req.query instead lib/route/login.js:101:22
express deprecated req.param(name): Use req.params, req.body, or req.query instead lib/route/login.js:106:26

User adjustments to allow half days

Got an email from customer:

in the adjustments, It won't let me enter half days adjustment?

Can you help?

When entering, for example, 1.5 in adjustment, it shows the message
"you must enter a valid value"

Ability to "holiday prohibition" dates

As our customer suggested:

...

One feature you may like to put on your list is the ability to prevent booking on certain days.

For example, towards the end of every May we run a huge exhibition, we don't allow staff to book holiday a week either side of this event. Would be great to allow a " holiday prohibited" date range.

...

Maybe it is not to block holidays completely but to highlight that at request submission and performing decision? So if some really necessary absences still to take place - it is possible to do so.

Non allocated days off to be shown differently.

As per customer request:

"Quick question from one of my team leaders, are we able to have the sick days displayed on the team view page with a different colour on the shading?"

In ideal world we need to make colour picker on the leave type setup page.

That is to be done later as needs more work.

Meanwhile make holidays that are not counted toward allocation be presented differently .

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.