尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗La base de datos de las artes escénicas: obras, artistas, compañías y sus vínculos.
ziater2) para los datos.| Objetivo | Cómo se consigue |
|---|---|
| Gratis al empezar | Vercel Hobby + Firebase Spark + Cloudinary Free. Las fichas se sirven desde caché (ISR), así que cada visita no gasta lecturas de Firestore: se regeneran como mucho una vez por hora o al momento cuando alguien las edita. |
| Escalable | Ninguna página lee una colección entera. La portada muestra selecciones (mejor valoradas, recién añadidas, artistas de las obras mejor valoradas). Los listados van paginados de 24 en 24 con cursor. La búsqueda usa prefijos guardados en cada ficha (claves) con una sola consulta por colección. El sitemap se trocea en archivos de 5.000 fichas. Las páginas son estáticas en el CDN. |
| Valoraciones | Notas de 1 a 10 (una por persona y obra) en valoraciones. Cada obra guarda votos, suma_notas, nota (media) y puntuacion (media ponderada, para que una obra con un solo 10 no supere a otra con cien 9). Las reglas comprueban que los contadores cuadran con cada voto. |
| SEO | Cada ficha se genera en el servidor con título, descripción, URL canónica, imagen Open Graph 1200×630 (para WhatsApp, Instagram, X…), datos estructurados schema.org (CreativeWork, Person, PerformingGroup, BreadcrumbList), sitemap.xml con todas las fichas y robots.txt. Las URLs antiguas (/obra/:id, /persona/:id) se mantienen y /todoelequipo/:id redirige con 301. |
| Seguridad | Reglas de Firestore estrictas (firestore.rules), cabeceras HTTP (CSP, HSTS, anti-clickjacking…), secreto de Cloudinary solo en el servidor, tokens verificados en cada ruta /api, reclamación de fichas con revisión manual y sin redirecciones abiertas. |
npm i -g firebase-tools
firebase login
npm run deploy:rules
O copia firestore.rules en la consola de Firebase → Firestore → Reglas → Publicar.
Copia .env.example a .env.local y rellénalo:
CLOUDINARY_API_SECRET es secreto: solo en .env.local y en Vercel, nunca con prefijo NEXT_PUBLIC_.npm install
npm run dev
battanair/newziater..env.example en Settings → Environment Variables.ziater.com.ziater.com a Vercel (Settings → Domains) y retira el hosting antiguo.ziater.com y envía https://ziater.com/sitemap.xml.Añade a las fichas existentes los campos de búsqueda (claves) y la fecha de alta (creado) que usan la portada y el buscador. No borra nada:
npm run migrar # solo muestra cuántas fichas cambiaría
npm run migrar -- --aplicar # guarda los cambios
Después publica los índices con npm run deploy:rules (incluye firestore.indexes.json).
Necesario para aprobar reclamaciones de fichas en /panel/admin y editar fichas antiguas sin dueño:
# Descarga una clave de cuenta de servicio como service-account.json (ver scripts/set-admin.mjs)
npm run admin:set -- [email protected]
| Colección | Uso | Campos nuevos (opcionales) |
|---|---|---|
obra | Fichas de obra | duracion, edad, idioma, id_productora, votos, suma_notas, nota, puntuacion, creado, claves |
persona | Fichas de artista. coincide = uid del artista que la reclamó | roles, ciudad, verificado, destacadas, claves |
persona_obra | Créditos (el vínculo persona ↔ obra) | estado (pendiente/confirmado), creado_por |
premios_obras | Premios | — |
productoras | Compañías | — |
users | Cuenta privada: favoritos_obra («Quiero verla»), vistas («La he visto») | — |
fallos | Mensajes del formulario de contacto (privado) | — |
reclamaciones | Nueva. Solicitudes para reclamar una ficha | — |
valoraciones | Nueva. Nota de cada persona a cada obra ({obra}_{uid}) | — |
Los créditos antiguos no tienen estado y se muestran como confirmados.
Cualquier persona con cuenta (email y contraseña o Google) tiene su espacio en /panel:
| Sección | Qué muestra | De dónde sale |
|---|---|---|
| Resumen | Cifras, últimas notas, «quiero ver» y acceso a la ficha de artista | todo lo de abajo |
| Mis listas → Mis notas | Sus notas del 1 al 10, paginadas | valoraciones (uid) |
| Mis listas → Vistas | Obras que ha visto (puntuar una obra la añade sola) | users.vistas |
| Mis listas → Quiero ver | Obras guardadas | users.favoritos_obra |
| Mis listas → Artistas que sigo | Botón «Seguir» de cada ficha de artista | users.favoritos_persona |
| Aportaciones | Obras creadas, créditos añadidos y fichas creadas para otras personas | obra.creacion, persona_obra.creado_por, persona.creacion |
| Ficha de artista / Vínculos | Solo para profesionales | persona, persona_obra |
| Cuenta | Nombre, email, cambiar contraseña, cerrar sesión y eliminar la cuenta | Firebase Auth + users |
Las listas usan los mismos campos que la web anterior, así que cada usuario conserva lo que ya tenía. Las URLs antiguas /dashboard, /dashboard/editar y /dashboard/cuenta redirigen a las nuevas.
pendiente y la persona lo confirma en Panel → Vínculos.