Kompletná mobilná PWA aplikácia pre Tag Game s Django backendom, React frontendom, real-time WebSocket komunikáciou a push notifikáciami.
- 📱 Mobile-first PWA - Inštalovateľná na iOS/Android
- 🔔 Push notifikácie - Okamžité notifikácie o nových tagoch
- 🏆 Live leaderboard - Real-time rebríček s bodmi
- 🎯 Tag system - Jednoduché tagnutie hráčov s fotkami
- 📊 Štatistiky - Detailné štatistiky hráčov
- 🏅 Achievements - Špeciálne ocenenia
- ⏱️ Countdown - Odpočítavanie do konca hry
- ⚙️ Kompletné nastavenia - Všetky parametre hry konfigurovateľné
- 👥 Správa používateľov - Schvaľovanie nových hráčov
- 📢 Notifikácie - Posielanie custom notifikácií
- 🎲 Bodovací systém - Nastaviteľné body, penalizácie, bonusy
- 🎁 Ceny - Konfigurovateľné výhry a antivýhry
- 📅 Časové obdobie - Nastavenie začiatku a konca hry
- Docker & Docker Compose nainštalované
- Git
# 1. Klonuj projekt (alebo už máš súbory)
cd /home/tomas-magula/Documents/Tests/tag
# 2. Vytvor .env súbory
cp backend/.env.example backend/.env
cp frontend/.env.example frontend/.env
# 3. Uprav .env súbory (aspoň ADMIN_USERNAME a ADMIN_PASSWORD v backend/.env)
# 4. Spusti všetko
docker-compose up -d
# 5. Vytvor admin usera
docker-compose exec backend python manage.py createsuperuser
# 6. Generuj VAPID klúče pre push notifikácie
docker-compose exec backend python manage.py shell -c "
from pywebpush import webpush
import base64
vapid_keys = webpush.generate_vapid_keys()
print('VAPID_PUBLIC_KEY=' + vapid_keys['public_key'])
print('VAPID_PRIVATE_KEY=' + vapid_keys['private_key'])
"
# 7. Pridaj VAPID klúče do backend/.env a frontend/.env
# 8. Reštartuj
docker-compose restart- Frontend: http://localhost:5173
- Backend API: http://localhost:8000/api
- Django Admin: http://localhost:8000/admin
cd backend
# Vytvor virtuálne prostredie
python -m venv venv
source venv/bin/activate # Linux/Mac
# alebo
venv\Scripts\activate # Windows
# Inštaluj dependencies
pip install -r requirements.txt
# Vytvor .env súbor
cp .env.example .env
# Uprav .env (databáza, admin credentials, atď.)
# Spusti migrácie
python manage.py migrate
# Vytvor admin usera
python manage.py createsuperuser
# Zbieraj statické súbory
python manage.py collectstatic
# Spusti server (development)
python manage.py runserver
# V samostatných termináloch spusti:
celery -A config worker -l info
celery -A config beat -l infocd frontend
# Inštaluj dependencies
npm install
# Vytvor .env súbor
cp .env.example .env
# Uprav VITE_API_URL a VITE_WS_URL
# Spusti dev server
npm run dev
# Pre produkciu:
npm run build
npm run previewSECRET_KEY=your-secret-key
DEBUG=False
ALLOWED_HOSTS=localhost,127.0.0.1,your-domain.com
DB_NAME=tag_game
DB_USER=postgres
DB_PASSWORD=your-db-password
DB_HOST=db
DB_PORT=5432
REDIS_HOST=redis
REDIS_PORT=6379
ADMIN_USERNAME=admin
ADMIN_PASSWORD=SecurePassword123!
ADMIN_EMAIL=admin@taggame.com
VAPID_PUBLIC_KEY=your-public-key
VAPID_PRIVATE_KEY=your-private-keyVITE_API_URL=http://localhost:8000/api
VITE_WS_URL=ws://localhost:8000/ws/game/
VITE_VAPID_PUBLIC_KEY=your-public-key- Tagnutie hráča: Body podľa rankingu (50-40-30-20-10-5)
- Penalizácia: -5 bodov za každú hodinu držania tagu
- Bonus: +35 bodov za izolovane netagnuté dni
- 🥇 Best Player - Najviac bodov
- 💩 Worst Player - Najmenej bodov (anti-cena)
- ⚡ Fastest Player - Najmenej času držal tag
- 🐌 Slowest Player - Najviac času držal tag
- 🚀 Fastest Catch - Najrýchlejšie tagnutie
- 🏹 Most Active - Najviac tagov
- 🎯 Most Caught - Najviackrát chytený
- JWT autentifikácia s refresh tokenmi
- Admin schvaľovanie nových hráčov
- HTTPS ready (použite reverse proxy v produkcii)
- CORS konfigurovateľný
- Environment variables pre citlivé údaje
- ✅ Offline podpora
- ✅ Inštalovateľná na domovskú obrazovku
- ✅ Push notifikácie (iOS 16.4+, Android)
- ✅ Service Worker pre caching
- ✅ Manifest.json pre inštaláciu
- ✅ Mobile-first responsive dizajn
- Django 5.0
- Django REST Framework
- Django Channels (WebSockets)
- Celery + Redis (async tasks)
- PostgreSQL
- PyWebPush (notifikácie)
- React 18
- Vite
- TailwindCSS
- React Query (data fetching)
- Zustand (state management)
- Framer Motion (animácie)
- Vite PWA Plugin
- Docker & Docker Compose
- Nginx (pre produkciu)
- Redis
- PostgreSQL
POST /api/users/register/- RegistráciaPOST /api/users/token/- LoginPOST /api/users/token/refresh/- Refresh tokenGET /api/users/me/- Aktuálny user
GET /api/game/settings/current/- Nastavenia hryGET /api/game/leaderboard/- RebríčekPOST /api/game/tags/create_tag/- Vytvoriť tagGET /api/game/tags/current_holder/- Aktuálny držiteľGET /api/game/achievements/- Achievements
POST /api/users/{id}/approve/- Schváliť useraPUT /api/game/settings/{id}/- Upraviť nastaveniaPOST /api/notifications/send_notification/- Poslať notifikáciu
# Restart všetkého
docker-compose down
docker-compose up -d --build
# Logy
docker-compose logs -f backend
docker-compose logs -f frontend
# Reset databázy
docker-compose down -v
docker-compose up -d- Skontroluj VAPID klúče v .env súboroch
- HTTPS je potrebné pre produkciu (okrem localhost)
- iOS vyžaduje verziu 16.4+
- Povoľ notifikácie v prehliadači
MIT
Vytvorené pre Tag Game 2025
Enjoy the game! 🎮🏃♂️