Internal task management web application built with Next.js 14 and Supabase.
- Frontend: Next.js 14 (App Router), React, Tailwind CSS
- Backend / DB: Supabase (PostgreSQL)
- Auth: Supabase Auth (email/password,
@harrisons.com.myonly) - Storage: Supabase Storage (task file uploads)
- Export: xlsx
- Create a project at Supabase.
- Run the SQL migrations in order (see
supabase/README.md):supabase/migrations/001_initial_schema.sqlsupabase/migrations/002_storage.sql
- Create the task-files storage bucket in the Dashboard (private, 10MB limit).
- Enable pg_cron and schedule the daily task job (see
supabase/README.md). - Create at least one branch and department, then create an admin user and insert a row in
profiles.
Copy env.example to .env.local and set:
NEXT_PUBLIC_SUPABASE_URL— project URLNEXT_PUBLIC_SUPABASE_ANON_KEY— anon keySUPABASE_SERVICE_ROLE_KEY— service role key (for admin user creation / password reset)
npm install
npm run devOpen http://localhost:3000. Log in with a user that has a profiles row (Harrison email).
- Staff: Dashboard, today’s tasks, accept/answer/submit, history, profile, leaderboard.
- PIC: Same as staff plus PIC dashboard, verify/reject tasks, templates, reports, Excel export.
- Admin: Same as PIC plus user/branch/department CRUD, point settings, password reset.
- Push the repo and import the project in Vercel.
- Add the same env vars in the Vercel project.
- Deploy.
See SPEC.md for full product spec and supabase/README.md for database and cron setup.