← wróć do projektów
aidziała
System rezerwacji z AI dla małej firmy usługowej
#ai#automation#self-hosted
Narzędzie do zarządzania klientami i kalendarzem, które zbudowałem dla kogoś bliskiego, kto prowadzi jednoosobową firmę usługową — wprowadzanie danych językiem naturalnym zamiast formularzy, na bazie samodzielnie hostowanego stacku.
Infrastruktura i niezawodność
- ›To, co działa dziś, nie zaczęło się na Vercel — pierwsza wersja to samodzielnie hostowany stack FastAPI + Postgres + Redis w Docker Compose, wystawiony przez tunel ngrok z komputera w domu, więc cały system rezerwacji padał, gdy tylko ta maszyna była wyłączona albo zabrakło prądu.
- ›Przepisałem to jako pojedynczą aplikację Next.js (API routes i frontend razem) hostowaną na Vercel z Supabase jako zarządzaną bazą danych, żeby dostępność przestała zależeć od domowego peceta — lokalny model czatu Ollama jest teraz jedynym elementem wciąż związanym z tą maszyną, wystawionym przez własny zabezpieczony tunel, ten sam wzorzec co w LifeOS.
- ›To przepisanie wymagało też przerobienia auth: zamiast ręcznie napisanego flow OAuth (surowe wywołania httpx plus ciasteczka podpisywane przez itsdangerous) wszedł Auth.js — ten sam model zaufania oparty na allow-liście e-maili i ta sama nazwa zmiennej środowiskowej dla ciągłości, ale dużo mniej kodu auth do utrzymania.
- ›Pipeline w GitHub Actions odpala zestaw testów backendu na jednorazowej bazie Postgres przy każdym pushu, bo bug tutaj wpływa na prawdziwy dochód kogoś innego.
Funkcje biznesowe
- ›Dwukierunkowe SMS-y z przypomnieniami przez samodzielnie hostowaną bramkę działającą na karcie SIM w prawdziwym telefonie Android, a nie płatne API rozliczane za wiadomość.
- ›Asystent AI oparty na lokalnym modelu, żeby dane klientów nigdy nie wychodziły poza maszynę — trudniejsze niż oczekiwałem było uzyskanie tool-callingu wystarczająco pewnego, by ufać mu przy prawdziwych rezerwacjach.
- ›Poza rezerwacjami — dokumenty klientki z podpisem na canvasie zapisywanym jako wygenerowany PDF oraz widok finansów biznesowych (przychody, koszty, sumy okresowe) całkowicie osobny od prywatnego budżetu właścicielki.
- ›Przedpłacone karnety i vouchery rozliczane stopniowo przy kolejnych wizytach oraz log zdjęć przed/po dla każdej klientki — oba w prywatnych bucketach Supabase, nigdy publiczne.
- ›Ewidencja sprzedaży produktów — katalog ze stanami magazynowymi i wpis dla każdej sprzedaży zapisujący koszt z chwili sprzedaży, żeby marża zostawała dokładna nawet po późniejszej zmianie cen u dostawcy.
Dane i zaufanie
- ›Drugie środowisko Supabase + Vercel, zasiane realistycznymi, ale fikcyjnymi danymi po polsku, dzięki czemu ten opis mógł powstać z prawdziwymi zrzutami ekranu bez ujawniania danych żadnej prawdziwej klientki — jego migracje schematu stosują się automatycznie w CI przy każdym mergu, celowo osobno od ręcznego, recenzowanego wdrożenia na produkcji.
Zrzuty ekranu
Desktop
Telefon
Budujesz coś dla kogoś, kogo dochód od tego zależy? Chętnie posłucham.
kontakt →