Platforma · automatyzacja · B2B
Jednoosobowa firma trenerska z systemem, który rezerwuje korty, rozlicza firmy i wystawia faktury
Ceny i wolne korty z trzech klubów na żywo, automatyczna rezerwacja w systemie klubu, pakiety, vouchery, konta firmowe z umowami i rozliczaniem frekwencji, a do tego dwóch asystentów AI: dla trenerki i dla klienta.
- Status
- Na produkcji, codziennie używany
- Okres
- kwiecień – listopad 2026
- Na żywo
- radtenniscourt.com ↗
- kluby z dostępnością kortów na żywo
- 3kluby z dostępnością kortów na żywo
- endpointów API
- 112endpointów API
- asystentów AI na wspólnym rdzeniu
- 2asystentów AI na wspólnym rdzeniu
- commity, PL i EN
- 422commity, PL i EN
Problem
Trenerka prowadzi zajęcia w trzech klubach i każdy kort rezerwuje ręcznie w zewnętrznym systemie. Klienci pytają o terminy na WhatsAppie, firmy chcą umów, faktur i rozliczenia za faktyczną obecność pracowników. Wszystko to robi jedna osoba między treningami.
Co zbudowałem
- Silnik dostępności: wolne korty z trzech klubów (kluby.org) zestawione z kalendarzem trenerki, ceny sezonowe lato/zima, pogoda przy slocie i cache z unieważnianiem.
- Automatyczna rezerwacja kortu w systemie klubu przez Selenium (z trybem dry-run). Kiedy slot już zniknął, trenerka dostaje maila, a pieniądze nie wracają automatycznie, bo decyzję podejmuje człowiek.
- Płatności Stripe, pakiety godzin, portfel z kredytem, vouchery z dowolną kwotą i dedykacją (generowana grafika), rabaty, rezerwacje grupowe i wypożyczenie rakiet.
- Konta firmowe (B2B): firma składa ofertę w kreatorze z ceną na żywo, trenerka potwierdza termin z klubem, potem umowa do podpisu, frekwencja z QR i miesięczna faktura w Fakturowni.
- Dwóch asystentów (trenerka i klient) na jednym rdzeniu tool-use z audytem każdej tury i kosztu. Asystent trenerki sprawdza korty we wszystkich klubach, grafik i pakiety, rezerwuje i blokuje terminy.
- Wzrost: generator grafik na Instagram Stories z linkami UTM prowadzącymi na konkretny slot, atrybucja kanału sprzedaży i analityka Cloudflare. W projektowaniu: nagrania treningów cięte automatycznie na klipy (głos trenerki + dźwięk uderzenia).
Architektura
Najciekawsze jest to, co pod spodem
Wybierz przepływ, żeby zobaczyć, jak dane idą przez system. Kliknij element, żeby przeczytać szczegóły.
← przesuń diagram →
Przepływy
Od ceny na żywo do kortu zarezerwowanego w systemie klubu.
Kliknij element diagramu, żeby zobaczyć szczegóły.
- sprzęt
- brzeg / sieć
- usługa
- dane
- AI
- zewnętrzne
- ludzie / aplikacje
- radio
- tunel
- HTTPS
- lokalnie
- zdarzenie
Opis wszystkich elementów
- Klient · rezerwacje, pakiety
- Wybiera kort, godzinę i klub z cenami na żywo, płaci, ma portfel, pakiety, vouchery i asystenta.
- Trenerka · panel + asystent
- Grafik, klienci, firmy, frekwencja z QR, faktury, blokady terminów i asystent, który robi to za nią na polecenie.
- Firma (HR) · konto firmowe
- Osobne, izolowane konto: kreator oferty, pracownicy, obecność, rozliczenie. Pracownicy dostają zwykłe konta z zakładką „Firmowe”.
- FastAPI · rezerwacje, B2B, płatności
- Jedna funkcja liczy cenę i w podglądzie, i przy zapisie, więc cena nigdy się nie rozjeżdża. Maile i błędy w PL i EN.
- Availability · korty, kalendarz, pogoda
- Wolne sloty z klubów, filtrowane kalendarzem trenerki i blokadami, z cennikiem sezonowym i pogodą.
- Selenium · auto-rezerwacja kortu
- Loguje się do systemu klubu i przechodzi formularz rezerwacji jak człowiek. Tryb dry-run zatrzymuje się przed ostatnim kliknięciem.
- Assistant core · tool-use, audyt
- Wspólny rdzeń pętli tool-use dla obu asystentów: rundy narzędzi, wykonanie, zapis tury z tokenami i kosztem.
- PostgreSQL · klienci, umowy, pakiety
- Klienci, rezerwacje, pakiety, portfele, firmy, kontrakty, obecności i historia asystentów.
- Scheduler · przypomnienia, faktury
- Przypomnienia dla firm, rozliczenia miesięczne, czyszczenie kalendarza.
- kluby.org · 3 kluby tenisowe
- Zewnętrzny system klubów bez publicznego API: dostępność z jego endpointu AJAX, rezerwacja przez formularz.
- Google Calendar · grafik trenerki
- Każda rezerwacja i blok firmowy trafia do kalendarza trenerki.
- Stripe · płatności
- Checkout dla rezerwacji, pakietów i voucherów, portal klienta, webhooki.
- Fakturownia · faktury VAT
- Faktury dla firm na podstawie faktycznej frekwencji, wysyłane automatycznie.
- firma.dev · e-podpis umów
- Podpis umowy B2B. Etap 2: dokument generowany i wysyłany sam po potwierdzeniu terminu w klubie.
- Claude · asystenci
- Model z narzędziami domeny: korty we wszystkich klubach, grafik, status pakietu, rezerwacja, blokady.
- Resend · maile PL/EN
- Potwierdzenia, przypomnienia, vouchery i alarmy dla trenerki, w języku klienta.
- Supabase Auth · logowanie kodem
- Logowanie kodem z maila, bez haseł. Ten sam mechanizm dla klientów, trenerki i firm.
Decyzje, które robią różnicę
Dwa systemy obok siebie, nie jeden rozdmuchany
B2B to sezonowe bloki wykupione z góry, nie pojedyncze rezerwacje. Ma własny model danych i dzieli z resztą tylko konta, maile i cennik.
Robot, ale z człowiekiem przy porażce
Automatyzacja bez API ma swoje ryzyko. Gdy slot zniknie, system nie zwraca pieniędzy sam, tylko woła trenerkę, która negocjuje z klubem.
Jedna funkcja ceny
Podgląd i zapis liczy ta sama funkcja, więc firma nigdy nie zobaczy innej kwoty niż ta na umowie.
i18n do ostatniego maila
Dwujęzyczność w UI, błędach API, mailach, Stripe Checkout i asystentach, sprawdzona audytem pominiętych tekstów.
Jak to działa
Trzy panele, jeden kontrakt
Firma kupuje sezon tenisa dla pracowników, trenerka go prowadzi, pracownicy się zgłaszają i płacą swój udział. Każdy ma swój panel i swoją instrukcję na stronie klienta.
Od założenia konta do pierwszej faktury: dwanaście kroków, dokładnie to, co widać na ekranie.





Od potwierdzenia terminu w klubie do zameldowania pracowników na zajęciach, w jednym panelu.





Firma opłaca część treningów: tak pracownik się zgłasza, płaci swój udział i melduje na zajęciach.





Dane na ekranach są fikcyjne.
Stos
Linie oferty
Masz proces, który powinien działać sam?
30 minut, bez opłat. Powiem, czy to ma sens, jak bym to zbudował i ile kosztowałoby utrzymanie.