projet_personnel_2026_arena_battle Svelte Themes

Projet_personnel_2026_arena_battle

Application web de combats au tour par tour - Svelte + Express + PostgreSQL (authentification, combats, persistance des données)

# Projet personnel 2026 - Arena Battle

Application web de combat tour par tour. Le joueur se connecte, choisit un personnage et lance un duel 1v1 contre un adversaire. Le moteur de combat gère tours, sorts, buffs, debuffs, effets négatifs et journaux de combat.

Démo : http://162.19.76.60/
Identifiants (compte de test) : Demo / password

Fonctionnalités

  • Authentification via JWT en cookie httpOnly (register, login, logout, session)
  • Sélection de personnages et démarrage de combat 1v1
  • Moteur de combat côté serveur (cooldowns, passifs, buffs, debuffs, effets négatifs)
  • Journaux de combat côté client
  • Persistance PostgreSQL (utilisateurs et combats)

Stack technique

  • Frontend: Svelte 5 + Vite
  • Backend: Node.js + Express
  • Base de données: PostgreSQL + Sequelize

Architecture et flux

  • Le client Svelte appelle l'API via le proxy Vite (/api -> http://localhost:3000).
  • Le serveur Express expose les routes d'auth, de sélection et de combat.
  • Les combats sont stockés dans PostgreSQL (state, turn, data serialize).

Lancer en local

Prérequis

  • Node.js + npm
  • PostgreSQL

1) Configurer les variables d'environnement

Créer un fichier .env ou renommer le fichier .env.example dans server/:

PORT=express_port
PG_URL=postgres://user:password@server:port/database
JWT_SECRET=change_me

2) Installer et initialiser le serveur

cd server
npm install
npm run db:create
npm run dev

3) Installer et lancer le client

cd client
npm install
npm run dev

Ouvrir http://localhost:5173

Scripts utiles

  • server: npm run db:create (créer les tables), npm run dev
  • client: npm run dev, npm run build, npm run preview

API (extrait)

Auth:

  • POST /api/auth/register
  • POST /api/auth/login
  • POST /api/auth/logout
  • GET /api/auth/me

Sélection:

  • GET /api/init
  • POST /api/initialiseBattle

Combat:

  • POST /api/battle/
  • POST /api/battle/turn/
  • POST /api/battle/reduce-character-spells-cd
  • POST /api/battle/check-character-negative-effect
  • POST /api/battle/check-character-buffs
  • POST /api/battle/check-character-debuffs
  • POST /api/battle/passive-per-turn
  • POST /api/battle/determine-player-action
  • POST /api/battle/determine-enemy-action
  • POST /api/battle/character-use-spell
  • POST /api/battle/check-character-alive

Structure du projet

.
├─ client/                 # Svelte + Vite (UI)
├─ server/                 # Express + moteur de combat
├─ conception/             # MCD / MLD
└─ README.md

Conception

  • conception/MCD.md
  • conception/MLD.md

Top categories

Loading Svelte Themes