# 🎼 GameDev Tracker Application **desktop** de gestion de projet de jeu vidĂ©o, pensĂ©e pour une **petite Ă©quipe (5-6 personnes)**. Construite avec **Tauri + React + TypeScript + Tailwind + Framer Motion**, base de donnĂ©es **gratuite Supabase**. ## ✹ FonctionnalitĂ©s - 🔐 **Connexion / inscription** par email + mot de passe - đŸ‘„ **Équipe, rĂŽles & pĂŽles** — le rĂŽle d'un membre (programmeur, artiste, game designer
) dĂ©finit son **pĂŽle** - 📋 **TĂąches & Kanban** — glisser-dĂ©poser entre *À faire / En cours / En revue / TerminĂ©*, tĂąche confiĂ©e Ă  un **pĂŽle** avec une ou **plusieurs personnes** assignĂ©es - ⏱ **Feuille de temps** — vue par semaine (7 jours en colonnes) : consigne les heures faites chaque jour sur une tĂąche **ou** une activitĂ© libre (rĂ©union, veille
) - 🐛 **Suivi de bugs** — sĂ©vĂ©ritĂ©, prioritĂ©, statut, pĂŽle, assignation - 🔔 **Notifications** — quand une tĂąche/un bug est confiĂ© Ă  un pĂŽle, ses membres reçoivent une notif (cloche 🔔 dans la barre latĂ©rale) - 📊 **Tableau de bord** — avancement global, rĂ©partition des tĂąches, temps total, Ă©chĂ©ances - 🔄 **Synchro temps rĂ©el** — quand un membre modifie une tĂąche, les autres la voient se mettre Ă  jour --- ## 🚀 Mise en route ### 1. CrĂ©er la base de donnĂ©es (gratuit, une seule fois pour toute l'Ă©quipe) 1. Va sur **[supabase.com](https://supabase.com)** et crĂ©e un compte. 2. Clique **New project** (choisis un mot de passe de base de donnĂ©es, garde-le quelque part). 3. Attends ~2 min que le projet se crĂ©e. 4. Dans le menu de gauche : **SQL Editor → New query**. 5. Ouvre le fichier [`supabase/schema.sql`](supabase/schema.sql) de ce dĂ©pĂŽt, **copie tout son contenu**, colle-le, puis clique **Run**. > Cela crĂ©e les tables (profils, projets, tĂąches, bugs, suivi du temps, notifications), la sĂ©curitĂ© et la synchro temps rĂ©el. > > 🆙 **Tu avais dĂ©jĂ  installĂ© une version prĂ©cĂ©dente (avec les jalons) ?** ExĂ©cute plutĂŽt, dans l'ordre, [`supabase/migration_v2.sql`](supabase/migration_v2.sql) (supprime les jalons, ajoute pĂŽles + assignation multiple + notifications), [`supabase/migration_v3.sql`](supabase/migration_v3.sql) (feuille de temps : entrĂ©es libres type rĂ©union) puis [`supabase/migration_v4.sql`](supabase/migration_v4.sql) (plusieurs pĂŽles par membre) — **sans perdre tes donnĂ©es**. > > 🔁 AprĂšs la migration v4, **redĂ©ploie l'Edge Function** pour que l'admin puisse gĂ©rer les pĂŽles multiples : `supabase functions deploy admin-users --no-verify-jwt`. 6. Menu **Settings (⚙) → API**. Note deux valeurs : - **Project URL** → ressemble Ă  `https://xxxxx.supabase.co` - **anon public** (sous *Project API keys*) → longue chaĂźne commençant par `eyJ...` 7. **RecommandĂ© pour une petite Ă©quipe** : dĂ©sactive la confirmation d'email pour pouvoir se connecter tout de suite aprĂšs l'inscription. - Menu **Authentication → Sign In / Providers → Email** : dĂ©sactive **« Confirm email »** et enregistre. - (Sinon, chaque membre devra cliquer sur un lien reçu par email avant de pouvoir se connecter.) > â„č La clĂ© *anon public* est faite pour ĂȘtre distribuĂ©e Ă  l'app cliente : pas de secret sensible exposĂ©. ### 2. Lancer l'application PrĂ©requis (dĂ©jĂ  installĂ©s sur cette machine) : **Node.js**, **Rust**. ```bash npm install npm run tauri:dev ``` Au premier lancement, l'app affiche un Ă©cran de **configuration** : colle l'**URL** et la **clĂ© anon** obtenues Ă  l'Ă©tape 1, puis **Connecter**. Ensuite : crĂ©e ton compte (avec ton rĂŽle), crĂ©e un **projet**, et c'est parti. 🎉 ### 3. Distribuer Ă  l'Ă©quipe Pour gĂ©nĂ©rer un installeur (`.exe`/`.msi` sur Windows) : ```bash npm run tauri:build ``` Le fichier d'installation se trouve dans `src-tauri/target/release/bundle/`. Envoie-le Ă  tes coĂ©quipiers. À leur premier lancement, ils saisissent **la mĂȘme URL + clĂ© anon** que toi — ils rejoignent ainsi le mĂȘme projet partagĂ©. --- ## 🧰 Scripts utiles | Commande | Effet | | --- | --- | | `npm run tauri:dev` | Lance l'app en mode dĂ©veloppement (rechargement Ă  chaud) | | `npm run tauri:build` | GĂ©nĂšre l'installeur de l'app | | `npm run dev` | Lance uniquement le front-end dans le navigateur (sans la fenĂȘtre desktop) | | `npm run typecheck` | VĂ©rifie les types TypeScript | ## đŸ—ïž Architecture ```text ├─ index.html # point d'entrĂ©e du front ├─ src/ # application React (front-end) │ ├─ pages/ # Dashboard, Kanban, Planning (feuille de temps), Bugs, Members, Admin, Login, Setup │ ├─ components/ # Layout, UI, animations │ └─ lib/ # client Supabase, types, contexte global, config ├─ src-tauri/ # enveloppe desktop Tauri (Rust) └─ supabase/schema.sql # schĂ©ma de la base Ă  exĂ©cuter dans Supabase ``` ## 🔒 Note de sĂ©curitĂ© L'app suppose une **Ă©quipe de confiance** : tout membre connectĂ© peut lire et modifier les donnĂ©es du projet (politique RLS « accĂšs complet pour les utilisateurs authentifiĂ©s »). C'est volontaire pour rester simple sur une petite Ă©quipe. Si un jour tu veux des permissions plus fines (ex. seul le lead supprime un projet), il faudra ajuster les *policies* dans `supabase/schema.sql`.