Coder Social home page Coder Social logo

thamara / time-to-leave Goto Github PK

View Code? Open in Web Editor NEW
445.0 15.0 264.0 19.25 MB

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

Home Page: http://timetoleave.app

License: GNU General Public License v3.0

CSS 5.76% HTML 5.23% JavaScript 79.36% Python 6.64% SCSS 2.69% Shell 0.32%
electron electron-app js calendar time-tracker working-hours productivity eletronic-timecard timecard office

time-to-leave's Introduction

Time to Leave Logo

Log work hours and get notified when it's time to leave the office and start to live

Homepage

এই নথিও পাওয়া যায় বাংলায় Aquest Document també esta disponible en Català Dieses Dokument ist auch verfügbar in Deutsch Αυτό το έγγραφο είναι επίσης διαθέσιμο στα Ελληνικά. Este documento también está disponíble en Español مستندات برنامه به زبان فارسی Ce document est également disponible en Français (France) આ દસ્તાવેજ ગુજરાતીમાં પણ ઉપલબ્ધ છે מסמך זה כתוב גם בעברית यह दस्तावेज़ Hindi में भी उपलब्ध है Dokumentasi ini tersedia dalam Bahasa Indonesia Questo documento è disponibile anche in Italiano このドキュメントは日本語でもご覧になれます。 이 문서는 한국어 로도 제공됩니다 हे कागदजत्र देखील उपलब्ध आहे मराठी तसेच उपलब्ध आहे Dit document is ook beschikbaar in het Nederlands Przeczytaj ten dokument w języku polskim Esse documento também está disponível em Português (Brasil) Este documento também está disponível em Português (Portugal) Документация приложения на русском языке Detta dokument finns tillgängligt på svenska Tamil மொழியிலும் இந்த ஆவணம் கிடைக்கும் เอกสารฉบับนี้มีให้บริการในรูปแบบภาษาไทย Bu belge Türkçe olarak da mevcuttur Документація додатку українською 此文档亦适用于简体中文 此文檔亦適用於繁體中文

Platform Downloads in Total Latest Release Latest Release
Time to Leave Screenshot


Log the time you started working today, and the program will compute what time you should leave the office, considering the time you spent on lunch. When it's time, the program will notify you.

Time to Leave Notification

You can control the preferences, stating your working days, how many hours you work a day and if you want to receive a notification or not.

Time to Leave Preferences

You can also add waivers on the days you did not work.

Time to Leave Waiver Manager

How to install TTL

Time to Leave works on MacOS, Windows and Linux, and you can download the desired version from the latest release.

How to build and contribute to TTL

If you want to help, read our contributing guidelines. You can also refer to our development guide for more information.

Get in touch!

Join our Discord server to discuss upcoming features and more.

Credits

Icons made by freepik from www.flaticon.com.

View Switch icon made by Pixel perfect from www.flaticon.com.

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

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)

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

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

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.

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.

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

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.

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.

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 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.

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 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.

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.

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

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

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.

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.

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

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.

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.

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.

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.

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.

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.

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

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

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.