Javis OS
Javis OS는 기업가를 돕는 에이전시 AI로, 업무를 지원하고 함께 성장합니다
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기InterviewFlow — AI-powered job-search CRM and interview-prep app. React 18 + TypeScript + Vite + Tailwind, Supabase (Postgres with Row-Level Security), Claude API through Vercel serverless functions.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
AI-powered Job Search CRM & Interview Preparation
Track every application, prep for every interview, and use AI to stay one step ahead — all in one place.
Prerequisites
• Node.js 20+
• A Supabase project (free tier is fine) or run entirely in mock/demo mode (no backend needed)
To run in mock/demo mode (no Supabase): leave VITE_SUPABASE_URL unset — the app works fully offline with in-memory data.
To enable AI features locally: set VITE_AI_ENABLED=true in .env.local,
then paste your personal Gemini API key into Settings → Gemini API key.README 전문 보기 ↗AI-powered Job Search CRM & Interview Preparation
Track every application, prep for every interview, and use AI to stay one step ahead — all in one place.
| Layer | Tool |
|---|---|
| Frontend | React 18 + TypeScript + Vite + Tailwind CSS |
| Auth & DB | Supabase (Postgres + Row-Level Security) |
| Storage | Supabase Storage (cv-files, documents buckets) |
| AI | Google Gemini (gemini-2.5-pro) via Vercel serverless functions — BYOK |
| Hosting | Vercel |
git clone https://github.com/your-username/interview-crm.git
cd interview-crm
npm install
cp .env.example .env.local
# Edit .env.local with your values (see comments inside)
To run in mock/demo mode (no Supabase): leave VITE_SUPABASE_URL unset — the app works fully offline with in-memory data.
To enable AI features locally: set VITE_AI_ENABLED=true in .env.local,
then paste your personal Gemini API key into Settings → Gemini API key.
npm run dev serves the /api/ai/* functions itself — see vite-dev-api.ts,
which mounts the same handler files Vercel runs in production. The Vercel CLI is
not needed for local development, and vercel dev is no longer the documented
path. (Before this existed, Vite answered /api/* with index.html, so every
AI call failed while looking like a network fault.)
Generate a Gemini key at https://aistudio.google.com/app/apikey. The key lives
only in your browser's localStorage; it is sent as the x-gemini-api-key header
on each /api/ai/* request and forwarded only to Google's API.
Nothing is ever substituted for a failed AI call. When a request cannot run, the panel says why — no key, AI disabled for the build, rate limit, quota, timeout, or the raw server error — rather than showing canned content that reads like a real result.
npm run dev # http://localhost:5173
Option A — Supabase CLI (recommended)
npm i -g supabase
supabase login
supabase link --project-ref YOUR_PROJECT_REF
supabase db push
Option B — SQL editor Paste the contents of each file in order into the Supabase SQL editor:
supabase/migrations/0001_init.sqlsupabase/migrations/0002_rls.sqlsupabase/migrations/0003_storage.sqlsupabase/migrations/0004_add_storage_path.sqlThe app is fully usable with real data you enter via the UI. If you want demo data:
# In Supabase SQL editor — run supabase/seed.sql (if present)
git add -A
git commit -m "Initial deploy"
git push origin main
In Vercel → Project → Settings → Environment Variables, add:
| Variable | Value | Notes |
|---|---|---|
VITE_SUPABASE_URL | https://xxx.supabase.co | From Supabase → Settings → API |
VITE_SUPABASE_ANON_KEY | eyJ… | anon public key |
VITE_AI_ENABLED | true | Enables live AI tools |
VITE_ADMIN_EMAIL | [email protected] | Email of the admin user; gates demo-mode UI |
No server-side AI key is needed — users provide their own Gemini key in the app's Settings (BYOK).
Click Deploy in Vercel. First build takes ~45 seconds.
Visit your live URL (e.g. https://interviewflow-abc123.vercel.app).
Tip: bookmark
https://your-app.vercel.appor use the Vercel custom domain flow to set upinterviewflow.yourdomain.com.
After changing the schema, regenerate types:
npx supabase gen types typescript \
--project-id YOUR_PROJECT_REF \
> src/types/database.ts
See .env.example for full descriptions. Quick summary:
| Variable | Required | Where used |
|---|---|---|
VITE_SUPABASE_URL | For prod | Supabase client |
VITE_SUPABASE_ANON_KEY | For prod | Supabase client |
VITE_AI_ENABLED | Optional | Feature flag — set true to call live Gemini |
VITE_ADMIN_EMAIL | Optional | Email of the admin user; gates demo-mode UI |
src/
api/ # Vercel serverless functions (/api/ai/*)
components/ # Shared UI + domain components
contexts/ # React context (SearchContext)
data/ # Mock data store + seed helpers
hooks/ # Custom React hooks
lib/ # Utilities: supabase client, storage, mappers, env
pages/ # Route-level page components
services/ # Data access layer (mock + Supabase)
types/ # Entity types + Supabase DB types
utils/ # Pure helpers (date, format)
supabase/
migrations/ # SQL migration files (apply in order)
public/
manifest.webmanifest
icon-192.png # PWA icons
icon-512.png
docs/
runbook.md # Ops reference