135 lines
3.1 KiB
Markdown
135 lines
3.1 KiB
Markdown
# Beuz Video Game Collection
|
|
|
|
Application web simple pour gerer une collection de jeux video par plateforme et console.
|
|
|
|
## Objectif
|
|
|
|
Centraliser ta collection dans une interface rapide a utiliser, evolutive, et facile a maintenir.
|
|
|
|
## Fonctionnalites actuelles
|
|
|
|
- Gestion des plateformes par marque (ex: SONY, MICROSOFT)
|
|
- Gestion des consoles par marque (ajout libre)
|
|
- Onglets dynamiques marque/console
|
|
- Compteur visuel du nombre de jeux par console (bulle sur l'onglet)
|
|
- Ajout de jeux avec champs:
|
|
- titre
|
|
- genre
|
|
- editeur
|
|
- annee
|
|
- cote estimee
|
|
- prete a
|
|
- Edition d'une fiche existante
|
|
- Suppression d'un jeu
|
|
- Statut de pret (marquer prete/rendu)
|
|
- Persistance locale via `localStorage`
|
|
- Backend avec migration automatique du schema PostgreSQL (etape 2)
|
|
|
|
## Stack technique
|
|
|
|
- Frontend: HTML, CSS, JavaScript vanilla
|
|
- Serveur web local: Nginx (conteneur Docker)
|
|
- Backend API: Node.js (endpoint de sante pour migration progressive)
|
|
- Base de donnees: PostgreSQL dediee a l'application
|
|
- Orchestration: Docker Compose
|
|
|
|
## Structure du projet
|
|
|
|
```text
|
|
.
|
|
|- index.html
|
|
|- styles.css
|
|
|- app.js
|
|
|- Dockerfile
|
|
|- api/
|
|
| |- Dockerfile
|
|
| |- server.js
|
|
|- docker-compose.yml
|
|
|- .dockerignore
|
|
|- .env.example
|
|
```
|
|
|
|
## Lancer en Docker
|
|
|
|
### 1) Configuration du port
|
|
|
|
Copie le fichier d'environnement:
|
|
|
|
```bash
|
|
cp .env.example .env
|
|
```
|
|
|
|
Par defaut:
|
|
|
|
```env
|
|
APP_PORT=7001
|
|
API_PORT=7002
|
|
VG_DB_NAME=video_games
|
|
VG_DB_USER=video_games_user
|
|
VG_DB_PASSWORD=change_me
|
|
```
|
|
|
|
Tu peux mettre `7000` si ce port est libre sur ta machine.
|
|
|
|
### 2) Build et demarrage
|
|
|
|
```bash
|
|
docker compose up -d --build
|
|
```
|
|
|
|
### 3) Ouvrir l'application
|
|
|
|
- [http://localhost:7001](http://localhost:7001) (par defaut)
|
|
- ou [http://localhost:7000](http://localhost:7000) si `APP_PORT=7000`
|
|
|
|
### 3-bis) Verifier l'API (etape 1 migration)
|
|
|
|
- [http://localhost:7002/health](http://localhost:7002/health)
|
|
- [http://localhost:7002/api/catalog/summary](http://localhost:7002/api/catalog/summary)
|
|
- [http://localhost:7002/api/catalog/tree](http://localhost:7002/api/catalog/tree)
|
|
|
|
### 4) Arreter
|
|
|
|
```bash
|
|
docker compose down
|
|
```
|
|
|
|
## Utilisation rapide
|
|
|
|
1. Ajoute une marque + une console dans la section "Plateformes et consoles".
|
|
2. Selectionne une console.
|
|
3. Ajoute tes jeux via le formulaire.
|
|
4. Utilise `Editer` pour completer/modifier une fiche (ex: ajouter l'editeur plus tard).
|
|
5. Consulte la bulle sur chaque onglet console pour voir le volume de jeux.
|
|
|
|
## Git / Gitea
|
|
|
|
Le remote est configure en SSH via l'alias `gitea-local` (port `222`).
|
|
|
|
Exemples:
|
|
|
|
```bash
|
|
git push
|
|
git pull
|
|
```
|
|
|
|
## Evolutions prevues
|
|
|
|
- Fiches de pret plus detaillees (date de sortie, date de retour)
|
|
- Historique des prets
|
|
- Statistiques de collection (total jeux, valeur totale, repartition par plateforme)
|
|
- Export/import (CSV/JSON)
|
|
- Sauvegarde distante (API/backend)
|
|
|
|
## Etat migration base de donnees
|
|
|
|
- Etape 1: architecture `app + api + db` en place
|
|
- Etape 2: schema SQL applique automatiquement au demarrage API
|
|
- tables: `brands`, `consoles`, `games`
|
|
- trigger `updated_at` sur `games`
|
|
- endpoints de lecture pour validation: `summary` et `tree`
|
|
|
|
## Licence
|
|
|
|
Projet prive personnel.
|