Synaplan
开源 AI 软件平台,面向企业:自托管 AI 代理,符合 GDPR 的聊天机器人小部件,RAG 知识库,WhatsApp 与 Outlook AI,MCP,多模型路由。支持 Docker、Kubernetes 或在 Germ 托管。
AI 翻译
尚未检测到更新。GitHub 发布版本后会显示在这里。
正在加载完整 README。 以下为已保存的摘录。
금오공대 소재디자인공학과(CFMS Lab) 연구실 데이터를 GitHub Pages와 Supabase로 운영하는 정적 웹앱 모음입니다. 화면은 이 저장소의 HTML 파일에서 제공하고, 데이터는 Supabase에 저장합니다. • 홈페이지: https://cfms-lab.github.io/KIT_sodi/ • 공개 조회는 로그인 없이 가능합니다. • 프로젝트 관계도(mindmap.html)와 프로젝트 그래프(graph.html)는 로그인 없이 누구나 열람할 수 있습니다. • 포트폴리오 표(portfolio.html)만 예외로 로그인해야 볼 수 있습니다 (연구실 내부 판정이 담겨 있습니다). • 추가, 수정, 삭제, PDF 원문은 우측 상단 로그인 후 사용할 수 있습니다. • 로그인 세션은 localStorage의 cfms_session으로 앱 간 공유됩니다. 새 Supabase 프로젝트를 만들거나 스키마를 복구할 때 SQL Editor에서 아래 순서로 실행합니다.查看完整 README ↗
금오공대 소재디자인공학과(CFMS Lab) 연구실 데이터를 GitHub Pages와 Supabase로 운영하는 정적 웹앱 모음입니다. 화면은 이 저장소의 HTML 파일에서 제공하고, 데이터는 Supabase에 저장합니다.
mindmap.html)와 프로젝트 그래프(graph.html)는 로그인 없이 누구나 열람할 수 있습니다.portfolio.html)만 예외로 로그인해야 볼 수 있습니다 (연구실 내부 판정이 담겨 있습니다).localStorage의 cfms_session으로 앱 간 공유됩니다.| 파일 | 내용 |
|---|---|
index.html | 포털 홈 |
upjuk.html | 논문/업적 관리, draft 숨김, PDF 원문 업로드/열람 |
timetable.html | 학기별 수업 시간표, 드래그 이동/복사, 학기 복제 |
jobgis.html | 졸업생 취업 현황 지도, 공개 조회 시 이름 마스킹 |
mindmap.html | 연구/개발 프로젝트 관계도, 공개 열람 · 편집은 로그인 |
graph.html | 옵시디언 볼트 내용을 조회해 관리하는 공개 프로젝트 그래프 (정적 파일) |
graph3d.html | graph.html을 실시간으로 읽는 WebGL 3D 그래프 뷰어 |
portfolio.html | 볼트 「포트폴리오 한눈에」 표, 로그인 필수 (Supabase portfolio_rows) |
backup.html | Supabase 데이터 백업 도구 |
scripts/build-vault-graph.mjs | Markdown/Obsidian 볼트에서 vault-graph.json 생성 |
새 Supabase 프로젝트를 만들거나 스키마를 복구할 때 SQL Editor에서 아래 순서로 실행합니다.
schema_cfms.sql: 테이블, 공개 취업 뷰, PDF 버킷 생성enable_rls_cfms.sql: RLS, anon/authenticated 권한, PDF storage 정책 적용enable_rls_mindmaps.sql: 관계도 테이블만 빠르게 보강할 때 쓰는 최소 정책 파일 (anon 열람 + 로그인 편집)schema_project_nodes.sql: graph/mindmap/upjuk 공유 프로젝트 노드 테이블 + 권한 (단독 실행 가능)seed_project_nodes.sql: 공유 노드 초기 데이터 (graph.html 등급·배지 + mindmap 클라우드 병합, 재실행 안전)add_papers_project_link.sql: papers.PROJECT_ID 열 추가 + 기존 논문 4건 노드 연결 (재실행 안전)rename_pftf_alpha_to_gfiberct.sql: 공유 노드 PFTF_alpha 행을 PFTF_GFiberCT 로 개명 (2026-09-11, 재실행 안전)schema_research_outputs.sql: papers + project_nodes 를 합친 단일 표 (2026-09-12)schema_portfolio_rows.sql: portfolio.html 이 읽는 표. anon 권한 없음 — 로그인 사용자만 (2026-09-13)schema_graph_positions.sql: graph.html 의 노드 좌표. 열람 공개 · 저장은 로그인 사용자만 (2026-09-13)rename_cfmsdispersity_to_knn.sql: cfmsDispersity → cfmsDispersityKNN 개명 — project_nodes · graph_positions · research_outputs · papers · portfolio_rows 의 행 id 를 옮긴다 (2026-09-24, 재실행 안전)기본 내장 연결 정보는 각 HTML의 BAKED_URL, BAKED_KEY에 있습니다. 공개 저장소에 들어간 키는 Supabase anon 키이며, 실제 보안은 RLS와 storage 정책이 담당합니다.
backup.html에서 로그인 후 백업을 받습니다.
backup/ 폴더의 마스킹 백업만 커밋합니다.*_FULL_* 파일은 학생 실명이 들어갈 수 있으므로 개인 PC나 비공개 저장소에만 보관합니다.mindmaps까지 포함합니다.Alt 키를 누른 채 드래그합니다.Delete 또는 Backspace, 또는 더블클릭 후 삭제 버튼.학기 복제에서 원본 학기를 대상 학기로 복사합니다.모든 편집은 Supabase에 바로 저장되며, 다른 PC에서는 새로고침 후 반영됩니다.
graph.html, mindmap.html, upjuk.html은 Supabase의 project_nodes 테이블을 공유합니다.
id는 프로젝트 키워드(Tomo_SFTF, PFTF_VisCull_kDop 등)로 세 페이지가 동일하게 씁니다.
mindmap.html: 노드(제목·노트·등급·상태·링크·폴더)를 편집하면 관계도 저장과 함께
project_nodes에 즉시 upsert됩니다. mindmap 노드 id와의 대응은 mindmap_id 열에 있습니다.graph.html: 로드 시 project_nodes를 읽어 내장된 등급·투고 배지·병목·소개·투고 진도를
최신 값으로 덮어씁니다. 테이블이 없거나 오프라인이면 내장 데이터로 동작합니다.upjuk.html: grade='ToDo'인 노드를 TODO(할일) 카테고리로 목록에 보여줍니다.
통계 테이블에는 포함하지 않습니다. 수정은 mindmap에서 합니다.add_papers_project_link.sql이 papers.PROJECT_ID 열을 추가합니다.
연결된 논문은 upjuk에서 출판상태·메모가 mindmap 노드의 상태·메모로 표시되고,
논문 수정 창(연결 프로젝트·링크 URL·프로젝트 폴더 위치·메모)에서 저장하면
project_nodes와 mindmap 문서(mindmaps.data) 양쪽에 역방향으로 반영됩니다.
같은 노드를 mindmap과 upjuk에서 동시에 열어 두고 편집하면 나중에 저장한 쪽이 이깁니다.graph.html과 mindmap.html의 공개 정본은 이 저장소 루트에만 둡니다. Obsidian 볼트
D:\cfms-research-vault는 연구 노트 입력이며, 볼트 루트에 별도 graphify-out 그래프를
유지하지 않습니다. 상세 경계와 명령은 graphify-out/README.md에 있습니다.
볼트 프로젝트 노트와 두 HTML의 포함 여부를 읽기 전용으로 점검하고 구문을 검증하려면:
node scripts/audit-vault-projects.mjs D:\cfms-research-vault
pwsh -File scripts/publish-research-views.ps1 -VaultPath D:\cfms-research-vault
노드를 끌어 놓고 graph.html의 노드 저장 을 누르면 좌표가 Supabase graph_positions로
올라가고 모든 방문자가 그 배치를 봅니다. 저장소를 건드리지 않으므로 커밋도 배포도 없습니다.
저장은 로그인한 사용자만, 열람은 누구나 가능합니다. 처음 한 번 SQL Editor에서
schema_graph_positions.sql을 돌려 표를 만들어야 합니다.
파일의 POS는 씨앗으로 남습니다 — 표가 비었거나 오프라인일 때, 그리고 graph3d.html이
graph.html을 직접 읽을 때 쓰입니다. 3D 뷰가 옛 배치로 보이거나 파일 기본값을 지금 배치로
굳히고 싶으면 표에서 되받습니다.
node scripts/pull-graph-positions.mjs
예전처럼 위치 복사 로 얻은 const POS = {...}; 한 줄을 승격하는 길도 그대로 있습니다.
Get-Clipboard | node scripts/apply-graph-positions.mjs
두 스크립트 모두 정본 갱신·재생성·좌표 가드 동기화·검증까지 하며, 전체 절차와 함정은
docs/graph-positions-runbook.md에 적어 두었습니다.
좌표 정본은 graph.html이 아니라 layout_findings.py의 POS이며, graph.html을 손으로
고치면 다음 재생성 때 조용히 되돌아갑니다.
검증한 graph.html·mindmap.html 변경만 cfms-lab/KIT_sodi의 main으로 올리려면
마지막 명령에 -Push를 붙입니다. 스크립트는 원격이 앞서 있거나 관련 없는 작업 파일이
있으면 push를 중단합니다.
볼트 Dashboards\프로젝트현황.md 의 「포트폴리오 한눈에」 표를 웹에서 보는 읽기 전용
페이지입니다. 로그인한 사람만 볼 수 있습니다 — 등급·투고순서·논문 완성도는 연구실 내부
판정이기 때문입니다. mindmap.html 머리말의 📋 포트폴리오 에서 바로 갑니다.
접근 제한은 화면 가리기가 아니라 데이터 위치로 겁니다. GitHub Pages 는 파일을 누구에게나
그대로 내주므로 표를 HTML 에 구워 두면 소스 보기 한 번에 읽힙니다. 그래서 portfolio.html
에는 데이터가 한 줄도 없고, 표는 Supabase portfolio_rows 에 있으며 그 표에는 anon 정책이
없습니다(로그인 사용자만 select). 정본은 여전히 옵시디언 볼트이고 Supabase 는 사본입니다.
처음 한 번, Supabase SQL Editor 에서 schema_portfolio_rows.sql 을 돌립니다.
그다음부터 볼트 내용이 바뀔 때마다:
$env:SUPABASE_EMAIL="..."; $env:SUPABASE_PASSWORD="..."
node scripts/publish-portfolio.mjs --push
로그인이 안 되거나 REST 로 보내기가 마땅치 않으면 SQL Editor 로 넣는 길이 있습니다. 대시보드 세션 자체가 권한이라 스크립트가 비밀번호를 알 필요가 없습니다.
node scripts/publish-portfolio.mjs --sql
以上为 README 的开头部分。其余内容请阅读原文。 查看完整 README ↗