Javis OS
Javis OS는 기업가를 돕는 에이전시 AI로, 업무를 지원하고 함께 성장합니다
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기캐스팅스와이프 만드는거 개발진 두명이랑 공유
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗공고 링크 하나로 지원을 받고, 추천·비교·팀 투표로 최종 후보를 정하고, 오디션 일정까지 한 곳에서.
배우는 앱 설치 없이 공유된 링크로 바로 지원합니다. 모바일 퍼스트 반응형 웹(PWA) 입니다.
빠른 시작 · 주요 기능 · 구조 · 협업 가이드 · 로드맵
pnpm install && cp .env.example .env.local && pnpm dev
| 랜딩 | 제작자 스튜디오 |
|---|---|
| 배우 검색 | 팀 보드 |
제작자
| 기능 | 화면 | 내용 |
|---|---|---|
| 프로젝트·배역 | /studio, /studio/projects/new | 4단계 등록 마법사(임시 저장), 프로젝트 수정, 배역별 공개 지원 링크 |
| 지원자 검토 | /studio | 지원자 목록·필터·내부 상태·메모, 공개 결과 단계 관리 |
| 배우 검색 | /studio/actors | 이름·성별·연령·키·지역·특기·경력·가능일 필터, 정렬·페이지네이션, 관심 저장 |
| 배우 추천 | /studio/recommend | 배역 조건과 프로필을 비교하는 조건 기반 적합도 % + 추천 이유 (외부 AI 아님 — 외모 평가·자동 캐스팅 결정 없음) |
| 후보 비교 | /studio/compare | 이상형 월드컵식 VS 토너먼트, 결과 저장 |
| 팀 보드 | /studio/board | 칸반(검토 중→1차 합격→최종 후보→보류), 팀원 하트 투표·댓글, 이메일 초대, 지원하지 않은 배우도 후보로 추가 |
| 오디션 캘린더 | /studio/calendar | 월간/목록 뷰, 채팅에서 확정·조율 중인 오퍼 자동 병합, 장소·대면/비대면, 시간 충돌 감지 |
| 메시지 | /studio (메시지 탭) | 지원자별 채팅, 오디션 시간 제안→배우 선택→확정 |
배우
| 기능 | 화면 | 내용 |
|---|---|---|
| 프로필 관리 | /me/profile | 완성도 %, 사진 업로드(대표 지정), 태그·특기, 필모그래피, PDF 자료실, 출연 불가일, 미리보기 |
| 배우 홈 | /me | 받은 캐스팅 제안 수락/거절, 내 지원 현황, 모집 공고 |
| 지원·현황 | /apply/[slug], /status/[token] | 가입 없이도 링크로 지원 가능, 로그인 배우는 프로필 자동 채움, 오디션 시간 선택 |
요구사항: Node.js 24+, pnpm
pnpm install
cp .env.example .env.local # SESSION_SECRET을 24자 이상 임의 문자열로 수정
pnpm dev
http://localhost:3000 접속 → 데모 계정으로 로그인하거나 새로 가입하세요.
demo1234)| 역할 | 계정 | 설명 |
|---|---|---|
| 제작자 (오너) | [email protected] | 샘플 프로젝트 2개·지원자·오디션 데이터 포함 |
| 제작자 (팀원) | [email protected] | 김감독 — 첫 프로젝트 팀원, 팀 보드 협업 데모용 |
| 배우 | actor01~[email protected] | 프로필 완성된 배우 16명 (검색 공개) |
첫 실행 시 데모 계정·샘플 배역·가상 지원자가 자동 생성됩니다. 끄려면 .env.local에 SEED_DEMO=false.
pg 클라이언트, 비동기 접근 계층은 src/lib/sql.ts (스키마는 src/lib/db.ts가 첫 접속 때 자동 생성)src/lib/auth.ts)data/uploads/ (이미지·PDF, 매직바이트 검증, 5MB)💡 배포: 데이터는 Neon Postgres에 저장되어 서버리스(Vercel)에서도 유지됩니다. 사진·PDF 업로드는 아직 로컬
data/uploads/라서, 영구 저장(Vercel Blob)으로 옮기기 전까지 Vercel에서는 재시작 시 사라집니다.
src/
app/ # App Router 페이지 + API
api/ # roles, applications, actors, board, calendar, compare,
# recommendations, proposals, favorites, auth, uploads ...
studio/ # 제작자: 홈 / actors / recommend / compare / board / calendar / projects
me/ # 배우: 홈 / profile
apply/[slug]/ # 공개 지원 (무가입)
status/[token]/ # 지원자 상태·오디션 응답
lib/
db.ts # 스키마 + 쿼리 (Postgres, 비동기)
accounts.ts # 사용자·프로필·프로젝트·제안
board.ts # 팀 보드(후보·투표·메모)
calendar.ts # 캘린더 이벤트 + 오퍼 병합 ← DB 의존
calendar-grid.ts # 순수 월그리드/충돌 로직 ← 리프 모듈(클라이언트 import 가능)
fit.ts # 적합도 점수 (순수 함수)
compare.ts # 토너먼트 브래킷 (순수 함수)
auth.ts / session-token.ts / validation.ts / profile.ts
tests/ # node:test 단위 테스트 (33개)
docs/ # PRD 보조 문서, API 계약, 기술 설계, 협업 규칙
node_modules/next/dist/docs/ 관련 가이드를 확인하세요. (params는 Promise로 await, cookies() await 등)lib/db.ts·lib/accounts.ts·lib/calendar.ts를 'use client' 파일에서 import하면 pg가 브라우저 번들에 섞여 500이 납니다. 클라이언트는 리프 모듈(calendar-grid.ts, fit.ts, compare.ts, profile.ts)의 타입/순수 함수만 import 하세요.getProducerId()/getActorId()로 역할 검증. 제작자는 자기 프로젝트(팀원 포함)만, 배우는 자기 데이터만.db.ts의 CREATE TABLE IF NOT EXISTS + addColumn() 패턴으로. 기존 DB 마이그레이션 자동.pnpm typecheck # tsc --noEmit
pnpm test # node --test tests/*.test.mjs
pnpm build # next build
pnpm format:check # prettier --check
pnpm format # prettier --write
화면은 390px(모바일) 과 1280px(데스크탑) 두 폭에서 확인하세요.
main에 직접 푸시하지 말고 브랜치 → PR로. 규칙은 docs/COLLABORATION.mdpnpm typecheck && pnpm test && pnpm format — CI 없이 로컬에서 확인.env.local, data/는 gitignore 됨. 새 env 키는 .env.example에 예시로만 추가자세한 계획은 docs/IMPLEMENTATION_BACKLOG.md와 docs/TECHNICAL_DESIGN.md §7을 참고하세요.
팀 프로젝트 — 내부 사용 · Made with 💜 for film crews & actors
Vercel Storage에서 Neon을 프로젝트에 연결하면 DATABASE_URL이 자동으로 들어갑니다. DEMO_MODE=true와 24자 이상 무작위 SESSION_SECRET을 설정하면 제작자·배우 체험 버튼으로 바로 입장하고, 빌드 때 scripts/prepare-demo.ts가 가상 계정·배역·지원자를 Neon에 채웁니다(여러 번 실행해도 중복되지 않음). 데이터는 영구 보존되므로 실제 운영 전에는 DEMO_MODE를 끄세요. 로컬 개발도 같은 DATABASE_URL을 쓰므로, 따로 쓰려면 Neon 브랜치를 만들어 그 연결 문자열을 .env.local에 넣으세요.