Synaplan
Open-source AI platform for companies: self-hosted AI agents, GDPR-compliant chatbot widget, RAG knowledge base, WhatsApp and Outlook AI, MCP, multi-model routing. Docker, Kubernetes or hosted in Germ
翻訳待ち
No updates detected yet. GitHub releases will appear here.
Loading the full README. The saved excerpt is shown below.
금오공대 소재디자인공학과(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에서 아래 순서로 실행합니다.Read the full 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
This is the beginning of the README. Read the rest at the original. Read the full README ↗