openjutsu
영상에서 원클릭으로 인물 교체, ComfyUI·MiniMax H3 기반 오픈소스 로컬 힉스필드 겐주츠 대안, FLUX.3 Klein 재조명 지원
연극·무용·서커스·즉흥 작품과 아티스트·회사·극장을 소개, 프로그램과 전문가 이력을 확인
Obras de teatro, danza, circo e improvisación, con sus artistas, compañías y teatros. Descubre qué hay en cartel y la trayectoria de los profesionales de las artes vivas.
미디어TypeScript · CSSGitHub @battanair온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 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.