NUM Alert - A work focus aid created for the Hack the Job hackathon

Overview

Contributors: Uladzislau Kaparykha, Amanda Hahn, Nicholas Waller
Hackathon Team Name: N.U.M

General Purpose: The general purpose of this program is to keep workers more on task during their work day. There are 4 categories, "Recurring Alerts", "Timed Alerts", "Restrictions", and "Extras" "Recurring Alerts" are alerts that happen every given period of time. "Timed Alerts" are alerts that happen once a day at a given time "Restrictions" are restrictions you can place on your applications. This will be checked every minute. "Extras" are extras for the program (currently only a COVID case counter)


Setup:

  • Make sure Chromium driver is updated to the version 97.0 or later. To do so:
    1. Open Google Chrome
    2. Click on the 3 dots in the top-right corner of the screen
    3. In the help subsection, click on the About Google Chrome
    4. If the version is not 97.0 onward, click the update button.

  • Install following library dependencies via pip install ___, where ___ are the libraries mentioned below:
    • PyQt5
    • selenium
    • psutil
    • winapps
    • win10toast

To launch the app (assuming you are in the directory containing all the files)

py main.py

Or use your native Python IDE and run the script there (Via either Shift+F10 or pressing the Run Button)


Using Each Aspect:

Recurring Alerts

  • Alert type: The type of alert. If the type of alert wanted is not on the list, press "custom".
  • Frequency Duration: The amount of time, in minutes, that the notification will appear.
  • Custom Message: The message that will appear on the alert.
  • Notification Duration - How long the notification will stay on screen (see the 2nd limitation/restriction) Once the user is happy with all values entered, press "Add Alert" If the user wants to delete the alert, click on the alert to delete and then press the "Delete Selected Alert" button.

    Timed Alerts
  • Alert type, custom message and notification duration are all the same as above.
  • Time to Occur: The time at which the notification will occur. It only checks the second the minute starts (eg checks at 12:00:00, but won't at 12:00:54) Add alert and delete alert are the same as above.

    Restrictions
  • Click on the program that you want to be restricted.
  • Click "add to banned"
  • Click on an in the "banned applications" text box and then "unban selected" to unban the item
  • Once all banned applications are ready, check the "focus mode" box to close the applications every minute.

    Extras
  • COVID-19 Alerts
    • Click on the "Receive COVID case alerts" radio button
    • "Notify every" - How often the notifications will appear
    • "Country" - The country that you will be checking statistics for. Only the top 30 countries, by case count, are listed.
    • Notification Duration - How long the notification will be on screen. The numbers are consistently updated using a webscraper. All information should be accurate and up-to-date. All information comes from https://www.worldometers.info/coronavirus/


Limitations/Restrictions:

  • Windows 10 Exclusive due to how the notifications are processed.
  • Notification duration is limited not only by the input, but by what the limit is in the user settings.
    • In Windows 10, this can be changed in settings -> Ease of Access -> Show notifications for
  • If the installation path does not exist, then the program can not be prevented from being closed.
    • An example program is steam, however steam applications can regularly be closed Depending on the selected programs, unsaved changes will be ignored. The user will not be prompted to save beforehand.
  • Some programs, in their install path, have extra .exe files, such as UnityCrashHandler.exe.
    • If another unrelated app also uses UnityCrashHandler, it will also be closed.
  • Upon adding an item to the "banned" list, it will not automatically be closed. "Focus mode" must be turned on.
  • Restricted programs will only be shut down on a timer of 1 minute to prevent resource hogging. In theory, the program may still be opened.
  • The amount of "notification time" MAY NOT exceed "time". Meaning, you CAN NOT create 2 alerts that happen every minute that each last 59 seconds without breaking the program.
  • The COVID cases runs in headless mode, which has been known to be unreliable.
  • Chrome Version 97.0.4692.71 (the most recent version) is needed.
    • To update, open Google Chrome. Press the 3 buttons in the top right of the screen. Click "help", then "About Google Chrome". The update should automatically start installing if needed.


This project originated on GitLab and was created for the Hack the Job hackathon


Contributions

  • Uladzislau Kaparykha
    • restrict.py
    • RestrictTimer.py
  • Amanda Hahn
    • GUI.ui
    • gui.py
    • main.py
  • Nicholas Waller
    • Alert.py
    • COVIDAlert.py
    • DelayAlert.py
    • TimedAlert.py
    • settings.py
Owner
Amanda Hahn
UoG - Comp Sci 2025
Amanda Hahn
Sync SiYuanNote & Yuque.

SiyuanYuque Sync SiYuanNote & Yuque. Install Use pip to install. pip install SiyuanYuque Execute like this: python -m SiyuanYuque Remember to create a

Clouder 23 Nov 25, 2022
Cylc: a workflow engine for cycling systems

Cylc: a workflow engine for cycling systems. Repository master branch: core meta-scheduler component of cylc-8 (in development); Repository 7.8.x branch: full cylc-7 system.

The Cylc Workflow Engine 205 Dec 20, 2022
Stocks Trading News Alert Using Python

Stocks-Trading-News-Alert-Using-Python Ever Thought of Buying Shares of your Dream Company, When their stock price got down? But It is not possible to

Ayush Verma 3 Jul 29, 2022
Clear merged pull requests ref (branch) on GitHub

GitHub PR Cleansing This tool is used to clear merged pull requests ref (branch) on GitHub. GitHub has no feature to auto delete branches on pull requ

Andi N. Dirgantara 12 Apr 19, 2022
A script for creating battle animations in FEGBA format.

AA2 Made by Huichelaar. I heavily referenced FEBuilderGBA. I also referenced circleseverywhere's Animation Assembler. This is also where I took lzss.p

2 May 31, 2022
Vector tile server for the Wildfire Predictive Services Unit

wps-tileserver Vector tile server for the Wildfire Predictive Services Unit Overview The intention of this project is to: provide tools to easily spin

Province of British Columbia 6 Dec 20, 2022
a simple proof system I made to learn math without any mistakes

math_up a simple proof system I made to learn math without any mistakes 0. Short Introduction test yourself, enjoy your math! math_up is an NBG-based,

양현우 5 Jun 04, 2021
一个Graia-Saya的插件仓库

一个Graia-Saya的插件仓库 这是一个存储基于 Graia-Saya 的插件的仓库 如果您有这类项目

ZAPHAKIEL 111 Oct 24, 2022
Odoo. Open Source Apps To Grow Your Business.

Odoo Odoo is a suite of web based open source business apps. The main Odoo Apps include an Open Source CRM, Website Builder, eCommerce, Warehouse Mana

Odoo 27.6k Jan 09, 2023
Zapiski za ure o C++-u

cpp-notes Zapiski o C++-u. Objavljena verzija je na https://e6.ijs.si/~jslak/c++/ Generating the notes The setup assumes you are working in a Linux en

Jure Slak 1 Jan 05, 2022
Procedural modeling of fruit and sandstorm in Blender (bpy).

SandFruit Procedural modelling of fruit and sandstorm. Created by Adriana Arcia and Maya Boateng. Last updated December 19, 2020 Goal & Inspiration Ou

Adriana Arcia 2 Mar 20, 2022
Set of tools to analyze Tinynuke samples

tinynuke-toolset You'll find in that repository a set of tools and scripts I developped to analyze Tinynuke samples. Dll extractor: script used to ext

Heat Miser 14 Aug 18, 2022
Scraping comments from the political section of popular Nigerian blog (Nairaland), and saving in a CSV file.

Scraping_Nairaland This project scraped comments from the political section of popular Nigerian blog www.nairaland.com using the Python BeautifulSoup

Ansel Orhero 1 Nov 14, 2021
Push Prometheus metrics to VictoriaMetrics or other exporters

Push metrics from your periodic long-running jobs to existing Prometheus/VictoriaMetrics monitoring system.

olegm 14 Nov 04, 2022
A python script to run any executable and pass test cases to it's stdin and compare stdout with correct output.

quera_testcase_checker A python script to run any executable and pass test cases to it's stdin and compare stdout with correct output. proper way to u

k3y1 1 Nov 15, 2021
AKSWINPOSTINIT -- AKS Windows node post provisioning initialization

AKSWINPOSTINIT -- AKS Windows node post provisioning initialization Features This is a tool that provides one-time powershell script initilization for

Ping He 3 Nov 25, 2021
A simple and easy to use Python's PIP configuration manager, similar to the Arch Linux's Java manager.

PIPCONF - The PIP configuration manager If you need to manage multiple configurations containing indexes and trusted hosts for PIP, this project was m

João Paulo Carvalho 11 Nov 30, 2022
Make creating Excel XLSX files fun again

Poi: Make creating Excel XLSX files fun again. Poi helps you write Excel sheet in a declarative way, ensuring you have a better Excel writing experien

Ryan Wang 11 Apr 01, 2022
Just a simple python script to generate graphs of salt state requisites.

saltstatevis Just a simple python script to generate graphs of salt state requisites. Installation Requirements You will need to install graphviz to r

Dwayn Matthies 3 May 04, 2022
Clackety Keyboards Powered by Python

KMK: Clackety Keyboards Powered by Python KMK is a feature-rich and beginner-friendly firmware for computer keyboards written and configured in Circui

KMK Firmware 780 Jan 03, 2023