tag

Tag Game - Django + React PWA

Kompletná mobilná PWA aplikácia pre Tag Game s Django backendom, React frontendom, real-time WebSocket komunikáciou a push notifikáciami.

🎮 Funkcie

Pre hráčov:

Pre administrátora:

🚀 Rýchly štart s Dockerom

Predpoklady:

Spustenie:

# 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

Prístup:

📱 Manuálna inštalácia

Backend (Django):

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 info

Frontend (React):

cd 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 preview

🔧 Konfigurácia

Backend (.env):

SECRET_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-key

Frontend (.env):

VITE_API_URL=http://localhost:8000/api
VITE_WS_URL=ws://localhost:8000/ws/game/
VITE_VAPID_PUBLIC_KEY=your-public-key

📊 Herné pravidlá (konfigurovateľné):

Bodovanie:

Achievements:

🔐 Bezpečnosť

📱 PWA Features

🛠️ Tech Stack

Backend:

Frontend:

Infrastructure:

📝 API Endpointy

Autentifikácia:

Hra:

Admin:

🐛 Troubleshooting

Docker problémy:

# 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

Push notifikácie nefungujú:

  1. Skontroluj VAPID klúče v .env súboroch
  2. HTTPS je potrebné pre produkciu (okrem localhost)
  3. iOS vyžaduje verziu 16.4+
  4. Povoľ notifikácie v prehliadači

📄 Licencia

MIT

👨‍💻 Autor

Vytvorené pre Tag Game 2025


Enjoy the game! 🎮🏃‍♂️