
The Killer
Le jeu du tueur caché, pour un voyage entre potes.
Projet perso — 2026
killer.quentinyvinou.com
Application mobile PWA conçue pour animer un voyage entre amis avec un jeu de « tueur caché » : chacun reçoit une cible et un gage à lui faire faire sans qu'elle s'en aperçoive.
Contexte
Pensé pour un voyage de 2 semaines avec une dizaine d'amis. Le jeu se joue 24h/24 en parallèle des activités du voyage : chaque joueur doit éliminer sa cible en lui faisant réaliser un gage discret, puis hérite de la cible suivante. Trois « Maîtres de la mort » valident les éliminations et accusations en temps réel.
Conception, développement et hébergement complet — du frontend mobile au backend en passant par les notifications push et le déploiement.
Fonctionnalités
- ▸Attribution automatique de cible + gage, héritage à chaque kill validé.
- ▸Bouton « J'ai éliminé ma cible » envoyé aux Maîtres pour validation manuelle.
- ▸Système d'accusation : un joueur peut désigner son tueur présumé. Mauvaise accusation = perte des défenses, deuxième erreur = élimination immédiate.
- ▸Notifications push web (VAPID) pour les validations, convocations et morts — fonctionne même app fermée.
- ▸Console admin pour les 3 Maîtres : création/reset de partie, gestion des gages, gestion des joueurs, validation des kills, résurrections.
- ▸Historique des cibles éliminées, actualités publiques, compteur de morts, recap de fin de partie.
Aperçu de l'app

Écran de connexion — chaque joueur reçoit un identifiant et un mot de passe.

QR code distribué dans le guide d'installation papier pour ouvrir l'app en un scan.
Installation
Aucun store : l'app s'installe directement via Safari (iOS) ou Chrome (Android) en ajoutant le site à l'écran d'accueil. Une PWA standalone avec notifications natives.
Stack technique
Frontend
Expo + React Native Web (TypeScript), PWA installable avec service worker, navigation react-navigation, stockage local sécurisé (expo-secure-store).
Backend
PocketBase (Go + SQLite) en self-hosted, hooks JSVM pour la logique métier (kills, accusations, fin de partie), realtime websocket natif.
Push notifications
Microservice Node.js dédié (web-push + VAPID), déclenché par les hooks PocketBase pour notifier les bons joueurs au bon moment.
Infrastructure
Docker Compose sur VPS, Caddy en reverse proxy (HTTPS Let's Encrypt automatique), conteneurs isolés sur un réseau dédié, backups SQLite réguliers.