Przejdź do treści
sapiqa

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
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 →

APLIKACJE (PWA)BACKEND · DROPLETINTEGRACJEKlientrezerwacje, pakietyTrenerkapanel + asystentFirma (HR)konto firmoweFastAPIrezerwacje, B2B, płatnościAvailabilitykorty, kalendarz, pogodaSeleniumauto-rezerwacja kortuAssistant coretool-use, audytPostgreSQLklienci, umowy, pakietySchedulerprzypomnienia, fakturykluby.org3 kluby tenisoweGoogle Calendargrafik trenerkiStripepłatnościFakturowniafaktury VATfirma.deve-podpis umówClaudeasystenciResendmaile PL/ENSupabase Authlogowanie kodem

Przepływy

Od ceny na żywo do kortu zarezerwowanego w systemie klubu.

Krok 1 z 8

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.

Instrukcja dla firm
Kreator i cena na żywo

Dane na ekranach są fikcyjne.

Stos

PythonFastAPISQLAlchemyPostgreSQLReactViteTailwindi18nextSeleniumStripeFakturowniafirma.devGoogle CalendarGoogle PlacesSupabase AuthResendClaude

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.

Umów rozmowę