Synaplan
기업을 위한 오픈소스 AI 플랫폼
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Project Pickup is a Tufts-only app where students post app and website projects and ask classmates for one scoped role ("UI/UX design · 3 screens · ~5 hrs"). Helpers send an offer, the owner accepts or declines, they chat, and when the work ships the owner leaves a credit note that shows up on the helper's profile.
Stack: Next.js 15 (App Router) · React 19 · TypeScript · Supabase (Postgres, Auth, Realtime) · Row Level Security · Zod · Vitest · Playwright · GitHub Actions · Vercel
Browser ──▶ Next.js middleware (refreshes session, guards /browse /post /messages /profile)
│
├─ Server Components ──▶ Supabase as the signed-in user ──▶ Postgres + Row Level Security
├─ Server Actions (Zod-validated) ──▶ inserts / rpc(accept_offer, complete_role, …)
└─ Client Components ──▶ Supabase Realtime (new messages)
Decisions worth knowing:
SECURITY DEFINER function that checks the caller. Users have no UPDATE permission on those columns, so the rules can't be skipped.auth.users refuses to create the account anyway.src/app/ pages: landing, sign-in, auth callback, (app)/browse|post|messages|profile
src/components/ landing sections, app shell, shared pieces
src/lib/ schemas (Zod), vocab, auth logic, Supabase clients
supabase/migrations database schema, access rules, workflow functions
tests/unit · tests/db · tests/e2e
design/ approved screens from Claude Design (the spec for Phase 2)
Requires Node 20.9+ (or the Docker command below).
npm install
cp .env.example .env.local # then fill in the two Supabase values
npm run dev # http://localhost:3000
With Docker on Windows, from the project folder:
docker run -it --rm -v "%cd%":/app -v /app/node_modules -w /app -p 3000:3000 -e WATCHPACK_POLLING=true node:22 bash
npm install && npm run dev
| Command | What it does |
|---|---|
npm run dev | Dev server with hot reload |
npm run check | Lint + typecheck + unit tests |
npm run test:db | Database access-rule tests (needs DATABASE_URL, see below) |
npm run test:e2e | Builds the site and runs Playwright on desktop and phone |
npm run build | Production build (shows bundle sizes) |
npm run test:db wipes and rebuilds the database it points at, so use a throwaway one:
docker run -d --name pickup-pg -e POSTGRES_PASSWORD=postgres -p 5432:5432 postgres:16
DATABASE_URL=postgres://postgres:postgres@localhost:5432/postgres npm run test:db
supabase/migrations/20261022000000_core_schema.sql → Run.anon public key into .env.local.http://localhost:3000 (change to your Vercel URL after deploying)http://localhost:3000/auth/callback and, later, https://<your-site>/auth/callbackThen sign in at /sign-in with your @tufts.edu email.
Push to GitHub, import the repo in Vercel, add the two NEXT_PUBLIC_SUPABASE_* variables (and NEXT_PUBLIC_SITE_URL), deploy, then add the Vercel URL to Supabase's Site URL and Redirect URLs.
design/Feed.dc.html)design/Project.dc.html)design/Post.dc.html)design/Messages.dc.html)design/Profile.dc.html)omni-moderation-latest) before saving. Refuse clearly abusive text, auto-file a report for borderline text, let messages through if the API is down. Needs OPENAI_API_KEY (Sensitive) in Vercel and a privacy note.CLAUDE.md holds the design system, architecture and code rules, plus a recipe for building each Phase 2 screen. Claude Code reads it at the start of every session.