Files
tirages/README.md
T
2026-09-04 14:37:40 +02:00

49 lines
1.8 KiB
Markdown

# Tirage Classes — application mobile (Expo / React Native)
tirage aléatoire avec pondération par l'ancienneté du dernier tirage
Application 100% locale et hors-ligne (aucun compte, aucun serveur) : les classes
et l'historique des tirages sont stockés sur l'appareil via AsyncStorage.
> **Prérequis :** Node.js ≥ 20.19 (requis par Expo SDK 54).
## Installation rapide (test avec Expo Go)
```bash
npm install
npx expo install --fix # aligne les versions des dépendances avec le SDK Expo
npx expo start
```
Scannez le QR code avec l'app **Expo Go** (iOS ou Android) : l'appli se lance
instantanément sur votre téléphone, sans Xcode ni Android Studio.
## Générer une appli installable (sans Expo Go), pour iOS et Android
Utilisez EAS Build (gratuit, nécessite un compte Expo) :
```bash
npm install -g eas-cli
eas login
eas build:configure
eas build --profile preview --platform all
```
Vous obtenez un lien de téléchargement direct (.apk pour Android à installer
directement, .ipa pour iOS via TestFlight ou un profil ad-hoc).
## Fonctionnalités
- Créer / modifier / supprimer des classes (nom, nombre d'élèves, pondération max)
- Tirer un élève au sort, pondéré par l'ancienneté du dernier tirage
- Bouton **Re-tirer** : annule le dernier tirage et en refait un immédiatement
- Historique complet des tirages par classe
- Aucune authentification, aucun réseau requis après installation
## Structure
- `src/models.js` — classes `Classe` et `Tirage` (POO) : logique du tirage pondéré encapsulée en méthodes (`classe.tirer()`, `classe.reTirer()`, `classe.calculerPoids()`), sérialisation JSON (`toJSON()`/`fromJSON()`). Testable indépendamment de React Native.
- `src/storage.js` — persistance locale (AsyncStorage), manipule des instances `Classe`
- `src/screens/` — écrans (liste, formulaire, détail/tirage)
- `App.js` — navigation