Member directory for the OpenChain Korea Work Group. Members sign in with GitHub, register a profile, and appear in the directory after admin approval.
🌐 한국어 README: README.ko.md
- GitHub / Google OAuth sign-in
- Profile registration with an admin approval workflow
- Real-time name/company search + category filters
- Member detail view (email shown to signed-in members only)
- Dark mode (manual toggle); Korean UI (English localization in progress)
- PIPA-compliant:
robots.txtnoindex + privacy policy
| Area | Tech |
|---|---|
| Frontend | Next.js 16 (App Router) + Tailwind CSS v4 |
| Backend | Supabase (PostgreSQL + Row Level Security) |
| Auth | next-auth v5 (GitHub OAuth) |
| Deploy | Vercel |
| Testing | Vitest + React Testing Library + Playwright |
| Language | TypeScript |
Requires Node.js 22+, npm 10+, a Supabase project, and a GitHub OAuth App.
git clone https://github.com/OpenChain-KWG/kwg-directory.git
cd kwg-directory
npm install
cp .env.example .env.local # fill in values — see comments in .env.example
npm run dev # http://localhost:3000Full setup (Supabase schema, OAuth apps, admin bootstrap) and production deployment are documented in docs/deployment.md.
| Topic | Document |
|---|---|
| Architecture | docs/architecture.md |
| Deployment & setup | docs/deployment.md |
| Testing | docs/testing.md |
| Data & privacy | docs/data-policy.md |
| Internationalization | docs/i18n.md |
| Design principles | docs/design/principles.md |
npm test # unit + integration (Vitest)
npm run test:e2e # end-to-end (Playwright)
npm run test:rls # Supabase RLS policy tests- All DB writes go through server-side API routes only
- Supabase RLS: only
approved = truerecords are publicly readable - Email is exposed only to signed-in members and only when
email_public = true - Security headers (CSP, X-Frame-Options, HSTS) in
next.config.ts - The server refuses to start in production if
NEXTAUTH_SECRETis shorter than 32 chars
Report vulnerabilities via SECURITY.md.
Contributions are welcome. Read CONTRIBUTING.md (English) / CONTRIBUTING.ko.md (한국어) before opening a pull request. Please also follow the Code of Conduct.
Apache License 2.0 · Copyright OpenChain Korea Work Group