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
This program generates automatically new folders containing old version of program

Automated Folder Versions Generator by Sergiy Grimoldi - V.0.0.2 This program generates automatically new folders containing old version of something

Sergiy Grimoldi 1 Dec 23, 2021
Aero is an open source airplane intelligence tool. Aero supports more than 13,000 airlines and 250 countries. Any flight worldwide at your fingertips.

Aero Aero supports more than 13,000 airlines and 250 countries. Any flight worldwide at your fingertips. Features Main : Flight lookup Aircraft lookup

Vickey 비키 4 Oct 27, 2021
Refer'd Resume Scanner

Refer'd Resume Scanner I wanted to share a free resource we built to assist applicants with resume building. Our resume scanner identifies potential s

Refer'd 74 Mar 07, 2022
Versión preliminar análisis general de Covid-19 en Colombia

Covid_Colombia_v09 Versión: Python 3.8.8 1/ La base de datos del Ministerio de Salud (Minsalud Colombia) está en https://www.datos.gov.co/Salud-y-Prot

Julián Gómez 1 Jan 30, 2022
Simply create JIRA releases based on your github releases

Simply create JIRA releases based on your github releases

8 Jun 17, 2022
ASCII-Wordle - A port of the game Wordle to terminal emulators/CMD

ASCII-Wordle A 'port' of Wordle to text-based interfaces A near-feature complete

32 Jun 11, 2022
Discovering local read-level DNA methylation patterns and DNA methylation heterogeneity in intermediately methylated regions

Discovering local read-level DNA methylation patterns and DNA methylation heterogeneity in intermediately methylated regions

1 Jan 11, 2022
Files for QMC Workshop 2021

QMC Workshop 2021 This repository contains the presented slides and example files for the Quantum Monte Carlo (QMC) Workshop 5 October - 23 November,

QMCPACK 39 Nov 04, 2022
A simple method to create strong password.

A simple method to create strong password.

1 Jan 23, 2022
Architecture example simulator

SCADA architecture Example of a SCADA-like console application, used to serve as a minimal example of a standard architecture of an IIoT system. Insta

1 Nov 06, 2021
Automate your Microsoft Learn Student Ambassadors event certificate with Python

Microsoft Learn Student Ambassador Certificate Automation This repo simply use a template certificate docx file and generates certificates both docx a

Muhammed Oğuz 24 Aug 24, 2022
Unzip Japanese Shift-JIS zip archives on non-Japanese systems.

Unzip JP GUI Unzip Japanese Shift-JIS zip archives on non-Japanese systems. This script unzips the file while converting the file names from Shift-JIS

Emile Bangma 9 Dec 07, 2022
An extended version of the hotkeys demo code using action classes

An extended version of the hotkeys application using action classes. In adafruit's Hotkeys code, a macro is using a series of integers, assumed to be

Neradoc 5 May 01, 2022
A conda-smithy repository for boost-histogram.

The official Boost.Histogram Python bindings. Provides fast, efficient histogramming with a variety of different storages combined with dozens of composable axes. Part of the Scikit-HEP family.

conda-forge 0 Dec 17, 2021
Expression interpreter written in Python

Calc Interpreter An interpreter modeled after a calculator implemented in Python 3. The program currently only supports basic mathematical expressions

1 Oct 17, 2021
Scalene: a high-performance, high-precision CPU, GPU, and memory profiler for Python

Scalene: a high-performance CPU, GPU and memory profiler for Python by Emery Berger, Sam Stern, and Juan Altmayer Pizzorno. Scalene community Slack Ab

PLASMA @ UMass 7k Dec 30, 2022
Scraper pour les offres de stage Tesla et les notes sur Oasis (Polytech Paris-Saclay) sous forme de bot Discord

Scraper pour les offres de stage Tesla et les notes sur Oasis (Polytech Paris-Saclay) sous forme de bot Discord

Alexandre Malfreyt 1 Jan 21, 2022
WGGCommute - Adding Commute Times to WG-Gesucht Listings

WGGCommute - Adding Commute Times to WG-Gesucht Listings This is a barebones implementation of a chrome extension that can be used to add commute time

Jannis 2 Jul 20, 2022
My tools box script for sigma

sigma_python_toolbox My tools box script for sigma purpose My goal is not to replace sigma but to put at disposal the scripts that I think to help me

4 Jun 20, 2022
A program to generate random numbers b/w 0 to 10 using time

random-num-using-time A program to generate random numbers b/w 0 to 10 using time it uses python's in-built module datetime and an equation which retu

Atul Kushwaha 1 Oct 01, 2022