Build a application for sports booking
Orçamento: $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.
Abrir na Upwork