Javis OS
Javis OS는 기업가를 돕는 에이전시 AI로, 업무를 지원하고 함께 성장합니다
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
해커톤·기업심사를 한 플랫폼에서 운영한다. 기업은 단계별 자료를 제출하고, 심사위원은 동의서 서명 후 자료 열람·평가를 하며, 관리자는 전 과정을 실시간으로 본다. • 운영 사이트: https://intween-judging.vercel.app Vello·입찰 대응 센터와 분리된 독립 사이트. • 요구사항 원문: docs/SPEC.md (사이트맵·개발 가이드) • 구현 규약·URL↔화면 ID 대응: docs/DEV_NOTES.md • 개발 인수인계서(운영 상태·코드 구조·남은 작업): docs/HANDOVER.mdREADME 전문 보기 ↗
해커톤·기업심사를 한 플랫폼에서 운영한다. 기업은 단계별 자료를 제출하고, 심사위원은 동의서 서명 후 자료 열람·평가를 하며, 관리자는 전 과정을 실시간으로 본다.
운영 사이트: https://intween-judging.vercel.app Vello·입찰 대응 센터와 분리된 독립 사이트.
요구사항 원문: docs/SPEC.md (사이트맵·개발 가이드)
구현 규약·URL↔화면 ID 대응: docs/DEV_NOTES.md
개발 인수인계서(운영 상태·코드 구조·남은 작업): docs/HANDOVER.md
| 영역 | 선택 |
|---|---|
| 프론트·서버 | Next.js 14 (App Router), TypeScript |
| UI | Tailwind + shadcn 스타일 컴포넌트(components/ui), Pretendard, 브랜드 컬러 테마 변수 |
| 백엔드 | Supabase — Auth(초대·비밀번호·TOTP), Postgres(RLS), Storage(비공개 버킷), Realtime, Cron |
| 문서 | PDF.js(열람·워터마크), pdf-lib(서명 PDF·평가표·심사평), exceljs(결과표), jszip(서명본·증빙 패키지) |
| 서명 | signature_pad (모두싸인 등으로 교체 가능하도록 서버 API 분리) |
| 알림 | n8n 웹훅 (N8N_WEBHOOK_URL) — 메일·카카오·슬랙 발송은 n8n에서 |
npx supabase link --project-ref <ref> && npx supabase db push
또는 SQL Editor에서 supabase/migrations/*.sql 을 파일명 순서대로 실행https://<도메인>/auth/confirm 추가supabase/templates/*.html 참고)
{{ .SiteURL }}/auth/confirm?token_hash={{ .TokenHash }}&type=invite&next=/invite{{ .SiteURL }}/auth/confirm?token_hash={{ .TokenHash }}&type=recovery&next=/reset-password/updatepg_cron 확장이 켜져 있으면 마이그레이션이 5분 주기 단계 자동 전환 작업을 등록한다
(Database → Extensions 에서 pg_cron 활성화 후 3번 마이그레이션 재실행).env.example 을 .env.local 로 복사해 채운다. Vercel 은 Project Settings → Environment Variables.
| 변수 | 설명 |
|---|---|
NEXT_PUBLIC_SUPABASE_URL, NEXT_PUBLIC_SUPABASE_ANON_KEY | Supabase API |
SUPABASE_SERVICE_ROLE_KEY | 서버 전용 (초대, 서명 URL 발급) |
NEXT_PUBLIC_SITE_URL | 초대·재설정 메일 리다이렉트 기준 주소 |
PAYMENT_ENC_KEY | 정산 정보 암호화 키 (openssl rand -base64 32) — 분실 시 복호화 불가 |
N8N_WEBHOOK_URL, N8N_WEBHOOK_SECRET | 이벤트 웹훅 (비우면 전송 생략) |
PPTX_CONVERT_URL | PPTX→PDF 변환 서비스 (Gotenberg /forms/libreoffice/convert 호환, 선택) |
CRON_SECRET | /api/cron/* 호출 인증 (Vercel Cron 이 자동 전송) |
REQUIRE_ADMIN_MFA | 관리자 OTP 강제 (기본 true. 모의 심사 테스트 때만 false) |
npm install
npm run dev # http://localhost:3000
npm run seed # 모의 심사 데이터: 가상 기업 5, 심사위원 3, 관리자 1
시드 계정: [email protected], company1~5@…, judge1~3@… / 비밀번호 Intween!2026
(SEED_PASSWORD, SEED_EMAIL_DOMAIN 으로 변경 가능).
Vercel → Add New → Project → mindleader9/intween-judging import → 환경변수 입력 → Deploy. (Root Directory 는 기본값 그대로)
vercel.json 의 Cron(일일 리마인드, 보유기간 경과 자동 파기)이 함께 등록된다.
npm test # 점수 산정 단위 테스트 (과락·정규화·최고/최저 제외·가감점 상한·동점)
npm run test:db # 로컬 Postgres 16 으로 마이그레이션 적용 + RLS·트리거 QA 시나리오 검증
npm run typecheck
test:db 가 확인하는 QA 항목: Q1(타 기업 파일 차단), Q2(접수기간 외 업로드 거부), Q3/Q4(미서명·미배정 열람 차단),
Q6(배점 초과 차단), Q7(확정 후 수정 거부), Q12(블라인드 마스킹), Q16(이의신청 기간), 감사로그 이전→새 값 기록,
이해충돌 신고 즉시 제외, 프로그램 복제, Cron 자동 전환.
is_admin(), 서명 여부 has_signed_all().v_companies_blind, v_judge_submissions)로만 조회. 타 심사위원 점수 비노출.audit_logs 에 기록 (누가·언제·이전→새 값·IP). 감사로그는 수정·삭제 불가.profiles.can_pay)만 복호화 + 열람 로그.PPTX_CONVERT_URL(Gotenberg 등)이 없으면 변환하지 않으며, 심사위원 뷰어에는 'PDF 변환본 없음' 안내가 표시된다./api/consent/sign, /api/eval/submit)가 분리돼 있어 교체 가능하지만 연동 자체는 미구현.