Synaplan
기업을 위한 오픈소스 AI 플랫폼
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗한국 신화·고대사 기반 IP 스튜디오 아클링스의 랜딩 페이지, 기획안 만들기, 로그인, 협업 신청, 포트폴리오입니다. Next.js(App Router, Server Actions) + Supabase(DB·Storage·로그인) + Vercel.
AGENTS.md| 화면 | 주소 | 하는 일 |
|---|---|---|
| 랜딩 | / | v14 랜딩. 「지금 시작하기」(5곳) → 기획안 만들기(/planner), 「협업 문의하기」(2곳) → 협업 신청(/collab/new) |
| 기획안 만들기 | /planner | 로그인 없이 작성(이 기기 브라우저에만 보관). 로그인하면 서버 저장·임시저장 이력·Ctrl+Z·PDF 내려받기·PDF 메일 받기(하루 3번)·포트폴리오 공개. 옛 주소 /planner.html은 여기로 이동 |
| 포트폴리오 | /portfolio, /portfolio/[id] | 공개된 기획안만 누구나 보기. 공개 이름은 보이고 이메일은 보이지 않음. 상세의 「협업 신청」은 기획안 주인에게 감 |
| 로그인 | /signup, /login, /forgot-password, /reset-password | 이메일·구글·카카오 로그인. 카카오처럼 이메일을 주지 않는 방식은 가입 중에 이메일을 받아 확인 메일로 본인 확인(/auth/add-email) |
| 마이페이지 | /mypage, /mypage/withdraw | 내 기획안 목록, 로그인 방법 추가·해제, 회원 탈퇴 |
| 협업 신청 | /collab/new | 누구나 로그인 없이 접수 (/apply는 여기로 이동) |
| 접수 완료 | /collab/done | "신청이 접수됐습니다" 안내와 「홈으로」 버튼. 신청자는 로그인하지 않으므로 신청 내용을 다시 볼 수 없음 |
| 받은 협업 신청 | /collab, /collab/[id], /collab/[id]/edit | 로그인 필요. 그 신청을 받은 사람만 목록·상세·수정·삭제. 10개씩, 상태별 보기 |
| 개인정보처리방침 | /privacy | 가입·협업 신청과 같은 동의 문구 |
협업 신청 입력 칸: 이름/닉네임(필수), 연락처 이메일 또는 전화번호(필수), SNS 아이디(필수), 신청 대상(기본 "특정 이야기 아님", 또는 작품 선택. 포트폴리오에서 들어오면 작품 칸 대신 기획안 제목과 「○○님께 전달됩니다」), 역할(중복 선택, 1개 이상 필수: 영상 제작·대본·아트디렉터·역사 자문·책임 프로듀서·기타), 하고 싶은 일/아이디어(필수, 10~1000자), 작업 링크(필수, http/https), 작업 파일 첨부(선택, PDF·JPG·PNG 4MB 이하. 더 큰 파일은 작업 링크로), 개인정보 동의(필수), 상태(받는 사람이 수정할 때만: 접수·검토 중·수락·거절).
성공/실패: 신청하면 접수 완료 화면으로 이동합니다. 입력 오류는 칸 아래에 이유를 보여 주고 입력값을 유지합니다. 저장 중에는 버튼이 잠깁니다. 삭제는 확인 후 신청과 첨부 파일을 함께 지웁니다. 없는 번호나 남에게 온 신청은 404 화면이 나옵니다.
접근 규칙: 받은 협업 신청은 받는 사람만 읽고 고치고 지웁니다(DB 접근 규칙 RLS). 아클링스 앞 신청은 운영자 표시가 있는 계정이 봅니다. 첨부 보관함은 비공개이고, 받는 사람에게만 5분짜리 임시 주소로 보여 줍니다.
supabase/schema.sql — source_works(작품 3개), collab_requests(협업 신청)supabase/migrations/ 0001~0007 — 보관함 비공개, 프로필·동의 기록, 받는 사람 규칙, 기획안·임시저장 이력·메일 횟수, 정리 작업 기록, 소셜 로그인, 포트폴리오AGENTS.md의 「테이블」에 있습니다.supabase/schema.sql을 실행한 뒤 supabase/migrations/를 0001부터 0007까지 번호 순서대로 실행합니다.
이미 운영 중인 프로젝트: schema.sql은 collab_requests를 지우므로 다시 실행하지 않습니다. migrations만 번호 순서대로 실행하고, 0001과 0003부터는 새 코드를 배포하고 SUPABASE_SERVICE_ROLE_KEY를 넣은 뒤에 실행합니다..env.example을 .env.local로 복사해 값을 채웁니다.npm install → npm run dev → http://localhost:3000NEXT_PUBLIC_SUPABASE_URL, NEXT_PUBLIC_SUPABASE_ANON_KEYSUPABASE_SERVICE_ROLE_KEY (서버 전용)RATE_LIMIT_SALT (선택)MAIL_SMTP_HOST, MAIL_SMTP_PORT, MAIL_SMTP_USER, MAIL_SMTP_PASS, MAIL_FROM, ADMIN_NOTIFY_EMAILCRON_SECRET (하루 한 번 도는 정리 작업용)값은 .env.local과 Vercel 환경 변수에만 넣고 GitHub에는 올리지 않습니다.
아직 진짜 서비스(실제 Supabase·메일)에서 점검하지 않았습니다. 단계 7에서 채웁니다.
아래는 로그인이 없고 첨부 보관함이 공개였던 미션 6 당시 배포 주소에서 점검한 기록입니다. 미션 7에서 보관함은 비공개로, 목록·상세·수정·삭제는 받는 사람만으로 바뀌었습니다.
| 시나리오 | 결과 |
|---|---|
| 빈 값으로 제출 | 통과 — 필수 칸마다 이유가 표시되고 저장되지 않음 |
| 잘못된 형식 제출 | 통과 — .txt 파일은 "PDF, JPG, PNG 파일만 올릴 수 있습니다."로 거절, 입력값 유지, 저장되지 않음 |
| 등록 후 목록·상세 반영 | 통과 — 접수 완료 화면 뒤 목록(총 건수)과 상세에 입력 내용이 그대로 보임 |
| 새로고침 후 데이터 유지 | 통과 — 새로 연 화면에서도 같은 데이터가 Supabase에서 읽힘 |
| 수정 반영 | 통과 — 이름 수정 후 상세에 반영, "최근 수정" 시각 갱신 |
| 삭제 반영 | 통과 — 삭제 후 목록에서 사라지고, 같은 주소를 열면 404 안내 화면(HTTP 404) |
| 존재하지 않는 상세 주소 | 통과 — "찾을 수 없는 신청입니다" 안내와 목록으로 돌아가는 버튼 |
| 파일 업로드(새 신청서에 첨부) | 통과 — PNG 첨부 후 상세에서 Supabase Storage 이미지가 표시됨 |
| 파일 업로드(수정 화면에서 첨부) | 통과 — 첨부 후 상세에 이미지 표시 |
| 파일이 없는 경우 | 통과 — "첨부된 파일이 없습니다." 표시 |
| 4MB 초과 파일 | 미점검 — 코드로는 막혀 있으나 배포 환경에서 직접 올려 보지 않음 |
| 10건 초과 시 쪽 이동 | 미점검 — 현재 데이터가 10건 미만이라 쪽 이동 화면은 확인하지 못함 |
| 삭제 시 첨부 파일 함께 삭제 | 통과 — 신청을 삭제하면 Supabase Storage의 첨부 파일도 함께 사라짐(삭제 후 파일 주소가 "Object not found"). 당시에는 schema.sql 3번 항목의 보관함 정책을 썼고, 미션 7에서는 서버 전용 열쇠로 지움 |