86 lines
4.2 KiB
Markdown
86 lines
4.2 KiB
Markdown
# 🎮 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** (programmeur, artiste, game designer, sound, scénariste, QA…)
|
||
- 📋 **Tâches & Kanban** — glisser-déposer entre *À faire / En cours / En revue / Terminé*
|
||
- 🎯 **Jalons & planning** — échéances, progression par jalon (Prototype, Alpha, Beta, Release…)
|
||
- 🐛 **Suivi de bugs** — sévérité, priorité, statut, assignation
|
||
- 📊 **Tableau de bord** — avancement global, répartition des tâches, prochaines é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, jalons, bugs), la sécurité et la synchro temps réel.
|
||
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, Milestones, Bugs, Members, 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`.
|