Skip to content

Repository files navigation

🎮 CalendarHeat Playstation

Dashboard interactivo de trofeos de PlayStation con mapa de calor calendario, estadísticas de perfil y detalle de trofeos pendientes.

Creado por Naxvan.


✨ Características

  • 📅 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

🚀 Inicio Rápido

Requisitos

Instalación

# 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 dev

La app estará disponible en http://localhost:3100.

En Windows (atajo)

Ejecuta el script de PowerShell incluido. Gestiona automáticamente el token y abre el navegador:

.\start.ps1

⚙️ Configuración

Copia .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.


🖥️ Despliegue en Ubuntu (Producción)

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 -uninstall

📁 Estructura del Proyecto

psn-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

🔒 Privacidad y Seguridad

  • El token NPSSO nunca se sube al repositorio (.gitignore lo 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

📄 Licencia

MIT — Úsalo, modifícalo y compártelo libremente.

About

CalendarHeat con trofeos para Playstation con valor estimado

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages