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
AUTOSAVE
setting 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.example
as a template. Adjust the following setting parameters:Key Description Default ASES_URL
The URL to access the ASES webpage of your employer your_ases_url
USE_ASES_CREDENTIALS
Boolean describing if ASES credentials are to be used false
ASES_USERNAME
Username to your ASES account your_ases_username
ASES_PASSWORD
Password to your ASES account your_ases_password
LOGIN_DROP_DOWN_INDEX
Index of the item to be selected in the login page drop down menu 5
AUTOSAVE
For automatically saving your changes after the script run set this to true
. Do this at your own riskfalse
TIME_SLOTS
Define 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.example
fileUSE_KEEPASS_CREDENTIALS
Boolean describing if KeePass credentials are to be used false
KEEPASS_DATABASE_FILE_PATH
Path to your KeePass database .kdbx file your_keepass_database_file_path
KEEPASS_ENTRY_TITLE
Title of the KeePass entry containing the user credentials for ASES your_keepass_ases_entry_title
BUFFER_TIME
The 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.3
FINAL_WAIT_IN_SEC
The time in seconds that the browser window will remain open after completing all booking actions 60
VERBOSE
Set 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_PATH
andKEEPASS_ENTRY_TITLE
accordingly. 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
AUTOSAVE
setting 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!