Synaplan
기업을 위한 오픈소스 AI 플랫폼
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Production-oriented foundation for the multi-tenant automobile dealership CRM defined in AGENTS.md.
The web app has an explicit local visual-preview mode. Preview data is isolated in src/lib/demo-page-repository.ts and is never rendered merely because configuration is missing. Production authorization and domain persistence live at the Supabase boundary.
pnpm install
pnpm dev
Open http://localhost:3000. Normal development requires configured Supabase public values and fails closed they are absent.
For local screenshot/manual QA only, set NEXT_PUBLIC_ENABLE_LOCAL_PREVIEW=true and run pnpm dev. The flag must be the literal true, is honored only when NODE_ENV=development, and exposes a floating role switcher plus isolated sample workspaces. Open / to start on the Sales Consultant dashboard, then use the floating Dev role button to jump directly to any role dashboard. This simulates the UI role preset only; it never changes a real account, permission, or data scope. The flag is ignored by production builds even if accidentally set.
Copy .env.example to .env.local and supply the configured project values. Never expose SUPABASE_SERVICE_ROLE_KEY, Tigris credentials, Brevo credentials, Trigger credentials, encryption keys or provider secrets through NEXT_PUBLIC_* or EXPO_PUBLIC_* variables.
Add the deployed /auth/callback URL to Supabase Auth redirect URLs; the recovery request adds a validated next=/reset-password query. Password-recovery delivery also requires production custom SMTP (Brevo per AGENTS.md). Public NEXT_PUBLIC_* values are embedded at build time, so configure them before the Vercel build rather than only after deployment.
Sample workspace records remain preview-only. Until each live Supabase query/RPC adapter is wired, configured deployments display a closed data-boundary state instead of demo customer or lead data.
Apply the migrations in order and seed catalogs:
supabase db reset
supabase functions serve
Deploy each focused function from supabase/functions/ according to the target Supabase project. Configure provider/Tigris/Brevo secrets through Supabase Edge secrets, not database rows readable by clients.
For Trigger.dev, set TRIGGER_PROJECT_REF and TRIGGER_SECRET_KEY, then deploy the tasks in trigger/ using the current Trigger.dev v4 CLI.
Create mobile/.env.local from mobile/.env.example and set only
EXPO_PUBLIC_SUPABASE_URL and EXPO_PUBLIC_SUPABASE_ANON_KEY. Expo loads environment files from
the mobile/ project directory, and these public values are embedded in the mobile bundle. Never
copy server or provider secrets into that file.
pnpm dlx [email protected] mobile/node_modules/expo/bin/cli start mobile --clear --android
Fully stop the old Metro process before restarting it after any environment change. For EAS builds, configure the same two public values separately in the selected preview or production environment. Provider/service credentials never belong in Expo variables. Test-drive background location requires a development or production build; Expo Go cannot validate every background-location behavior.
pnpm format:check
pnpm lint
pnpm typecheck
pnpm test:api
pnpm build
pnpm --dir mobile typecheck
Automated tests intentionally cover backend/API/domain contracts only. UI validation remains manual per the product contract.
Production release order, environment ownership, rollback guidance and current external blockers are documented in the deployment runbook. Repository deployment commands are pinned, but they are never executed by CI automatically; production changes require an authorized operator and the release gates in that runbook.
Pending is derived work state and never a lead lifecycle value.