Earn 4,500 ($45.00)
Implementation and Deployment of an Automated Tennis Court Booking System
Bounty Description
All the code needed for this project is ready in the following GitHub repository. We just need to implement it in Replit. The existing code base written in Python, CSS, and JavaScript is provided in the GitHub repository: https://github.com/sjstone2838/booking_bot/tree/master.
Problem Description
Implement and deploy an automated system that interacts with the San Francisco Parks & Rec's online tennis court booking system to reserve tennis courts at specified times each week. The system should be able to handle recurring bookings and send email confirmations. The system must interact programmatically via GUI as the SF court booking system does not provide an API.
Acceptance Criteria
- Successfully implement the provided code base from the GitHub repository to automate interactions with the SF Parks & Rec's online tennis court booking system.
- The system should be able to handle recurring bookings and reserve the same court at the same time each week.
- The system should send an email confirmation upon successful booking or an email explaining the reasons if the booking fails.
- The system should be able to interact with the booking system programmatically via GUI as it lacks an API.
- Deploy the system on Replit.
Technical Details
The existing code base written in Python, CSS, and JavaScript is provided in the GitHub repository: https://github.com/sjstone2838/booking_bot/tree/master. It involves technologies such as Selenium for web scraping, Django for web development, and Heroku for deployment.
The system consists of the following main components:
- WebDriver: This is used to interact with the booking system via GUI.
- booking_bot: Contains the main functionality of the bot, including screenshotting and email capabilities.
- media: Related to the screenshotting and emailing functionalities.
- staticfiles/admin: Contains static files for Heroku.
- tennis: Contains scripts to update xpaths.
- Procfile: Used for Heroku setup【15†source】.