DeepSeek Harness Remote
DeepSeek Harness Remote 可将手机或另一台电脑与你运行 DeepSeek Harness 的电脑安全连接,随时随地继续你的工作,方便随时查看进度并继续工作。
AI 翻译
尚未收集仓库信息。
尚未检测到更新。GitHub 发布版本后会显示在这里。
Sahan is the simplest way for professionals and organisations in Somalia and East Africa to build a structured profile and generate an elegant, recruiter-ready CV or bid-ready company profile — free, on any phone, in minutes. Add verified badges to the experience and projects that matter.
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗Verified professional profiles for the East Africa / Somalia humanitarian and professional sector. Build a structured profile (individual or company) and download an elegant A4 PDF; admin-verified badges sit inline next to specific claims.
See CLAUDE.md for the full spec — scope, data model, privacy rules, and milestone order.
@sparticuz/chromium-min for PDF generation (lands in Milestone 5)# 1. Install
npm install
# 2. Configure environment
cp .env.example .env.local
# then fill in NEXT_PUBLIC_SUPABASE_URL, NEXT_PUBLIC_SUPABASE_ANON_KEY,
# and SUPABASE_SERVICE_ROLE_KEY from your Supabase project settings.
# 3. Apply the database schema
# Open your Supabase project → SQL editor, paste the contents of
# supabase/migrations/0001_init.sql, and run it. Idempotent — safe to re-run.
# 4. Run dev
npm run dev
# → http://localhost:3000
If Supabase env vars are missing, the app degrades to a login redirect instead of crashing — the same defensive pattern used elsewhere. You can still see the landing page (/) without configuration.
| Command | What it does |
|---|---|
npm run dev | Next dev server on http://localhost:3000 |
npm run build | Production build (also serves as type-check) |
npm run start | Serve the production build |
npm run lint | next lint |
app/
page.tsx Public landing
login/, signup/ Auth screens (password + magic link)
auth/callback/route.ts Email-confirmation + magic-link callback
(app)/ Auth-gated routes (layout enforces session)
home/ Logged-in homepage
profile/ Profile builder (placeholder until Milestone 4)
templates/ Template picker (Milestone 5+)
verification/ Verification request flow (Milestone 8)
settings/ Privacy & visibility (Milestone 9)
components/ Shared UI primitives (Button, TopNav, VerifiedBadge…)
lib/
supabase/ client / server / route / middleware clients
types.ts Domain types + placeholder Database type
cn.ts classnames helper
middleware.ts Route protection + session refresh
supabase/migrations/ SQL schema (apply in Supabase SQL editor)
verify/ Original design references (jsx prototypes,
CLAUDE.md spec) — preserved, excluded from build
/signup — user picks individual or company, enters name + email + password.
Account type and display name are stashed in Supabase user_metadata.handle_new_user) creates the matching public.profiles row
with safe-default section_visibility (private referees, registered-only contact, etc)./login — password or magic-link. Magic links land at /auth/callback, which
exchanges the code for a session cookie and redirects to /home.middleware.ts refreshes the session on every request and bounces unauthenticated
users away from /home, /profile, etc.Enforced at the DB layer:
referees rows are owner + admin only. No public read path exists.verified flags can NOT be flipped by the row owner — only an admin
(or service-role) update can set them. See the WITH CHECK clauses in the migration.verification_requests.evidence_urls is owner + admin only.section_visibility JSON defaults set sensitive sections to registered_only or
private on profile creation..env.example in the Vercel project settings.CHROMIUM_REMOTE_EXEC_PATH once Milestone 5 wires up the PDF route.