Synaplan
기업을 위한 오픈소스 AI 플랫폼
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Plataforma web para revisar el desembarque artesanal y la recolección de orilla de pescadores:
Funciones principales:
| Archivo | Para qué sirve |
|---|---|
index.html | La plataforma completa (pantallas, gráficos, filtros, lectura del Excel). |
api/ | Funciones del servidor: inicio de sesión, usuarios, datos e historial de cargas. |
lib/core.js | Código compartido por las funciones: contraseñas, sesión y acceso a la base. |
supabase/schema.sql | Crea las tablas de la base de datos. |
vercel.json | Configuración y cabeceras de seguridad para Vercel. |
server.js | Servidor para hostings con Node distintos de Vercel (Render, Railway, VPS). |
tools/hash.js | Genera el hash de una contraseña para restablecerla a mano. |
.env.example | Lista de variables de configuración. |
La seguridad se aplica en el servidor:
supabase/schema.sql y presiona Run.SUPABASE_URL.SUPABASE_SERVICE_ROLE_KEY. Es secreta: nunca la pongas en index.html ni la compartas.Crea un repositorio privado y sube esta carpeta completa. No subas archivos .env ni el Excel; el .gitignore ya los excluye.
| Variable | Valor |
|---|---|
SUPABASE_URL | La Project URL de Supabase |
SUPABASE_SERVICE_ROLE_KEY | La clave service_role |
SESSION_SECRET | Un texto largo y aleatorio (ver abajo) |
ADMIN_USER | ivillalobos |
ADMIN_PASSWORD | La contraseña del administrador |
Para generar SESSION_SECRET, en una terminal con Node escribe:
node -e "console.log(require('crypto').randomBytes(48).toString('base64url'))"
ADMIN_USER y ADMIN_PASSWORD. El administrador se crea solo en ese momento.Después del primer ingreso puedes borrar ADMIN_PASSWORD de Vercel: el administrador ya quedó guardado. Si la dejas y alguien elimina la cuenta ADMIN_USER, se volverá a crear con esa contraseña en el siguiente inicio de sesión.
evaluaciones.supabase/schema.sql en Supabase. Es seguro repetirlo: solo crea la tabla nueva. Mientras no lo hagas, el mapa funciona igual, pero solo con el cálculo automático.Si actualizas una plataforma ya publicada: vuelve a ejecutar supabase/schema.sql en Supabase. Crea las tablas nuevas (ajustes, bitacora, vistas, actividad) y agrega la columna organizacion a evaluaciones, sin tocar los datos existentes.
/api/geo, se actualizan todos los días). Muestra cada AMERB cercana a las caletas (nombre, organización destinataria o solicitante, estado con colores: verde decretada, amarillo en trámite, rojo rechazada, gris caducada u otro; agrupadas por caleta en secciones desplegables, especies, superficie y decreto), un resumen por organización y el registro oficial de pescadores, embarcaciones y organizaciones por caleta.PDF de las RCA: los PDF están en Supabase Storage, bucket público RCA: https://oxrxklpjqyvtphfizuld.supabase.co/storage/v1/object/public/RCA/ + el nombre de archivo de la columna RCA del Consolidado (por ejemplo RCA%2020260200168.pdf). Para agregar una RCA, súbela a ese bucket con el mismo nombre que figura en la columna RCA.
Los usuarios buscan con sus propias palabras clave en el texto completo de todas las RCA visibles, sin filtros predefinidos. Pueden acotar por su cuenta en «Más filtros» (por ejemplo, solo compromisos habilitados). Pestaña para revisar las resoluciones de calificación ambiental (RCA) de las operaciones y ordenar sus obligaciones.
Carga inicial (una vez, solo administradores): en la pestaña Exigencias ambientales, presiona Cargar base de RCA y elige RCA_Operaciones_Norte_base.json.gz. Ese archivo trae las RCA divididas en fichas por numeral o considerando. Si más adelante cargas una base nueva, las categorizaciones se conservan.
Medio humano y comunidades: la base trae el tema «Medio humano, comunidades y pescadores» con seis subtemas (pescadores y caletas, pueblos indígenas, organizaciones sociales y vecinos, participación ciudadana, grupos humanos y calidad de vida, proveedores y empleo local) y el filtro Tipo de texto (obligación, observación ciudadana, evaluación de impactos, descripción, vistos). El botón Compromisos con comunidades combina ambos. Para activarlo, vuelve a cargar RCA_Operaciones_Norte_base.json.gz; las categorizaciones existentes se conservan.
Seguimiento de cumplimiento: cada ficha categorizada muestra sus verificadores o indicadores de cumplimiento (extraídos del texto de la RCA; el administrador puede editarlos, quitarlos o agregar otros). El administrador asigna un porcentaje de avance y una observación a cada verificador y presiona Guardar avance; cada cambio queda en el historial con fecha y usuario. La vista Seguimiento lista todos los compromisos con su avance promedio y se exporta a CSV. Los usuarios ven el avance de los compromisos habilitados, sin las observaciones. Requiere las tablas rca_seguimiento y rca_seguimiento_hist (vuelve a ejecutar supabase/schema.sql).
Un registro por considerando: cada considerando numerado (o subnumeral del considerando, como 12.1.26) es un solo registro con todo su texto, aunque ocupe varias páginas; se indica la página de inicio y término. Los números de página, fechas, cantidades y listas internas no abren registros. Los saltos o repeticiones de numeración quedan marcados como (vista "Con dudas de numeración"). Al cargar la base nueva, las categorías y el avance registrados en bases anteriores pasan al considerando correspondiente.
Lo normal es que un administrador use el botón Contraseña en la pestaña Administración. Si el único administrador olvidó la suya:
npm run hash -- "NuevaContraseña".npm start (usa server.js).api/ están escritas para Vercel. En Netlify es más simple usar Render..env.example como .env y completa los valores.COOKIE_INSECURE=1 para poder usar http://localhost sin HTTPS.npm start y abre http://localhost:3000.Para guardar los componentes ambientales y la relación con pesca, ejecuta una vez en Supabase (SQL Editor › New query › Run). Incluye la columna aplica por si aún no la agregaste:
alter table public.rca_estado add column if not exists aplica boolean;
alter table public.rca_estado add column if not exists componentes jsonb not null default '[]'::jsonb;
alter table public.rca_estado add column if not exists pesca boolean not null default false;
Si faltan estas columnas, la plataforma lo avisa en la pestaña Exigencias ambientales.
RCA_Operaciones_Norte_base.json.gz (versión 3) identifica cada ficha por su número de considerando (por ejemplo, «Considerando 12.1.23», «Resuelvo 1°»), sin importar cuántas páginas abarque. Las páginas se muestran solo como referencia.rca_estado y rca_seguimiento.rca/ contiene los PDF de las 58 RCA (comprimidos para la web, legibles) y Consolidado_RCA_Operaciones_Norte.xlsx, cuyos enlaces de la columna RCA apuntan a esos PDF.api/rpa.js consulta el registro público de Sernapesca por número RPA: estado del pescador (activo/inactivo), caleta base, oficina, categorías y embarcaciones (código, nombre, estado y, para las activas, matrícula, capitanía, caleta base, vencimiento, tipo y eslora). RUT, dirección y fecha de nacimiento son confidenciales en la fuente y no se usan.rpa_cache: cada RPA se consulta como máximo una vez al día; si cambia de activo a inactivo (o al revés) queda una alerta.create table if not exists public.rpa_cache (
rpa text primary key,
datos jsonb not null default '{}'::jsonb,
dia text,
actualizado timestamptz not null default now()
);
alter table public.rpa_cache enable row level security;
La plataforma es una aplicación web instalable (PWA), gratuita y sin tiendas de aplicaciones:
Archivos: manifest.webmanifest (nombre, colores e íconos), sw.js (service worker) e icons/.
El service worker solo guarda la estructura de la página e íconos; nunca guarda datos: /api/*, Supabase y los PDF de RCA van siempre a la red.
Para forzar a todos los equipos a renovar la caché, cambiar VERSION en sw.js.
Clasificación y validación (administradores): cada ficha se clasifica con su tipo (compromiso voluntario, medida, plan de seguimiento, exigencia u otro), si aplica a Asuntos Públicos Norte, sus componentes ambientales (los habituales de un EIA: medio físico, biótico, humano y construido, patrimonio, paisaje, áreas protegidas y salud) y si tiene relación directa con pesca y comunidades pescadoras. La plataforma sugiere tipo, componentes y relación con pesca según el texto. Al validar (con confirmación) la ficha sale de «Por revisar» y pasa sola a su apartado; también se puede validar o descartar en bloque.
Apartados: Pesca y comunidades pescadoras (todo lo marcado con relación directa con pesca), AP Norte · otros componentes, Compromisos ambientales (voluntarios y de medio ambiente natural) y Otros. Las descartadas quedan en su propio apartado, nunca son visibles para los usuarios y se pueden reevaluar (con confirmación).
Detalle de cada RCA: N° RCA, áreas de influencia (localidades que menciona la RCA), objetivo y alcance. La vista Montos de inversión muestra un gráfico interactivo por RCA y compañía (escala lineal o logarítmica; clic en una barra abre la RCA).
Confirmación: catalogar, descartar, restaurar, cambiar la visibilidad o eliminar algo pide confirmación con botones Sí / No.
Encabezado: muestra el lugar aproximado de conexión (en Vercel, según la IP; endpoint api/lugar) y la fecha y hora actuales.
Buscar y filtrar: por palabras clave (sin importar tildes ni mayúsculas; usa comillas para una frase exacta y -palabra para excluir), compañía, RCA, tipo (DIA o EIA), tema (pesca, comunidades, agua, fauna, patrimonio…), categoría y estado de revisión.
Categorizar (solo administradores): cada ficha puede quedar como Compromiso ambiental voluntario; Medida (mitigación, reparación o compensación); Plan de seguimiento o vigilancia; Exigencia o condición; Otro; o Descartado. La plataforma muestra una categoría sugerida según la sección de la RCA, pero no la asigna sola. También puedes categorizar varias fichas a la vez y dejar una nota interna.
Descartar: al marcar una ficha como Descartado, desaparece al instante de la lista y queda en el Apartado de descartadas (botón sobre los resultados o la tarjeta "Descartadas"), con quién la descartó y cuándo. Desde ahí puedes Restaurar para revisar o asignarle una categoría. Cada acción se puede deshacer en el aviso que aparece abajo.
Resúmenes de RCA: cada resolución tiene un mini resumen con titular, descripción, objetivo, alcance y monto de inversión. Se ve en la ficha de la RCA y en la vista Resúmenes de RCA. Los resúmenes se basan en el texto de cada RCA; si el monto no aparece en la resolución, se usa el del consolidado y se indica.
Lista de resoluciones: a la izquierda, agrupada por operación (Minera Centinela, Compañía Minera Zaldívar y Minera Antucoya) en grupos desplegables.
Qué ven los usuarios: solo las fichas validadas, ordenadas en los cuatro apartados, con su tipo y componentes (sin notas internas). Lo que está por revisar o descartado no se les muestra. En la versión de Vercel el servidor ni siquiera envía el texto de las fichas no validadas.
Las RCA escaneadas se leyeron con reconocimiento óptico (OCR) y la plataforma lo indica. Su texto puede tener errores: antes de citar, revisa el documento original o el expediente del SEIA, que tiene un enlace en la ficha de cada RCA.
Tablas en Supabase: rca_base, rca_estado y rca_visibilidad (incluidas en supabase/schema.sql).