This is a Python script utilizing gspread API to streamline/automate tasks for the Secretary of the American Red Cross Club at UCI. This program was developed in 2020, where it was utilized during the 2020-2021 year saving hours of time per use. Currently, this program is being used by the new Secretary of the American Red Cross Club at UCI of 2022-2023 and will be intended for continued use for future board members.
- 2020-2021
- 2021-2022
- 2022-2023
- UI launches when the program is run, prompting the user to enter in details such as the Google spreadsheet's name, which column to modify in the spreadsheet, and names of members that attended the meeting
- The member names that the user enters into the textbox gets written to a text file called "input.txt"
- Once the text file has been created and the other fields have been filled, the user is able to submit the changes to their Google Spreadsheet by pressing "Submit Changes"
- The program parses the information and finds the correct cells on the spreadsheet and fills it with the user's defined value for the points
- Authenticating API on https://developers.google.com/
- client_secret.json file
- gspread, oauth2client, and ttkthemes libraries
- Python
- Visual Studio Code
- Add the Google Cloud API user to the Google Spreadsheet for visibility
pip install gspread
pip install oauth2client
pip install ttkthemes
pip install pyinstaller
pyinstaller.exe --icon=media/rcc_logo.ico -w --clean --onefile main.py config.py fileIO.py tkinterWidgets.py client_secret.json
The following additional features are in-progress:
N/A
The following bugs/planned implementation have been addressed:
- [ x ] FIXED Try and catch needs to be implemented, and loop needs to continue going if name is not found
- [ x ] Try and catch does not exist for opening file
- [ x ] Name has to be exact spelling
- [ x ] Name has to have exact same format (ex. Name cannot be all lowercase or uppercase)
- [ x ] Create a friendly GUI (Tkinter) and/or a BATCH File
- [ x ] Create an output file for redirecting errors
- [ x ] Clear textbox when submitting names for input.txt
- [ x ] onUpdate for textbox
- [ x ] Use Column Letter instead of Column #
- [ x ] Change Text on Tkinter on successful submit
- [ x ] Provide an error message if the text file is empty
Here is a sample of the current prototype of the application