Public
PawClash - social gaming e chat Cani vs Gatti
cani-gattichatgamingsocialwebrtc
Val Town is a collaborative website to build and scale JavaScript apps.
Deploy APIs, crons, & store data – all from the browser, and deployed in milliseconds.

🐾 PawClash — Cani vs Gatti

Social gaming + chat serverless full-stack su Val Town.

Live: https://pawclash-app.val.run/

Architettura

FileRuolo
main.tsEndpoint HTTP — tutte le API (/api/*) + serve la SPA
db.tsSchema & helper SQLite val-scoped (std/sqlite/main.ts)
ai.tsModerazione automatica con IA + assistente di supporto
index.html / style.css / app.jsFrontend dark-neon glassmorphism
Rendering mermaid diagram...

API

POST /api/register · POST /api/login · POST /api/forgot-password · GET /api/me · POST /api/status POST /api/chat/send · GET /api/chat/messages · POST /api/chat/react POST /api/voice/join · POST /api/report · POST /api/support GET /api/scores · GET /api/quiz

IA reale (opzionale ma consigliato)

Supporto e moderazione usano un vero LLM (gpt-4o-mini via std/openai, con visione per gli screenshot) se è presente l'env var OPENAI_API_KEY. Senza chiave ripiegano su un motore euristico offline (l'app funziona comunque).

👉 Add OPENAI_API_KEY here: https://www.val.town/x/culostrapulito/pawclash/environment-variables?key=OPENAI_API_KEY

Demo rapida

  1. Apri l'app e clicca Accedi / Registrati.
  2. Scegli la fazione (🐶 CANI o 🐱 GATTI) nel selettore a schede.
  3. Scrivici un messaggio, reagisci con 🐶 🐱 ❤️ 🔥, registra una nota vocale (🎤), entra in una stanza vocale e prova il supporto IA (🤖).
  4. Dal profilo di un utente puoi segnalarlo: l'IA analizza gli ultimi 5 messaggi e applica ammonizione/mute/ban.

Limiti noti

  • Chiamate vocali: la cattura/riproduzione audio (note vocali) è reale via MediaRecorder/WebRTC nel browser. Le stanze vocali live (1-a-1 / fazione / globale) richiedono un server di signaling persistente + TURN, non disponibile su serverless Val Town: la UI della stanza è quindi simulata. Per chiamate vere serve un relay esterno (es. Metered/Cloudflare TURN).