Kroniki Krakowa is a commercial location-based city game built as a complete product - gameplay, sales, payment processing, and an admin panel all in one monorepo. Players move through a historical story divided into adventures, chapters, and quests. Each step requires a text or numeric answer, a confirmation, reaching a specific GPS location, or taking a photo. Completed quests award in-game ducats, which can be spent on hints - text, compass, or GPS-guided. Progress unlocks achievements, journal entries, and character rank upgrades. Purchasing an adventure goes through Stripe Checkout with idempotency keys, discount codes reserved during the payment session, webhook handling, refunds, and access revocation. Every paid transaction generates a numbered purchase confirmation PDF and an outbound email via an outbox queue. Legal consents - terms of service and consent to digital content delivery - are versioned and stored alongside the exact text the buyer accepted. The app runs as a PWA, tracking geolocation and compass in real time, with controlled degradation when the API is unreachable.
Kroniki Krakowa to komercyjna terenowa gra miejska zbudowana jako kompletny produkt - rozgrywka, sprzedaż, obsługa płatności i panel administracyjny w jednym monorepozytorium. Gracze przechodzą przez historyczną fabułę podzieloną na przygody, rozdziały i questy. Każdy krok wymaga odpowiedzi tekstowej lub liczbowej, potwierdzenia, dotarcia w konkretne miejsce GPS lub zrobienia zdjęcia. Za ukończone questy gracz dostaje dukaty, które może wydać na podpowiedzi - tekstową, kompasową lub naprowadzającą GPS-em. Postęp odblokowuje osiągnięcia, wpisy w dzienniku i awans rangi postaci. Zakup przygody przechodzi przez Stripe Checkout z kluczem idempotencji, kodami rabatowymi rezerwowanymi na czas sesji płatniczej, obsługą webhooków, zwrotami i odbieraniem dostępu. Każda opłacona transakcja generuje numerowane potwierdzenie zakupu w PDF i wiadomość e-mail przez kolejkę outbox. Zgody - regulamin i zgoda na dostarczenie treści cyfrowej - są wersjonowane i zapisywane wraz z treścią, którą gracz faktycznie zaakceptował. Aplikacja działa jako PWA, śledząc geolokalizację i kompas w czasie rzeczywistym, z kontrolowaną degradacją przy braku zasięgu.
- Location-based gameplay: steps unlock on GPS arrival at real Krakow landmarks
- Multi-format quest steps: text/numeric answers, confirmations, photo capture, geofencing
- In-game economy: ducats earned per quest, spent on text, compass, or GPS hints
- Achievements, journal entries, and character rank progression
- Stripe Checkout with idempotency, discount codes, webhooks, refunds, and access revocation
- Numbered purchase confirmation PDF generated per transaction, delivered via signed link
- Outbound email via outbox queue, versioned legal consents stored at purchase time
- PWA with geolocation, compass, and controlled offline degradation
- Bilingual: language synced across UI, PDFs, and server-generated emails
- Admin panel for adventures, quests, users, discount codes, and transactions
- Rozgrywka terenowa: kroki odblokowują się po dotarciu GPS do realnych miejsc w Krakowie
- Wieloformatowe kroki questów: odpowiedzi tekstowe/liczbowe, potwierdzenia, zdjęcia, geofencing
- Gospodarka w grze: dukaty za questy, wydawane na podpowiedzi tekstowe, kompasowe lub GPS
- Osiągnięcia, wpisy w dzienniku i awans rangi postaci
- Stripe Checkout z idempotencją, kodami rabatowymi, webhookami, zwrotami i odbieraniem dostępu
- Numerowane potwierdzenie zakupu PDF per transakcja, pobierane przez podpisany link
- E-mail przez kolejkę outbox, wersjonowane zgody prawne zapisywane przy zakupie
- PWA z geolokalizacją, kompasem i kontrolowaną degradacją offline
- Dwujęzyczność: język zsynchronizowany w interfejsie, PDF-ach i e-mailach generowanych przez serwer
- Panel administracyjny do przygód, questów, użytkowników, kodów rabatowych i transakcji