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
Tools, guides, and resources for blockchain analysts to interface with data on the Ergo platform.

Ergo Intelligence Objective Provide a suite of easy-to-use toolkits, guides, and resources for blockchain analysts and data scientists to quickly unde

Chris 5 Mar 15, 2022
This Python library searches through a static directory and appends artist, title, track number, album title, duration, and genre to a .json object

This Python library searches through a static directory (needs to match your environment) and appends artist, title, track number, album title, duration, and genre to a .json object. This .json objec

Edan Ybarra 1 Jun 20, 2022
Generating rent availability info from Effort rent

Rent-info Generating rent availability info from Effort rent Pre-Installation Latest version of python Pip module json, os, requests, datetime, time i

Laixuan 1 Oct 20, 2021
This program can calculate the Aerial Distance between two cities.

Aerial_Distance_Calculator This program can calculate the Aerial Distance between two cities. This repository include both Jupyter notebook and Python

InvisiblePro 1 Apr 08, 2022
Runtime inspection utilities for Python typing module

Typing Inspect The typing_inspect module defines experimental API for runtime inspection of types defined in the Python standard typing module. Works

Ivan Levkivskyi 284 Dec 29, 2022
Exactly what it sounds like, which is something rad

EyeWitnessTheFitness External recon got ya down? That scan prevention system preventing you from enumerating web pages? Well look no further, I have t

Ellis Springe 18 Dec 31, 2022
Python-Roadmap - Дорожная карта по изучению Python

Python Roadmap Я решил сделать что-то вроде дорожной карты (Roadmap) для изучения языка Python. Возможно, если найдутся желающие дополнять ее, модифиц

Ruslan Prokhorov 1.2k Dec 28, 2022
Batch obfuscator based on the obfuscation method used by the trick bot launcher

Batch obfuscator based on the obfuscation method used by the trick bot launcher

SlizBinksman 2 Mar 19, 2022
Removes all archived super productivity tasks. Just run the python script.

delete-archived-sp-tasks.py Removes all archived super productivity tasks. Just run the python script. This is helpful to do a cleanup every 3-6 month

Ben Herbst 1 Jan 09, 2022
The earliest beta version of pytgcalls on Linux x86_64 and ARM64! Use in production at your own risk!

Public beta test. Use in production at your own risk! tgcalls - a python binding for tgcalls (c++ lib by Telegram); pytgcalls - library connecting pyt

Il'ya 21 Jan 13, 2022
🥦 Send and receive nano with 2 simple functions

easy_nano Send and receive nano (without having to understand the nano protocol).

1 Feb 14, 2022
Assembly example for CadQuery

Spindle and vacuum attachment This is a model of the vacuum attachment for my Workbee CNC router. There is a mist spray coming from the left hand side

Marcus Boyd 20 Sep 16, 2022
Modelling the 30 salamander problem from `Pure Mathematics` by Martin Liebeck

Salamanders on an island The Problem From A Concise Introduction to Pure Mathematics By Martin Liebeck Critic Ivor Smallbrain is watching the horror m

Faisal Jina 1 Jul 10, 2022
Repository voor verhalen over de woningbouw-opgave in Nederland

Analyse plancapaciteit woningen In deze notebook zetten we cijfers op een rij om de woningbouwplannen van Nederlandse gemeenten in kaart te kunnen bre

Follow the Money 10 Jun 30, 2022
🛠️ Learn a technology X by doing a project - Search engine of project-based learning

Learn X by doing Y 🛠️ Learn a technology X by doing a project Y Website You can contribute by adding projects to the CSV file.

William 408 Dec 20, 2022
Tool for working with Direct System Calls in Cobalt Strike's Beacon Object Files (BOF) via Syswhispers2

Tool for working with Direct System Calls in Cobalt Strike's Beacon Object Files (BOF) via Syswhispers2

150 Dec 31, 2022
MIB2 STD ZR Firmware Upgrade

Upgrade MIB2 STD ZR Firmware (without Navigation) About This repository contains some scripts and documentation how to upgrade the MIB2 firmware to a

Fabian 18 Dec 29, 2022
The repository is about 100+ python programming exercise problem discussed, explained, and solved in different ways

Break The Ice With Python A journey of 100+ simple yet interesting problems which are explained, solved, discussed in different pythonic ways Introduc

Abdullah Al Masud Tushar 2.2k Jan 04, 2023
🇮🇳 A Indian Flag Animation Project Made With Python

🇮🇳 A Indian Flag Animation Project Made With Python

MuFaz-TG 2 Oct 21, 2022
Digdata presented 'BrandX' as a clothing brand that wants to know the best places to set up a 'pop up' store.

Digdata presented 'BrandX' as a clothing brand that wants to know the best places to set up a 'pop up' store. I used the dataset given to write a program that ranks these places.

Mahmoud 1 Dec 11, 2021