Skip to content

About

A modern workforce scheduling platform for creating, managing, and tracking employee shifts with secure authentication, role-based access, and a responsive mobile-first interface.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

ScheduleWork

Weekly staff scheduling, without the spreadsheet chaos.

A lightweight scheduling tool for small teams to collect availability, plan shifts, and keep everyone on the same page.

Open Live App ↗  ·  Features  ·  Setup

React 19 TypeScript Vite Supabase Vercel


Overview

ScheduleWork streamlines the weekly scheduling process for a small team. Employees submit their availability, and administrators use that information to plan shifts in one place.

The project focuses on a straightforward workflow, a responsive interface, and practical tools for day-to-day scheduling.

Features

For employees

  • Submit weekly availability
  • Update availability before the deadline
  • View assigned schedules
  • Export schedules as JPG images
  • Use the interface on desktop or mobile

For administrators

  • Manage employees, groups, positions, and shifts
  • Open, lock, and archive availability weeks
  • Review team availability in a single matrix
  • Create schedules with drag-and-drop interactions
  • Identify scheduling conflicts

How it works

  1. Collect availability — Employees submit the days and times they can work.
  2. Review requests — Administrators review the team's availability for the week.
  3. Plan shifts — Administrators assign shifts and check for conflicts.
  4. View the schedule — Employees check their assigned shifts.

Tech stack

Area Technologies
Frontend React 19, TypeScript, Vite
Backend & data Supabase, PostgreSQL
Interactions dnd-kit
Testing Vitest
Deployment Vercel

Getting started

Prerequisites

  • Node.js and npm
  • A Supabase project with the project's database migrations applied

1. Clone the repository

git clone https://github.com/hungdeniubeo/Schedulework-Web.git
cd Schedulework-Web
npm install

2. Configure environment variables

Create a .env.local file in the project root:

VITE_SUPABASE_URL=https://<project-ref>.supabase.co
VITE_SUPABASE_PUBLISHABLE_KEY=<your-publishable-key>

Use your own Supabase project values. Never put a Supabase service-role key in client-side environment variables.

3. Start the development server

npm run dev

4. Run checks and build

npm test
npm run build

To preview the production build locally:

npm run preview

Project structure

src/        Application interface and scheduling logic
supabase/   Database migrations and Edge Functions
tests/      Automated tests
docs/       Project documentation

Project scope

  • Designed for a small internal team of up to 20 employees.
  • Uses employee and administrator roles.
  • Accounts are managed internally; there is no public sign-up flow.
  • Keeps the product focused on availability and shift scheduling rather than unnecessary workforce-management features.

Security notes

  • Apply the repository's Supabase migrations and Row Level Security policies when configuring a project.
  • Keep privileged credentials, including SUPABASE_SERVICE_ROLE_KEY, on the server only.
  • The frontend should use only the Supabase URL and publishable key.

Built and maintained by @hungdeniubeo

About

A modern workforce scheduling platform for creating, managing, and tracking employee shifts with secure authentication, role-based access, and a responsive mobile-first interface.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages