A verified network connecting rescue groups, vet clinics, volunteers, foster homes and adopters of dogs and cats in Ho Chi Minh City.
Translation pending
SocialTypeScript · PLpgSQLGitHub @nguyenphucanhrnd-pngOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
HomeForAll: từ cứu hộ đến mái ấm trọn đời (TP.HCM) - prototype
Translation pending
Loading the full README.
Read the full README ↗Từ cứu hộ đến mái ấm trọn đời: a nonprofit platform connecting rescue groups, vet clinics, volunteers, foster homes and adopters of dogs and cats in Ho Chi Minh City.
/vi), English (/en).npm install
cp .env.example .env.local # fill in the Supabase values
npm run dev # http://localhost:3000 → redirects to /vi
The site runs without Supabase (browse-only; login shows "not connected").
npx supabase link --project-ref <ref> then npx supabase db push, or paste supabase/migrations/*.sql into the SQL editor in order.http://localhost:3000/auth/confirm and https://<domain>/auth/confirm to Redirect URLs.NEXT_PUBLIC_SUPABASE_URL, NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY, SUPABASE_SECRET_KEY in .env.local.# .env.local: HFA_ALLOW_DEV_USERS=true
node --env-file=.env.local scripts/dev-role-users.ts
Prints one single-use login link per role ([email protected], rescue-partner@…, …). Rescue and vet users get a verified [Demo] organisation.
.mcp.json registers the 21st.dev MCP server (UI component search, inspiration, logos, generation). The key is never committed: it is read from the API_KEY_21ST environment variable.
setx API_KEY_21ST "your-key" (then fully restart VS Code / Claude Code). macOS/Linux: export it in your shell profile.design-refs/video/master.mp4 (or master-4k.mp4) and edit design-refs/video/master-timecodes.txt.python design-refs/scripts/hfa_media.py all (needs Python 3.8+ and ffmpeg) → public/assets/plates/sNN/ + public/assets/stills/./vi/dev/plates in npm run dev to check frames, focal points and scroll ranges.| Command | What it does |
|---|---|
npm run dev | Dev server |
npm run check | Type-check, lint, unit + RLS tests, production build |
npm test | Vitest: roles, colour-contrast tokens, RLS policies (real migrations in PGlite) |
npm run e2e | Playwright + axe against the production build (run npm run build first) |
npm run format | Prettier |
messages/ vi.json, en.json (every UI string)
src/app/[locale]/ pages (help, login, dashboard, admin, stubs for later milestones)
src/app/auth/ magic-link confirm route
src/components/ layout shell, brand, ui primitives
src/i18n/ next-intl routing + request config
src/lib/ env, supabase clients, auth (viewer, roles, guards)
src/proxy.ts locale routing + session refresh
supabase/migrations/ SQL migrations (RLS on every table)
tests/ Vitest (tokens, db/RLS)
e2e/ Playwright journeys
scripts/ dev tooling
Design rules and decisions: see CLAUDE.md.
The product is built to support Vietnam's Personal Data Protection Law (No. 91/2025/QH15): explicit unticked consent, data minimisation, self-service export and deletion, consent timestamps. The UI does not claim legal compliance. The privacy policy and terms must be reviewed by a qualified person before 1 Feb 2027.
Medical content on /help and /learn stays a marked placeholder until it is copied from WHO / Ministry of Health sources and signed off by a medical reviewer.
pg_dump backup.public/brand/)npm run seed:clear-demo)