Git Product home page Git Product logo

reemployct-data-entry's Introduction

Connecticut Dep. of Labor ReEmployCT Automated Data Entry

Python application Upload Python Package

A Python CLI that automates entry of unemployment benefits data (weekly work search and certification) into Connecticut's DOL ReEmployCT portal. (More information on ReEmployCT)

Weekly job application data from an Excel file that the user actively maintains is accessed and automatically entered into ReEmployCT through a web browser instance controlled by Selenium. The program automates as much of the process as possible, such as login, data entry, page navigation, and secure user credential handling. The user will only need to interact for data entry review/confirmation and for captchas that need to be solved. Once the user finishes any required interaction then the program automatically takes back control. The program will walk you through setting everything up to get you on your way (see Setup first).

Disclaimer:

Users of this project are solely responsible for its use. The author assumes no liability for user actions or outcomes resulting from the use of ReEmployCT, including any automated interactions. Users are required to always exercise caution and review any data that is entered into ReEmployCT.

It is important to note that this project locally handles the user credentials of their ReEmployCT account for convenience. While these credentials are encrypted for security purposes, it is crucial to understand the potential risks associated with the storage of encrypted credentials and the plain-text storage of the encryption key. The author disclaims any responsibility for the security of user credentials and advises users to assess and manage the associated risks accordingly.

Requirements

  • Firefox
  • Excel
  • User job application data must only include U.S. addresses (ReEmployCT requirement)
  • Minimum of 3 work searches (job applications) per week (ReEmployCT requirement)
  • Currently only job applications are supported by this program as data entries into ReEmployCT from the Excel file. (Job applications are defined as "employer contacts" by CT DOL). In other words, a valid work search such as a job fair attendance can not be entered by this program and instead would need to be entered into ReEmployCT manually.

How to use

Video Tutorial

Automated Connecticut Weekly Unemployment Benefits

Install (PyPI)

pip install reemployct-data-entry

Setup (Python)

You first need to get your copy of the Excel file that the program knows how to read job application data from:

from reemployct_data_entry import entry

This will import the module you'll use to run the program, but also provide you with the path to the provided Excel template. Make a copy of workSearch_template.xlsx, save it wherever (and rename it whatever) you want. Open your copy, remove the row that contains the example job application, and start adding your own data (in the same format as the example row).

Tip: You can use CTRL + ; on a cell in Excel to enter the current date. The format is MM/DD/YYYY which is what the program expects.

Run

You can either run from the CLI with:

entry.main()

Or simply click entry.py to run it.

User Credentials

To make the entire process streamlined, you can save your ReEmployCT login credentials when prompted by the CLI. Your credentials are encrypted and stored locally in the project folder in credFile.ini (only the username is left as plaintext). The encryption key is stored in key.key. You also have the option when saving your credentials to set an expiry time so that you will need to save a new set of credentials on a certain date.

Resetting saved credentials

  1. Delete credFile.ini from the project folder
  2. You will be prompted for new credentials when you run entry.main()

reemployct-data-entry's People

Contributors

ariffjeff avatar

Stargazers

 avatar  avatar

Watchers

 avatar

reemployct-data-entry's Issues

Only recognizes 2 entires when there are 3

This is what the terminal is spewing at me:

`Not enough jobs found in excel file to enter for target week!
2 jobs available to enter that aren't duplicates of any existing entries.
You must enter at least 3 more jobs into the excel file for the target week.
If you do not need to look at the existing entries, quit the browser.
Something went wrong when trying to find a page element.

(Job: 1/3) Entering data: Gartner, Inc. - Sales Enablement Specialist
Waiting for page to render id element: j_id_46_label
Something went wrong when trying to find a page element.
Traceback (most recent call last):
File "", line 1, in
File "/opt/homebrew/lib/python3.11/site-packages/reemployct_data_entry/entry.py", line 87, in main
driver = navigate_ReEmployCT.navigate(creds, jobs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/lib/python3.11/site-packages/reemployct_data_entry/navigate_ReEmployCT.py", line 102, in navigate
entry_workSearch.enterWorkSearch(driver, row)
File "/opt/homebrew/lib/python3.11/site-packages/reemployct_data_entry/entry_workSearch.py", line 40, in enterWorkSearch
m_driver.wait_find_element(driver, By.ID, 'j_id_46_label', 120, forceDelay=0.3).click() # Type of Work Search - Dropdown
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'click'`

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.