Sprawdź Knajpę – aplikacja zbudowana w jeden dzień z pomocą AI
Back to Articles

Sprawdź Knajpę – aplikacja zbudowana w jeden dzień z pomocą AI

Skąd pomysł?

Przeglądając Reddita, trafiłem na wątek na r/Polska, w którym użytkownicy dyskutowali o restauracjach, które samodzielnie doliczają napiwek do rachunku. Ktoś zaproponował stworzenie listy takich knajp — co zresztą szybko się rozrosło w wątek pełen nazw, zdjęć paragonów i komentarzy.

Pomyślałem: fajny pomysł, ale lista na Reddicie to nie to samo co narzędzie, z którego ludzie rzeczywiście mogliby korzystać. Reddit dobrze nadaje się do dyskusji, ale słabo do zbierania i filtrowania danych. Potrzebna była aplikacja.

Następnego dnia aplikacja Sprawdź Knajpę już działała. Możesz zobaczyć efekt końcowy na stronie projektu.

Jak działa aplikacja?

Główna idea jest prosta: możesz wyszukać restaurację przez Google Places API, dodać ją do bazy i ocenić według kilku kryteriów. Inne osoby mogą potem głosować na te oceny.

Strona główna z mapą i listą restauracji
Widok główny — mapa z pinami i lista restauracji po lewej stronie.

Po kliknięciu w pin na mapie pojawia się tooltip z podglądem najważniejszych informacji o lokalu.

Podgląd restauracji na mapie
Tooltip nad pinem — szybki podgląd ocen bez wchodzenia w szczegóły.

Każda restauracja ma swój dedykowany widok szczegółowy.

Szczegóły restauracji
Widok szczegółowy restauracji z adresem, zdjęciami i linkiem do Google Maps.

Serce aplikacji to sekcja z głosowaniem na poszczególne cechy lokalu.

Lista opcji do głosowania
Cechy restauracji — każdą można ocenić na „tak" lub „nie".

Co można oceniać?

Wśród dostępnych kryteriów oceny znajdziesz m.in.:

  • Obowiązkowy napiwek – czy restauracja sama dokleja go do rachunku?
  • Darmowa woda do picia – czy dostępna jest woda kranowa bez opłat?
  • I kilka innych cech, które pomagają ocenić, czy warto odwiedzić dane miejsce.

System głosowania — algorytm Wilsona

Zwykłe zliczanie głosów „za” i „przeciw” ma pewien problem: ogromna liczba głosów za może przyćmić nawet kilka bardzo trafnych głosów przeciw. Dlatego siła każdej oceny jest liczona za pomocą dolnej granicy przedziału ufności Wilsona — tego samego algorytmu, który stosuje Reddit do rankingowania komentarzy.

Dzięki temu wyniki są uczciwe nawet przy małej liczbie głosów, a popularność lokalu nie przekłamuje jego oceny.

Jak zapobiegam vote bombingowi?

Żeby zapobiec masowemu podbijaniu lub zaniżaniu wyników przez jedną osobę, każdy głos jest identyfikowany przez hash złożony z:

  • adresu IP,
  • fingerprinta przeglądarki,
  • identyfikatora sesji.

Kluczowe: żadna z tych danych nie jest przechowywana w bazie w oryginalnej postaci — tylko ich hash. Nie wiem, kto głosował, ale system wie, że ktoś już głosował z danego urządzenia i nie pozwoli zagłosować ponownie.

Stack technologiczny

WarstwaTechnologia
FrontendNext.js
Hosting & ServerlessVercel
Baza danych & StorageSupabase
MapyGoogle Maps API
Wyszukiwanie restauracjiGoogle Places API
IDE / Asystent AIAntigravity

Logika zapisująca dane do bazy ukryta jest w funkcjach serverless na Vercelu — frontend nigdy nie ma bezpośredniego dostępu do bazy danych.

Jak powstało tak szybko?

Cały projekt zajął łącznie około 6 godzin pracy w Antigravity — od pomysłu do działającej aplikacji. Przy czym spora część tego czasu poszła na optymalizację kosztów API Google: Places API nie jest tanie, więc trzeba było starannie przemyśleć, które dane cachować w Supabase, a które pobierać na żywo.


Sprawdź Knajpę — marzec 2026. Zbudowane z pomocą Google Antigravity.