Posted 5 Hours Ago Job ID: 2110920 21 quotes received

Cross-platform Skedda Auto-Booker App

Fixed Price$250-$500
Quotes (21)  ·  Premium Quotes (1)  ·  Invited (0)  ·  Hired (0)

  Send before: October 18, 2025

Send a Quote

Project Overview

Build a small, reliable app that automatically:


  1. Logs in to my Skedda venue (https://acrosports.skedda.com/booking)

  2. Navigates to the correct date

  3. Selects Tennis Court 1 and time 5:00 PM → 7:00 PM

  4. Fires “Confirm booking” at an exact target time (usually 12:00:00 AM, but must be configurable for testing like 10:45:00 AM)


This is a paid engagement; I want an end-to-end solution (not just a partial macro).


Platform & Tech (flexible)


  • Prefer desktop app (macOS preferred; Windows acceptable; cross-platform ideal).

  • Acceptable stacks: Playwright (Node/Python), Swift + WKWebView (macOS), .NET + WebView2 (Windows), Electron/Tauri wrapper, or similar.

  • Must be dom-selector based (no image-only clicking).


Functional Requirements


1) Authentication


  • Automatic login to acrosports.skedda.com with stored credentials.

  • Store secrets securely (macOS Keychain or Windows Credential Manager/DPAPI). No plaintext in code.

  • Handle common flows: username/password + possible email OTP (if Skedda uses it; expose a simple prompt/callback if needed).

  • Persist session cookies where possible to avoid re-login each run.


2) Navigation & Selection


  • Date handling: support ?date=YYYY-MM-DD and/or a target_offset_days setting (e.g., 0=today, 7=+7 days).

  • Resource: “Tennis Court 1” (configurable).

  • Time: 5:00 PM → 7:00 PM (configurable; support 12h/24h labels).

  • Open the booking dialog and reach the screen where the green “Confirm booking” button is visible (see screenshot I’ll provide).


3) Exact-Time Firing


  • Hit the first click ≤250 ms after the configured target time (HH:MM:SS local time).

  • Then rapid retries (50–150 ms) until the button is enabled and the click succeeds or timeout (10–15 s, configurable).

  • Emit real pointer/mouse events (not only .click()), scroll into view, ensure visibility.

  • Detect success (toast/banner/URL/state) and log it.


4) Scheduling & Modes


  • Schedule & Fire mode: the app launches at the target time (integrate with macOS launchd / Windows Task Scheduler; or built-in scheduler).

  • Prep & Wait mode: I can open the app a minute before; it waits until the exact second and fires.

  • Allow test times (e.g., 10:45:00) without midnight waiting.


5) Resilience & UX


  • Lightweight logs (timestamps): login→date select→resource/time select→button state→click→success/fail.

  • Optional refresh right after unlock if DOM hasn’t enabled the button yet.

  • Basic GUI (or CLI with config file) to set: venue URL, credentials reference, target time, offset days, court, start/end time, retry window.

  • Desktop notification / sound on success (optional).

  • Keep device awake while waiting (optional toggle).


6) Security & Compliance


  • Credentials stored via OS secure storage. No hard-coded secrets.

  • Respect Skedda/Venue Terms of Service (this is for my legitimate personal booking).

  • No scraping of payment info; card is already on file.


Deliverables


  • App binary + source code (unobfuscated) + build scripts.

  • README with install, configuration, and scheduling instructions (Shortcuts/launchd or Task Scheduler).

  • Short demo video showing a test run (e.g., auto-login → select Court 1 5–7 PM → fire at 10:45 AM).

  • A short maintenance note (how to update selectors if the DOM changes).


Acceptance Criteria


  • From a cold start (not logged in), the app logs in, navigates, selects Court 1 (5–7 PM), and clicks “Confirm booking” at the configured second.

  • Timing: first click attempt ≤250 ms after target time; continues retries until success or configured timeout.

  • Stability: no crashes, no blocking OS popups; clear logs.

  • Security: credentials stored only in secure storage; no plaintext.


... Show more
George S Philippines