census-ms)A SvelteKit-based census data collection and admin review system.
@neondatabase/serverless)Create a .env file in the project root.
DATABASE_URL: Postgres connection string used by the app and Drizzle.ADMIN_EMAIL or ADMIN_EMAILS: Admin allowlist (ADMIN_EMAILS is a comma-separated list).BETTER_AUTH_SECRETBETTER_AUTH_URL (or BETTER_AUTH_BASE_URL, depending on your deployment setup)npm install
Apply your current schema to the configured database:
npm run db:push
Other available database commands:
npm run db:generate
npm run db:migrate
npm run db:studio
npm run dev
Then open:
http://localhost:5173/http://localhost:5173/loginAdmin sign-up is restricted to emails in ADMIN_EMAIL/ADMIN_EMAILS.
Create an admin user by sending a POST request to:
POST /api/signupPayload:
{
"name": "Admin User",
"email": "[email protected]",
"password": "your-strong-password"
}
After signup, log in via /login with username/email + password.
/ - Public census submission form/login - Admin login/admin/approval - Pending submissions queue/admin/approval/[id] - Review/edit a pending submission/admin/details - Approved submissions list/admin/details/[id] - View/edit/delete an approved submission/logout - Admin sign-out endpointnpm run dev - Start dev servernpm run build - Production buildnpm run preview - Preview production buildnpm run check - Type + Svelte checksnpm run check:watch - Checks in watch modenpm run db:push - Push schema to DBnpm run db:generate - Generate SQL migrationsnpm run db:migrate - Apply migrationsnpm run db:studio - Open Drizzle Studiosrc/routes/admin/+layout.server.ts.