# Premiers pas

# Accéder à l'app

# Accéder à l'app

> _Dernière mise à jour : 2026-05-10_

## URLs

- **Prod** : <https://rules.thymon.fr>
- **LAN direct** (sans passer par NPM) : `http://192.168.10.100:3000` — utile pour debug si NPM tombe

## Login

1. Va sur `/login`.
2. Username + password.
3. Cookie de session valide 7 jours, HTTP-only, SameSite=Lax.

Rate-limit : 5 tentatives ratées par IP avant 15 min de cooldown. Si tu te bloques, attends 15 min ou redémarre le container (la map en mémoire se reset).

## Premier admin (au boot)

Au tout premier démarrage du container, l'app crée automatiquement un admin avec les credentials des env vars `FIRST_ADMIN_USERNAME` + `FIRST_ADMIN_PASSWORD`. Tu peux ensuite changer le mot de passe via `/me`.

## Pas de token API

Pas d'auth header bearer, tout passe par cookie de session. Si tu veux scripter des appels (ex. depuis un cron), tu dois te login via `POST /api/auth/login` et conserver le cookie.

## Si tu vois `pending` après login

Tu es en attente de validation admin. Va sur `/admin` (avec un compte admin) → `Utilisateurs` → bouton `Confirmer`. Sinon Telegram / IRL me ping.

# Tour de l'interface

# Tour de l'interface

> _Dernière mise à jour : 2026-05-10_

## Navigation

- **Desktop** : sidebar à gauche (`NavSidebar.vue`)
- **Mobile** : tab bar en bas (`NavTabBar.vue`)

## Pages principales

| Route | But |
|---|---|
| `/` (Home) | Ludothèque visuelle : grille des jeux + bandeau "Reprendre la partie" si une session de moins de 6h existe |
| `/play` | Cœur du produit : chat avec l'oracle, citations cliquables, autocomplete `@card`, deck attaché |
| `/history` | Timeline de tes feedbacks groupée par jeu |
| `/add-game` | Wizard 3 étapes : recherche BGG → upload PDF → ingest ritual (suivi en SSE) |
| `/me` | Profil + change password |
| `/me/settings` | Préférences |
| `/admin` | Dashboard admin : services health, jeux, users, resync cards |
| `/admin/feedback` | Table des feedbacks avec diagnostics RAG complets + bouton "Copier markdown" |

## La table de jeu (`/play`)

- **Header** : nom du jeu + extensions actives (cases à cocher) + bouton `Deck` (si TCG supporté) + langue de règles (FR/EN)
- **Centre** : flux de messages (utilisateur en bulle parchemin, oracle avec barre ambre gauche)
- **Composer en bas** : textarea parchemin + autocomplete `@` + bouton envoyer

## Citations cliquables

Quand l'oracle cite un livret (`[HEAT, p.4 : "..."]`), tu peux cliquer pour ouvrir le PDF directement à la page citée dans un viewer modal. Si plusieurs livrets sont cités (base + extension), le bon est résolu automatiquement via le nom du livret dans la citation.

## Cartes citées (`[[card:Nom]]`)

Quand l'oracle cite une carte de TCG, c'est rendu comme un bouton avec mini-image. Clic → modale zoom (`CardZoomModal`) avec stats détaillées.

## Mode "table" (`useTableMode`)

Toggle dans le header pour adapter l'affichage en mode tablette posée à plat (texte plus gros, contrastes renforcés).