← Joburi

Build a application for sports booking

Buget: $15000.0 FIXED / ⭐ 0.00 (0) Italy

ios, android, mobile-app-development

SportBook — Technical Brief for Developer Project Overview SportBook is an Italian sports court booking platform for tennis and padel — think Airbnb for sports courts in Italy. The platform connects players who want to book courts with sports facility managers. Live app: sportbook.space Tech stack: React (Lovable.dev) + Supabase + Stripe The MVP is already live and functional. We are looking for an experienced developer to: Fix existing bugs and improve the current web app Build a native iOS and Android app (React Native) Current State of the App The web app is already live at sportbook.space and includes: ✅ Player booking flow (search, court detail, time slot selection, checkout) ✅ Manager dashboard (court management, availability, earnings) ✅ Admin panel (facilities, bookings, users management) ✅ Interactive map with Leaflet.js ✅ Multilingual support (IT, EN, FR, DE, ES) ✅ Stripe payment integration (partial) ✅ Supabase authentication and database ✅ Photo upload for courts and facilities ✅ Real-time availability management Phase 1 — Bug Fixes & Polish (Web App) Priority fixes needed: 1. Pricing bug Court prices set by managers are not always displaying correctly to players Need to ensure price_per_hour from Supabase courts table is fetched and displayed correctly on all screens 2. Text contrast Glass/dark UI has poor text contrast on several pages Toast notifications text is invisible (white on white background) Need global CSS fix for all text elements on dark backgrounds 3. Navbar behavior Implement hide-on-scroll-down, show-on-scroll-up behavior Smooth transition with transform: translateY(-100%) 4. Booking flow "Conferma e paga" button must be disabled until player selects both time slot AND duration Button must activate only after all required fields are completed 5. Stripe Connect Complete Stripe Connect integration for manager payouts 90% to manager, 10% platform commission Weekly automatic payouts every Friday 6. Authentication Public pages (homepage, search, court detail, map) must be accessible without login Login modal must appear only when player clicks "Prenota" After login, redirect back to the court they were viewing 7. Role-based access Ensure strict separation: players cannot access manager pages, managers cannot access admin panel Supabase RLS policies must be correctly configured Phase 2 — Native App (iOS & Android) After Phase 1 is complete, build a React Native app with the same features as the web app. Core features for native app: Player side: Onboarding and registration Court search with GPS location Interactive map (React Native Maps) Court detail with photo gallery Time slot booking flow In-app payments (Stripe) Push notifications for booking confirmations and reminders My bookings (upcoming and past) Profile management Manager side: Manager dashboard Court and availability management Real-time booking notifications Earnings overview Technical requirements: React Native (Expo or bare workflow) Supabase for backend (same database as web app) Stripe React Native SDK for payments React Native Maps for interactive map Push notifications via Expo Notifications or Firebase Deep linking support App Store and Google Play deployment Tech Stack LayerTechnologyWeb frontendReact (Lovable.dev generated)Native appReact NativeBackend/DatabaseSupabase (PostgreSQL)AuthenticationSupabase AuthPaymentsStripe + Stripe ConnectMaps (web)Leaflet.jsMaps (native)React Native MapsStorageSupabase StorageNotificationsFirebase or ExpoHostingLovable / Vercel Database Structure (Supabase) Main tables already created: users — id, name, email, role (player/manager/admin), phone facilities — id, manager_id, name, city, address, sport, photos, status courts — id, facility_id, name, sport, surface, price_per_hour, lighting, status availability — id, court_id, date, start_time, end_time, is_booked bookings — id, player_id, court_id, date, start_time, end_time, total_price, commission, status payouts — id, manager_id, amount, period_start, period_end, status Timeline & Budget Phase 1 (Bug fixes + Polish): Timeline: 2–3 weeks Budget: €1.500 – €3.000 Phase 2 (React Native app): Timeline: 6–8 weeks Budget: €8.000 – €15.000 Total budget available: up to €18.000 What We Are Looking For Must have: Strong experience with React and/or React Native Experience with Supabase (auth, database, RLS policies, storage) Experience integrating Stripe (including Stripe Connect for marketplace payouts) Has previously built booking or marketplace apps (please share examples) Clear communication in English or Italian Available for a 30-minute video call before starting Can start within 1–2 weeks Nice to have: Experience publishing apps on App Store and Google Play Familiarity with Lovable.dev or similar no-code/AI tools Based in Italy or familiar with Italian market How to Apply Please include in your proposal: Portfolio: Links to 2–3 apps you have built — especially booking or marketplace apps Supabase experience: Have you integrated Stripe Connect with Supabase before? App Store experience: Have you published React Native apps on App Store and Google Play? Timeline: Your estimated breakdown by week for both phases Quote: Fixed price for Phase 1 and Phase 2 separately About SportBook SportBook is an early-stage Italian startup founded in 2026. We already have sports facilities interested in joining the platform and are presenting to 3 new clubs in Florence in September 2026. This is an exciting opportunity to join a growing project from the ground floor with potential for long-term collaboration as the platform scales across Italy.
Deschide pe Upwork