Plateforme de vote en ligne de film pour une soirée film sur Jellyfin. Basé sur TMDB.
  • TypeScript 71%
  • JavaScript 26.3%
  • CSS 1.3%
  • Dockerfile 0.8%
  • HTML 0.6%
Find a file
2026-04-11 12:21:51 +02:00
backend fix: traduction des messages d'erreur et mise à jour de l'API d'authentification 2026-04-11 12:21:51 +02:00
frontend fix: traduction des messages d'erreur et mise à jour de l'API d'authentification 2026-04-11 12:21:51 +02:00
.env.example feat: JellyPick — full-stack Jellyfin movie night voting app (#1) 2026-04-11 11:37:03 +02:00
.gitignore feat: JellyPick — full-stack Jellyfin movie night voting app (#1) 2026-04-11 11:37:03 +02:00
docker-compose.yml feat: JellyPick — full-stack Jellyfin movie night voting app (#1) 2026-04-11 11:37:03 +02:00
README.md feat: JellyPick — full-stack Jellyfin movie night voting app (#1) 2026-04-11 11:37:03 +02:00

JellyPick

Vote pour le film de ta soirée Jellyfin 🍿

JellyPick est une application web permettant de voter pour un film lors d'une soirée cinéma organisée sur Jellyfin. Inspiré de Jellyseer, il permet à tous les utilisateurs ayant un compte Jellyfin de voter pour un film via la recherche TMDB.

Fonctionnalités

  • 🔐 Authentification Jellyfin — Connexion avec vos identifiants Jellyfin
  • 🎬 Recherche TMDB — Recherche de films en temps réel via l'API TMDB
  • 📅 Soirées films — Créez et gérez des soirées film (admins uniquement)
  • 🗳️ Votes — Chaque utilisateur vote pour un film par soirée (modifiable)
  • 📊 Résultats — Visualisez les votes de tous les participants en temps réel
  • 🐳 Docker — Déploiement simplifié via Docker Compose

Prérequis

Démarrage rapide

1. Cloner le dépôt

git clone https://github.com/alt-dev7/JellyPick.git
cd JellyPick

2. Configurer les variables d'environnement

cp .env.example .env

Éditez .env et renseignez :

Variable Description Exemple
JELLYFIN_URL URL de votre serveur Jellyfin http://192.168.1.10:8096
TMDB_API_KEY Clé API TMDB abc123...
JWT_SECRET Secret JWT (générez-en un fort) openssl rand -hex 32
PORT Port exposé de l'app 3000

3. Lancer avec Docker Compose

docker compose up -d

L'application est accessible sur http://localhost:3000 (ou le port configuré).

Configuration de Jellyfin

Par défaut, JellyPick essaie de contacter Jellyfin via l'URL JELLYFIN_URL. Assurez-vous que :

  • Le serveur Jellyfin est accessible depuis le conteneur Docker
  • Si Jellyfin tourne sur le même host, utilisez http://host.docker.internal:8096 ou l'IP LAN

Utilisation

Connexion

Connectez-vous avec vos identifiants Jellyfin. Si vous êtes administrateur sur Jellyfin, vous aurez les droits d'administration sur JellyPick.

Créer une soirée (admin)

  1. Cliquez sur "+ Nouvelle soirée" dans la navigation
  2. Renseignez le nom, la description et la date
  3. La soirée est créée avec les votes ouverts

Voter

  1. Cliquez sur une soirée depuis le tableau de bord
  2. Recherchez un film dans la barre de recherche
  3. Confirmez votre vote

Chaque utilisateur ne peut voter qu'une fois par soirée, mais peut changer son vote à tout moment tant que les votes sont ouverts.

Fermer les votes (admin)

Sur la page d'une soirée, les admins peuvent fermer/rouvrir les votes et supprimer la soirée.

Développement local

Backend

cd backend
npm install
cp .env.example .env  # configurer les variables
npm run dev

Frontend

cd frontend
npm install
npm start

Architecture

JellyPick/
├── backend/          # API Node.js/Express
│   ├── src/
│   │   ├── routes/   # auth, movies, events, votes
│   │   ├── middleware/
│   │   └── db/       # SQLite via better-sqlite3
│   └── Dockerfile
├── frontend/         # React + TypeScript + Tailwind CSS
│   ├── src/
│   │   ├── components/
│   │   ├── pages/
│   │   ├── services/
│   │   └── hooks/
│   └── Dockerfile
└── docker-compose.yml

Crédits


This product uses the TMDB API but is not endorsed or certified by TMDB.