{"id":15080593,"url":"https://github.com/AntoniosKalattas/Automatic-Gym-Reservation","last_synced_at":"2025-10-04T04:32:38.282Z","repository":{"id":250111889,"uuid":"829525689","full_name":"AntoniosKalattas/UCYGYM_BOT","owner":"AntoniosKalattas","description":"UCY gym reservation auto system","archived":false,"fork":false,"pushed_at":"2024-08-06T20:53:30.000Z","size":423,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-11-22T16:08:03.626Z","etag":null,"topics":["automation","chrome","gym","selenium","ucy","webdriver"],"latest_commit_sha":null,"homepage":"","language":"CSS","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AntoniosKalattas.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-07-16T15:53:43.000Z","updated_at":"2024-08-06T20:53:33.000Z","dependencies_parsed_at":"2024-09-29T17:10:31.743Z","dependency_job_id":null,"html_url":"https://github.com/AntoniosKalattas/UCYGYM_BOT","commit_stats":{"total_commits":33,"total_committers":1,"mean_commits":33.0,"dds":0.0,"last_synced_commit":"c8cbed3d73bcbb4eb8850832e87c3fe0dedadf6f"},"previous_names":["antonioskalattas/ucygym_bot"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AntoniosKalattas%2FUCYGYM_BOT","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AntoniosKalattas%2FUCYGYM_BOT/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AntoniosKalattas%2FUCYGYM_BOT/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AntoniosKalattas%2FUCYGYM_BOT/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AntoniosKalattas","download_url":"https://codeload.github.com/AntoniosKalattas/UCYGYM_BOT/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":235220683,"owners_count":18955070,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["automation","chrome","gym","selenium","ucy","webdriver"],"created_at":"2024-09-25T05:02:21.891Z","updated_at":"2025-10-04T04:32:38.276Z","avatar_url":"https://github.com/AntoniosKalattas.png","language":"CSS","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Automatic-Gym-Reservation\n\n\nAutomatic-Gym-Reservation is an automation tool for reserving gym sessions at my Uni. It uses Python and Selenium WebDriver to interact with the UCY gym reservation system, automating the entire booking process.\n\n## Features\n\n- **Automated Reservations**: Book gym sessions quickly without manual interaction.\n- **Cross-Platform Compatibility**: Works on Windows, macOS, and Linux systems with Python and Selenium.\n- **User-Friendly Setup**: Easily configurable through the provided scripts.\n\n## Prerequisites\n\n- [Python 3.x](https://www.python.org/downloads/)\n- [Google Chrome Browser](https://www.google.com/chrome/)\n- [ChromeDriver](https://sites.google.com/chromium.org/driver/) (compatible with your Chrome version)\n- [Electron](https://www.electronjs.org/) for additional GUI-based features\n\n## Installation\n\n1. **Clone the Repository**:\n\n   ```bash\n   git clone https://github.com/AntoniosKalattas/UCYGYM_BOT.git\n   cd UCYGYM_BOT\n   ```\n\n2. **Install Dependencies**:\n\n   Use the `requirements.txt` file for Python dependencies:\n\n   ```bash\n   pip install -r requirements.txt\n   ```\n\n## Setup\n\n### Set Up ChromeDriver\n\n- Download [ChromeDriver](https://googlechromelabs.github.io/chrome-for-testing/) for your OS.\n- Place it in your system's PATH or specify its location in the script.\n\n### Copy the path to chrome profile\n\n- enter `chrome://version` in chrome url\n- copy the location of `profile path` inside the `chromeProfilePath.txt` file\n\n### Email Setup (optional)\n\n1.  **Enable 2-Step Verification:** If you haven't already, you'll need to enable 2-Step Verification on your Google account. You can do that here: [https://myaccount.google.com/security](https://myaccount.google.com/security)\n\n2.  **Generate an App Password:**\n    *   Go to this page: [https://myaccount.google.com/apppasswords](https://myaccount.google.com/apppasswords)\n    *   When prompted, select \"Other (Custom name)\" for the app and give it a name like \"Gym Reservation\".\n    *   Click \"Generate\".\n\n3.  **Use the App Password:**\n    *   Google will give you a 16-digit password. Copy this password.\n    *   Create a `.env` file in the root of the project.\n    *   Add the following lines to the `.env` file, replacing `\u003cyour_email\u003e` and `\u003cyour_app_password\u003e` with your actual email and the 16-digit App Password you just generated:\n        ```\n        EMAIL_USER=\"\u003cyour_email\u003e\"\n        EMAIL_PASSWORD=\"\u003cyour_app_password\u003e\"\n        ```\n\n## Usage\n\n1.  **Run the self-test script** to ensure that everything is set up correctly:\n    ```bash\n    python selfTest.py\n    ```\n2.  **Run the main script** to start the automatic reservation process:\n    ```bash\n    python auto.py\n    ```\n\n    \n# How to setup automatic reservation\n   - Choose the desired time of the reservation in `auto.py`\n   - In your LINUX server run the command\n```bash\nnohup python3 auto.py \u0026\n```\n\n## Files and Structure\n\n- **`autoReservation.py`**: Main script for automating reservations.\n- **`firstTime.py`**: Script for initial configuration.\n- **`package.json`**: Configuration file for Electron integration.\n- **`requirements.txt`**: Python dependencies for Selenium and other packages.\n\n## Troubleshooting\n\n- **Selenium Errors**: Ensure that ChromeDriver matches your Chrome browser version.\n- **Element Not Found**: Verify that the UCY reservation system hasn't changed its structure. Update the selectors in the scripts if necessary.\n- **Node.js Issues**: Ensure Node.js is installed to run Electron.\n\n# UI Version (not Supported)\n\n   Ensure Electron dependencies are installed via npm(Only for UI perposes):\n\n   ```bash\n   npm install\n   ```\n\n### Start with Electron (Optional)\n\nFor a GUI-based experience, launch the Electron app:\n\n```bash\nnpm start\n```\n\n\n## Contributing\n\nContributions are welcome! Feel free to fork the repository, submit a pull request, or open an issue.\n\n## License\n\nThis project is licensed under the ISC License. See the `LICENSE` file for details.\n\n## Author\n\nCreated by [Antonios Kalattas](https://github.com/AntoniosKalattas).\n\n---\n![My Project Logo](https://github.com/AntoniosKalattas/UCYGYM_BOT/blob/main/img/mainScreen.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAntoniosKalattas%2FAutomatic-Gym-Reservation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FAntoniosKalattas%2FAutomatic-Gym-Reservation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAntoniosKalattas%2FAutomatic-Gym-Reservation/lists"}