Produit StyloTech · Réf. SP-03

Zivou

Des quiz en direct qui transforment une salle pleine de monde en une salle pleine de joueurs.

Plateformes

Web · iOS · Android

Sur le web
  • Un salon d’animateur sur grand écran : « The room is yours. Let them in. », le code à six chiffres 478 110, un QR code et un lien d’invitation, et six joueurs inventés en attente — Kev, Priya, Ravi, Jean-Marc, Sofia et Anaïs.
    Salon animateur
  • La première question de la démo solo dans un navigateur de bureau : la question, son compte à rebours et quatre réponses de couleur, chacune avec sa forme.
    Question
  • La fin d’une partie sur l’écran de l’animateur : « A round of applause. », un podium avec Kev premier à 1 870 points, Priya deuxième et Sofia troisième, et les boutons pour télécharger les résultats, lancer une revanche ou revenir à l’accueil.
    Podium
  • Le studio de l’animateur pour un groupe hôtelier inventé : le rappel d’essai gratuit, l’invitation à créer un quiz, les modèles prêts à modifier et les quiz enregistrés.
    Studio animateur
Sur iOS et Android
  • Rejoindre sur téléphone : le code de la partie, un pseudo et le choix entre douze avatars.
    Rejoindre
  • Une question à choix unique sur téléphone, avec quatre grandes réponses et le compte à rebours.
    Répondre
  • Une question de remise en ordre sur téléphone : quatre étapes à classer, chacune avec une poignée et des boutons de déplacement.
    Remettre en ordre
  • Les résultats d’un participant pour une partie terminée : le podium, le classement complet et sa propre ligne mise en évidence.
    Résultats
Captures du client web React dans le thème sombre de Zivou — navigateur de bureau en 1440×900 et téléphone en 720×1560 — sur son backend Supabase, avec des comptes de démonstration jetables et des joueurs inventés, supprimés ensuite. L’adresse affichée dans le salon est celle du domaine de production.
À essayer ici

Vingt secondes. Une question. À vous.

Voici ce que l’on ressent sur son téléphone pendant une manche Zivou : le chrono tourne, on touche, et la rapidité devient des points — calculés avec la même formule que le produit dans sa base de données.

Une question Zivou20

De quoi un joueur a-t-il besoin pour rejoindre une partie Zivou ?

Les bonnes réponses rapides rapportent plus : 500 points pour la justesse, jusqu’à 500 de plus pour la rapidité.

formats de questions
7
chiffres pour rejoindre une partie
6
application à installer pour les joueurs
0
langues, français et anglais
2

Jouer à la démo complète

À Maurice, réunions, intégrations et formations sont pleines de gens qui ont décroché. Les outils de quiz existent, mais ils sont pensés pour des salles de classe ailleurs, demandent à chaque invité de télécharger quelque chose et parlent rarement français. Zivou est un quiz qu’une entreprise lance pour ses équipes en deux minutes : un code à six chiffres, un pseudo, et la salle joue.

Le rôle de StyloTech

Zivou est un produit de StyloTech. Nous le concevons, le dessinons, le développons, l’exploitons et le maintenons — le client web React, le schéma Supabase avec sa sécurité au niveau des lignes et ses fonctions de correction, le modèle de formules et de facturation, les pages légales et le déploiement. Les applications Android et iOS sont en développement sur le même backend.

Chaque compte Entreprise commence par un essai de 90 jours, puis une formule mensuelle ou annuelle en roupies. Comme ce sont les animateurs qui paient et jamais les joueurs, les règles qui comptent — qui peut animer, combien peuvent rejoindre, ce que vaut une bonne réponse — vivent dans Postgres, pas dans le navigateur.

Télécharger l’application

Les applications Android et iOS sont en développement. En attendant, l’application web est en ligne.

Site du produitzivou.stylotech.mu
Plateformes
  • Web
  • iOS
  • Android
Construit avec
Client web
  • React 19
  • TypeScript
  • Vite
  • React Router
  • Motion
  • Web Audio
Client mobile
  • Flutter
  • go_router
  • mobile_scanner
  • Lottie
  • App Links
Backend
  • Supabase
  • PostgreSQL
  • Row Level Security
  • Postgres RPC
  • Supabase Auth
Infrastructure
  • Supabase Storage
  • Edge Functions
  • Firebase Cloud Messaging
  • Custom SMTP
  • GitHub
Qualité & livraison
  • Vitest
  • Playwright
  • axe-core
  • SQL test suites
Ce que StyloTech a livré
  • Stratégie produit
  • Design UI/UX
  • Design system
  • Architecture technique
  • Développement frontend
  • Développement backend
  • Conception de la base de données
  • Tests & assurance qualité
  • Mise en production
  • Maintenance

Ce que ça fait

Chaque élément répond à une tâche réelle le jour de l’épreuve, pas à une liste de fonctionnalités. Le site du produit les détaille un par un.

01

Sept façons de poser une question

Choix unique, vrai ou faux, choix multiples, réponse libre, nombre avec tolérance, sondage sans points et remise en ordre — chacun validé et corrigé selon ses propres règles dans la base de données.

02

Un code, pas d’application

Les joueurs scannent un QR ou saisissent un code à six chiffres, choisissent un pseudo et un avatar, et répondent depuis le navigateur de n’importe quel téléphone ou ordinateur. Aucun compte pour les invités.

03

L’animateur garde la main

Ouvrir le salon, retirer un joueur, démarrer, révéler et passer à la suite au rythme de la salle, avec plein écran et son pour un projecteur ou une visioconférence.

04

Une révélation qui vaut l’attente

Les réponses se verrouillent à l’envoi et le compteur monte en direct sur grand écran ; la révélation montre la répartition de la salle, la bonne réponse et l’explication de l’animateur.

05

Un score équitable

Une bonne réponse vaut de 500 à 1 000 points selon la rapidité, doublés sur les manches choisies, mesurés à l’horloge du serveur pour qu’un téléphone lent ne soit jamais pénalisé deux fois.

06

Un podium, puis une revanche

Les trois premiers montent sur un podium animé avec confettis ; la partie reste dans l’historique de l’animateur, et la revanche avec le même quiz se lance en un clic.

07

Un studio pour l’animateur

Partir d’un modèle ou d’un quiz vierge, réordonner et dupliquer les questions, régler le temps de 10 secondes à deux minutes, ajouter des explications et prévisualiser avec les vraies commandes de réponse.

08

Les entreprises animent, les joueurs gardent leurs scores

À l’inscription, on choisit un compte Entreprise pour animer ou un compte Participant gratuit qui conserve chaque résultat et classement des parties jouées en étant connecté.

09

Des formules appliquées là où il faut

Joueurs par partie, quiz enregistrés et salons simultanés sont vérifiés dans les fonctions d’animation ; l’export CSV des résultats accompagne les formules payantes.

10

Pensé pour de vrais téléphones

La remise en ordre se fait par glisser-déposer à la souris et par une poignée sur écran tactile ; un joueur dont la connexion tombe retrouve sa place.

11

Bilingue et accessible

Français et anglais partout, thèmes clair et sombre, effets sonores synthétisés que l’on peut couper, utilisation au clavier et mouvements réduits respectés.

12

La confidentialité comme fonctionnalité

Les joueurs ne sont visibles que par leur pseudo, les numéros de téléphone n’atteignent jamais une partie, et chaque utilisateur peut télécharger ses données ou supprimer son compte lui-même.

Une réponse, retracée

Un joueur touche une réponse sur son téléphone. Voici tout ce qui se passe entre ce geste et les points sur le grand écran.

Tiré des fonctions zivou_submit et zivou_state des migrations Supabase. Chaque nom ci-dessous apparaît dans le code tel quel.

  1. 01

    Le téléphone n’envoie que la réponse

    La saisie appelle zivou_submit avec la partie, le numéro de la question et un jeton de joueur aléatoire conservé sur l’appareil. Ni score, ni horodatage, rien que la base doive décider.

    • AnswerInput
    • zivou_submit
    • p_token
  2. 02

    Ce joueur est-il dans cette partie ?

    Le jeton est comparé aux joueurs de la session. Il n’apparaît jamais dans une URL : un lien partagé dans une discussion ne permet pas de répondre à la place d’un autre.

    • zivou_players
    • token
    Ce qui s’affiche en cas de refus

    Un jeton inconnu ou étranger est invité à rejoindre la partie avant de répondre.

  3. 03

    La question est-elle encore ouverte ?

    La session doit être sur cette question précise, en cours et non expirée.

    • status
    • question_index
    • expires_at
    Ce qui s’affiche en cas de refus

    Une réponse à une question déjà révélée, ou à la mauvaise, est refusée comme close.

  4. 04

    La base garde l’heure

    Le temps écoulé est clock_timestamp() moins le début de la question, rapporté à son propre chrono — l’horloge du téléphone n’est jamais consultée.

    • clock_timestamp()
    • question_started_at
    • seconds
    Ce qui s’affiche en cas de refus

    Trop tôt : la question n’a pas commencé ; trop tard : le temps est écoulé.

  5. 05

    Vérifiée selon son format

    Un choix, plusieurs choix, quatre éléments dans l’ordre, un texte de 200 caractères au plus ou un nombre dans la limite d’un billion — chaque format a sa forme, vérifiée avant la correction.

    • choice
    • boolean
    • multi
    • text
    • number
    • poll
    • order
    Ce qui s’affiche en cas de refus

    Une réponse mal formée est refusée avec un message propre à son format.

  6. 06

    Corrigée avec ce que seule la base connaît

    L’indice, l’ensemble, les réponses acceptées, la tolérance ou l’ordre corrects sont lus dans la copie du quiz côté serveur. Les sondages ne sont jamais notés.

    • correctIndex
    • correctIndices
    • acceptedAnswers
    • tolerance
    • correctOrder
  7. 07

    La rapidité devient des points

    Une bonne réponse rapporte 500 points plus jusqu’à 500 de plus selon la rapidité, multipliés sur les manches à points doubles.

    • 500 + floor(500.0 * (1 - elapsed / duration))
    • pointsMultiplier
  8. 08

    Une fois, et une seule

    La réponse est enregistrée sous une clé partie, joueur et question ; un second appui est ignoré au lieu d’être compté.

    • primary key (session_id, player_id, question_index)
    • on conflict do nothing
  9. 09

    Secrète jusqu’à la révélation

    Tant que l’animateur n’a pas révélé, zivou_state retire tous les champs de bonne réponse de ce qu’elle envoie ; ensuite, elle renvoie la réponse, la répartition de la salle et le nouveau classement.

    • zivou_state
    • distribution
    • players

Détail technique

Relevé dans le code source du projet, pas dans une plaquette commerciale.

Modèle de données
Supabase Postgres : 8 tables, toutes sous sécurité au niveau des lignes, avec 9 politiques d’accès et 22 fonctions SQL, construites au fil de 5 migrations
Secret des réponses
Les bonnes réponses ne quittent jamais la base avant la révélation : zivou_state les retire de la question renvoyée, et zivou_submit corrige chaque réponse côté serveur
Chronométrage
La rapidité est mesurée à l’horloge de la base, pas à celle du téléphone ; les égalités se départagent au temps total des bonnes réponses, et chaque joueur répond une seule fois par question
Formules et essai
Un déclencheur à l’inscription accorde l’essai de 90 jours une fois par compte ; limites de joueurs, de quiz et de salons sont refusées par les fonctions d’animation et d’inscription elles-mêmes
Client web
React 19 en TypeScript strict avec Vite, React Router et Motion ; chaque écran en français et en anglais, clair et sombre, avec son Web Audio et confettis sur canvas
Contrôles qualité
Tests unitaires Vitest et deux suites de tests SQL exécutées dans des transactions annulées — permissions, limites des formules, score, résultats et suppression de compte — plus des contrôles d’accessibilité axe automatisés

Des quiz en direct qui transforment une salle pleine de monde en une salle pleine de joueurs.

Zivou — Produit StyloTech — StyloTech