Dashboard interactivo de trofeos de PlayStation con mapa de calor calendario, estadísticas de perfil y detalle de trofeos pendientes.
Creado por Naxvan.
- 📅 Calendario heatmap — Visualiza en qué días conseguiste trofeos a lo largo del año
- 🏆 Estadísticas de perfil — Nivel, total de trofeos (platino, oro, plata, bronce), juegos jugados
- ✅ Juegos completados — Lista filtrable de juegos al 100% con indicador de platino
- ❌ Juegos incompletos — Lista ordenada por progreso con trofeos pendientes y links a guías
- 🔍 Modal de trofeos diarios — Haz clic en un día del calendario para ver qué conseguiste
- 🌐 Soporte PS3 & PS4 & PS5
- Node.js 20+
- Una cuenta de PlayStation Network activa
# 1. Instalar dependencias
npm install
# 2. Configurar el token de PSN (abre el navegador automáticamente)
node get-token.js
# 3. Iniciar el servidor de desarrollo
npm run devLa app estará disponible en http://localhost:3100.
Ejecuta el script de PowerShell incluido. Gestiona automáticamente el token y abre el navegador:
.\start.ps1Copia .env.example a .env.local y rellena tu token NPSSO:
cp .env.example .env.local¿Cómo obtengo el token NPSSO? Ejecuta
node get-token.js— se abrirá un navegador. Inicia sesión en PlayStation Network con normalidad y el token se guardará automáticamente.Alternativamente, accede a https://ca.account.sony.com/api/v1/ssocookie desde tu navegador (ya logueado en PSN) y copia el valor de
npsso.
El script scripts/setup-ubuntu.sh automatiza la instalación completa con Node.js, Nginx y PM2:
# Instalación completa (primera vez)
sudo bash scripts/setup-ubuntu.sh
# Solo actualizar la aplicación
sudo bash scripts/setup-ubuntu.sh -update
# Hardening de seguridad del servidor
sudo bash scripts/setup-ubuntu.sh -hardening
# Desinstalar
sudo bash scripts/setup-ubuntu.sh -uninstallpsn-trophies-app/
├── public/ # Iconos de trofeos (PNG)
│ ├── platinum.png
│ ├── gold.png
│ ├── silver.png
│ └── bronze.png
├── scripts/
│ └── setup-ubuntu.sh # Script de despliegue en Ubuntu
├── src/
│ ├── app/
│ │ ├── api/
│ │ │ ├── trophies/ # Endpoint principal: perfil + heatmap
│ │ │ ├── trophy-meta/ # Metadata de trofeos (nombre, icono, tipo)
│ │ │ └── missing-trophies/ # Trofeos pendientes por juego
│ │ ├── globals.css # Variables CSS y estilos globales
│ │ ├── layout.js # Layout raíz con fuente Outfit
│ │ └── page.js # Página principal
│ └── components/
│ ├── CalendarHeatmap.js # Componente de calendario
│ ├── CalendarHeatmap.module.css
│ ├── CompletedGamesModal.js # Modal de juegos completados
│ ├── IncompleteGamesModal.js # Modal de juegos incompletos
│ ├── ModalStyles.module.css
│ └── TrophyIcon.js # Icono de trofeo con glow
├── get-token.js # Script para capturar el token NPSSO
├── start.ps1 # Lanzador para Windows
├── .env.example # Plantilla de variables de entorno
└── package.json
- El token NPSSO nunca se sube al repositorio (
.gitignorelo excluye) - Las llamadas a la API de PSN se hacen exclusivamente desde el servidor (rutas
api/) - La caché de Next.js evita peticiones repetidas: 1 hora para el perfil completo, 24 horas para los trofeos pendientes
MIT — Úsalo, modifícalo y compártelo libremente.