Python Selenium-Based Hour Logger for ASES
This tool is designed to streamline the process of booking work hours for employees using the ASES tool from ATOSS. It is optimized for websites in German.
- Time-Saving Automation: The tool automates the process of logging hours, aiming to save employees valuable time.
- Intelligent Booking: It excludes vacation days and weekends from the booking process, ensuring hours are only logged on available workdays.
- Error Prevention: The script avoids duplicating entries on days that have already been booked, minimizing errors in the logging process.
Run the script, taking note of the following considerations:
- Language Assumption: The tool assumes the website language is German. Adjust if necessary.
- Post-Script Verification: After running the script, it is essential for the employee to verify the accuracy of the logged hours, make any necessary adjustments, and manually click on the SAVE button (or activate the
AUTOSAVEsetting at your own risk).
By leveraging this tool, employees can enhance efficiency in the hours booking process while maintaining control over the final submission. Feel free to customize settings and provide feedback for further improvements.
To run the script, follow these steps:
-
Install the required dependencies:
pip3 install -r requirements.txt
-
Create your settings file as
settings.json. You can usesettings.json.exampleas a template. Adjust the following setting parameters:Key Description Default ASES_URLThe URL to access the ASES webpage of your employer your_ases_urlUSE_ASES_CREDENTIALSBoolean describing if ASES credentials are to be used falseASES_USERNAMEUsername to your ASES account your_ases_usernameASES_PASSWORDPassword to your ASES account your_ases_passwordLOGIN_DROP_DOWN_INDEXIndex of the item to be selected in the login page drop down menu 5AUTOSAVEFor automatically saving your changes after the script run set this to true. Do this at your own riskfalseTIME_SLOTSDefine the time slots you want to log. These assume an 8-hour shift with a 1-hour lunch break each day. On Fridays only 7 hours are booked. You can adjust this at will see settings.json.examplefileUSE_KEEPASS_CREDENTIALSBoolean describing if KeePass credentials are to be used falseKEEPASS_DATABASE_FILE_PATHPath to your KeePass database .kdbx file your_keepass_database_file_pathKEEPASS_ENTRY_TITLETitle of the KeePass entry containing the user credentials for ASES your_keepass_ases_entry_titleKEEPASS_KEY_FILEPath to your KeePass key file (optional) your_keepass_key_fileBUFFER_TIMEThe time in seconds that passes between each browser action. We need a bit of time between actions for performance reasons. Only adjust if needed, for example, if your internet connection is slow 0.3FINAL_WAIT_IN_SECThe time in seconds that the browser window will remain open after completing all booking actions 60VERBOSESet the output of log messages for the developer mode to display more information during processing true -
Connect to your employers VPN if necessary.
-
Run the script. You can do this by giving the username and password as command line arguments:
python3 hour_logger.py "ASES_USERNAME" "ASES_PASSWORD"
Or by using the ASES credentials or credentials stored in your KeePass. Be sure to configure the setting parameters
USE_ASES_CREDENTIALS,ASES_USERNAME,ASES_PASSWORD,USE_KEEPASS_CREDENTIALS,KEEPASS_DATABASE_FILE_PATHandKEEPASS_ENTRY_TITLEaccordingly. After this, run the following command:python3 hour_logger.py
You will be asked to enter then the KeePass master password.
-
See the magic happen 🧙.
-
Ensure everything was logged correctly and manually click on the "SAVE" button (or activate the
AUTOSAVEsetting at your own risk).
Feel free to customize the settings to match your specific needs. If you encounter any issues, consider adjusting the waiting times or reaching out for support. Happy logging!
