Giter Club home page Giter Club logo

time-to-leave's Introduction

Hey there ๐Ÿ‘‹

My name is Thamara, and I'm a Software Engineer living in Belo Horizonte, Brazil.

I also share my adventures on open-source and other tech-related topics in my blog.

On Linkedin On Twitter

My latest posts ๐Ÿ“–

What I'm working on ๐Ÿ‘ฉโ€๐Ÿ’ป

  • Time to Leave: Log work hours and get notified when it's time to leave the office and start to live.

  • Code Annotation, a VSCode extension: A Visual Studio Code extension to create and track annotations from your source code without actually committing comments on your code.

  • Bom Curriculo para Tech: A collection of tips and sources for creating a great resume for the IT area. Available as a GitBook too. (Brazilian Portuguese only)

time-to-leave's People

Contributors

aakashpothepalli avatar adarivamsi avatar aldoalprak avatar araujoarthur0 avatar bhumikasaini avatar bngya avatar dependabot[bot] avatar dsrariel avatar esot3ria avatar fikimaul avatar fuslonflare avatar giovannipessiva avatar gsriram24 avatar kishorliv avatar martin-gnodtke avatar netizenabel avatar ochan12 avatar ruteshrathod avatar samin-batra avatar saviusz avatar semvrij avatar servatj avatar skevprog avatar subhamchoudhury avatar susheelg1197 avatar thamara avatar time-to-leave[bot] avatar tupaschoal avatar vicoerv avatar websnke 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

time-to-leave's Issues

Inform the user of a new TTL version

Many electron-based apps download updates automatically and ask the user to restart to apply. I feel this is of best interest to this app, specially because people typically would download this application and use as is until they find a major problem with it, and then they'd have to come to GH releases.

It would be great if this was actually part of the next release.

Allow non-working days to be hidden

Currently you can go on preferences and select which days to be considered "working days". I'd say it would be nice to have a compact view where the "non-working" days would be hidden.

Allow configuration of 12/24 hour day

Some people prefer one format over another, so it would be good to allow them to choose it.

Remember to remove the field "AM/PM" when in the 24h format

Allow "minimize to tray"

It should be possible to configure, on the settings, to minimize to tray, as this is an app that will be open, at most, 4 times a day.

Align clock on header

If you take a close look, the clock icon is misaligned at the header, being a bit to the right of the table and it is kind of weird.

image

Add preferences page

Preferences page should have:

  • Show Saturday/Sunday
  • Hours per day
  • Enable/Disable notification

More...

Preferences validation should be able to handle new entried

Changing/adding/removing fields in the preferences file make the old preferences file not backwards compatible, as hasValidPreferencesFile checks that all the expected preferences are presented in the file.
We should be able to overlook missing fields, fallbacking to the default specified value, and inserting this missing value into the preferences file.

Create summary view

There should be a summary view, or similar, so that you can see how many hours you have extra or to be paid.

We all know we don't/can't work exactly h a day hahahaha

Color balance total based on the value

The balance on the app is currently:

Screen Shot 2019-10-18 at 21 33 24

If the number is negative (means the user is missing working hours) it should be red. If the balance is positive is should be green-ish.

Punch-in button should be disabled if non-working day

If the current day is a non-working day, I think the punch-in button should be disabled. Currently it is possible to click it, but nothing happens.

You can also make it pop-up an error/warning, which I dislike a lot more.

Disable punch from tray when not applicable

Issue #55 introduced the ability to punch from tray, but it is always enabled. It should follow the behavior of the button on the main window, which is disabled if the day is a non-working day or if all entries have already been punched.

Blank window when opening app

When trying to test it for #21, I couldn't see anything, just like #6 . I even ran npm install first.
I got the following error:

Uncaught TypeError: Cannot convert undefined or null to object
    at Function.keys (<anonymous>)
    at hasValidPreferencesFile (C:\Users\Tulio\Documents\GitHub\time-to-leave\js\UserPreferences.js:56)
    at getUserPreferences (C:\Users\Tulio\Documents\GitHub\time-to-leave\js\UserPreferences.js:99)
    at calendar.js:16

Add button to punch in

There should be a "punch in" button somewhere, so that it can record the current time as the next entry in whatever field is next on the current day, easing the job of typing everything.

Improve style of non-working day option in preference

Currently the option to hide non-working days is centered and has a bold font:
Screen Shot 2019-10-18 at 21 15 57

I feel like this is somewhat clutter.
It should be left-aligned, and have a normal, non-bold, font. Also, have a little spacing from the options above it.

Tab should auto complete as '00'

When typing a time, whenever user hits 'tab', the current field should be auto-filled with 0s. I'd do it like:
'--' + tab -> '00'
'3' + tab -> '03'
'--' + tab -> AM/PM (always AM or PM if previous is already PM)

Weirdly broken

I did npm install then npm start and faced #6 again (actually took multiple reload + clear database to "work"). This is what I got then:

broken_ttl

Note that:

  • Icon is broken (~ #18)
  • Rows are not editable (I'm guessing a bug on reading the preferences)
  • Editing the preferences brings edit back, but then punch-in buttons do not fill, but actually clear the field:

punchin

Punch in time from the tray icon

It should be possible to punch in time from the icon on the tray, by right clicking it and selection an option 'Punch in time'. This way the user don't even need to open the app.

Update calendar when day changes

User can left TTL opened for days in their computer, but we don't update the page (to show the current day correctly).
We should redraw/update the calendar when the day change.

I believe this can be achieved by using setInterval, and querying the today on the calendar.

Allow user to choose themes

Current app is black on white, but maybe some people prefer the other way around?
I do!

In the future you could also allow it to be fully customisable.

Toolbar icon should be light grey

Currently the toolbar icon is black, which looks great on light toolbars, but bad on dark ones.
image

It should be grey/ice for Windows and keep black for mac, maybe

Source holidays from user's location

It would be great if the users could type in their locations and the calendar would adapt accordingly including holidays.
There are several ways to make this more complex

  • Start with just a country
  • Move to city-based
  • Make app read approximate location, instead of having user type it

Allow user to specify interval of notification

After #45, the notification appears to the user until the end of the day, every 5 min.
I think the user should be able to control this interval, and maybe the maximum number of times the notification appears.

We should add this under preferences page, which currently have:
Screen Shot 2019-10-19 at 00 30 32

There should:

  • check box for disabling repetition of the notification (not checked by default)
  • input (number) in minutes for the Interval of notifications
  • input (number) for the max number of notification to shown

It's important noticing that such configuration should be saved in the preferences, and should be sourced in calendar.js/notifyTimeToLeave.

Add waiver for working day

It should be possible to waiver a working day.
An idea is to right click the day on the table and have an option waiver, which would open a pop up for the user to input the reason and optionally how many hours to waive.

Behavior of when to leave bar

I feel like the bar telling you when to leave should change in some way when you've punched in all entries for the day. I don't know what to do though, if it should be hidden, or just rewritten...
dunno

Introduce hidden concept of entry/exit and suggest punch in

Currently the app just annotates the time when you punch, but it can actually know whether you are punch in or out, depending on whether it's an even or odd punch.

It would be great if it had inner logic saving whether you're working or not and if you punched out and the computer became idle, suggesting you to punch in upon coming back.

Allow "start date" configuration

New users often will not start using right in the start of the month. So, it would be nice to be able to set the date from which hour count starts.
Perhaps, if this date is not set yet, then the 'time-to-leave' can auto configure it for the first time I open the program.

Move preferences manipulation to another file

Currently, on calendar.js we handle the update of the preferences (ipcRenderer.on('PREFERENCE_SAVED'), as well as the queries of the preferences in functions such as notificationIsEnabled, getHoursPerDay and showWeekDay.
All of this should be moved to js/UserPreferences.js, and imported in calendar.js, just the way it's done for getUserPreferences.

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.