Back to portfolio Wróć do portfolio
Commercial Project · Location-Based Game Projekt komercyjny · Terenowa gra miejska 2026

Kroniki Krakowa

A location-based city game that takes players through a historical story unfolding across real points in Krakow - each step unlocks only when you physically arrive at the right place. Terenowa gra miejska prowadząca graczy przez historyczną fabułę rozpisaną na realne punkty w Krakowie - każdy krok odblokowuje się dopiero po fizycznym dotarciu na wskazane miejsce.

About this project O projekcie

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.

Key features Kluczowe funkcje
  • 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
ArchitectureArchitektura
Frontend
Angular + NgRx + RxJS + PWA
Backend
NestJS + Node.js
Database
PostgreSQL + TypeORM
Payments
Stripe Checkout + Webhooks
Docs & Email
PDF generation + Outbox queue
Infra
Docker + Nginx
Technologies Technologie
Angular NestJS PostgreSQL Stripe NgRx PWA TypeORM Docker
Showcase Prezentacja
Kroniki Krakowa desktop preview
Kroniki Krakowa mobile preview