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
CPLib is the abbreviation of Competitive Programming Library.

CPLib CPLib is the abbreviation of Competitive Programming Library. It aims to be a general template and optimization library for competitive programm

12 Oct 16, 2021
Reproduction repository for the MDX 2021 Hybrid Demucs model

Submission This is the submission for MDX 2021 Track A, for Track B go to the track_b branch. Submission Summary Submission ID: 151378 Submitter: defo

Alexandre Défossez 62 Dec 18, 2022
Film-dosimetry - Film dosimetry for DUVS

film-dosimetry Film dosimetry for DUVS Hi David and Joe, here we go this is a te

Christine L Kuryla 3 Jan 20, 2022
Very Simple Zoom Spam Pinger!

Very Simple Zoom Spam Pinger!

Syntax. 2 Mar 05, 2022
Allow you to create you own custom decentralize job management system.

ants Allow you to create you own custom decentralize job management system. Install $ git clone https://github.com/hvuhsg/ants.git Run monitor exampl

1 Feb 15, 2022
An alternative site to emplea.do due to inconsistent service of the app.

feline a agile and fast alternative to emplea.do License: MIT Settings Moved to settings. Basic Commands Setting Up Your Users To create a normal user

Codetiger 8 Nov 10, 2021
PBN Obfuscator: A overpowered obfuscator for python, which will help you protect your source code

PBN Obfuscator PBN Obfuscator is a overpowered obfuscator for python, which will

Karim 6 Dec 22, 2022
Would upload anything I do with/related to brainfuck

My Brainfu*k Repo Basically wanted to create something with Brainfu*k but realized that with the smol brain I have, I need to see the cell values real

Rafeed 1 Mar 22, 2022
Code repository for the Pytheas submersible observation platform

Pytheas Main repository for the Pytheas submersible probe system. List of Acronyms/Terms USP - Underwater Sensor Platform - The primary platform in th

UltraChip 2 Nov 19, 2022
skimpy is a light weight tool that provides summary statistics about variables in data frames within the console.

skimpy Welcome Welcome to skimpy! skimpy is a light weight tool that provides summary statistics about variables in data frames within the console. Th

267 Dec 29, 2022
NGEBUG is a tool that sends viruses to victims

Ngebug NGEBUG adalah tools pengirim virus ke korban NGEBUG adalah tools virus terbaru yang berasal dari rusia Informasi lengkap ada didalam tools Run

Profesor Acc 3 Dec 13, 2021
TinyBar - Tiny MacOS menu bar utility to track price dynamics for assets on TinyMan.org

📃 About A simple MacOS menu bar app to display current coins from most popular Liquidity Pools on TinyMan.org

Al 8 Dec 23, 2022
Media Cloud Outlet Filtering

Using ABYZ and Media-Bias Fact-Check outlet databases, I've provided outlet CSV files for both and scripts to intended to match Media Cloud files to respective outlets.

Stephen Scarano 1 Feb 02, 2022
A short course on Julia and open-source software development

Advanced Scientific Computing: producing better code This course is taught as a 6-session "nanocourse" at Washington University in St. Louis. See the

Tim Holy 230 Jan 07, 2023
Script to calculate delegator epoch returns for all pillars

znn_delegator_calculator Script to calculate estimated delegator epoch returns for all Pillars, so you can delegate to the best one. You can find me o

2 Dec 03, 2021
Free APN For Python

Free APN For Python

XENZI GANZZ 4 Apr 22, 2022
E5自动续期

AutoApi v6.3 (2021-2-18) ———— E5自动续期 AutoApi系列: AutoApi(v1.0) 、 AutoApiSecret(v2.0) 、 AutoApiSR(v3.0) 、 AutoApiS(v4.0) 、 AutoApiP(v5.0) 说明 E5自动续期程序,但是

34 Feb 20, 2021
🟥This is an overview of how to set up and use DataStore3 in your Roblox experiences

Welcome to DataStore3 👋 This is an overview of how to set up and use DataStore3 in your Roblox experiences What is it? 🤔 DataStore3 is a service tha

Reece Harris 7 Aug 19, 2022
A simple script written using symbolic python that takes as input a desired metric and automatically calculates and outputs the Christoffel Pseudo-Tensor, Riemann Curvature Tensor, Ricci Tensor, Scalar Curvature and the Kretschmann Scalar

A simple script written using symbolic python that takes as input a desired metric and automatically calculates and outputs the Christoffel Pseudo-Tensor, Riemann Curvature Tensor, Ricci Tensor, Scal

2 Nov 27, 2021
A simple API to upload notes or files to KBFS

This API can be used to upload either secure notes or files to a secure KeybaseFS folder.

Dakota Brown 1 Oct 08, 2021