Hero
- Status
- Live
- Role
- Sole developer
- Interface
- German
An application for shift planning: roster, vacation requests and the shift-swap marketplace bundled in one place instead of spread across several tools.
All three are now built. An admin imports each month's roster from the roster planners' Excel or CSV file; every member then sees only their own month, as a colour-coded calendar, and can offer a day for a swap straight from it. Desired days off and vacation are requested in the app and only reach the roster once an admin approves them.
On the shift-swap marketplace, every listing states what is offered and what is wanted in return; the noticeboard shows every open listing, split by gender, with name and shift-type filters. A dedicated admin panel manages accounts, listings, rosters and requests, with a safe "view as" impersonation and a log of every admin action. An annual planner is the one module still to come.
What it does
- Sign-up and sign-in, including self-service password reset
- Your own monthly roster as a colour-coded calendar with public holidays, monthly statistics and a PDF download
- Offer a roster day for a swap straight from the calendar
- Request desired days off and vacation; an admin approves or rejects each request
- Post a shift-swap listing: single day or block, offer and request
- A noticeboard with gender-split columns plus name and shift-type filters
- Edit, re-status or withdraw your own listings
- Admin panel: users, listings, roster import from Excel/CSV, request approvals, "view as" impersonation and an action log
How it is built
- Next.js 16 (App Router, Turbopack) with React 19 and TypeScript
- Tailwind CSS v4 with shadcn/ui on Base UI
- Supabase (Postgres + Auth), no ORM
- react-hook-form with Zod validation
- SheetJS reads uploaded roster spreadsheets (.xlsx / .csv) on the server
- Deployed on Render
Technology: Next.js, React, TypeScript, Tailwind CSS, Supabase, shadcn/ui, Render
Open Hero