A simple clock-in system to track employee work shifts.
The system is composed of a server component built using Express
, Prisma
for database interaction, and a client-side component built using React
.
The server offers RESTful APIs for CRUD operations related to employees and their respective work shifts.
The client provides a user-friendly interface to record work shifts, view summaries, and perform related tasks.
- Punch-In/Out System: Employees can easily clock-in and clock-out using their unique codes.
- Work Shift Summaries: View a summary of work shifts for a given time range for each employee.
- Fullscreen Mode: Optimized for kiosk-style deployments with a fullscreen mode.
- Database Interface: Database GUI used off
port:5555
for easy data manipulation.
- Docker and Docker Compose.
- Node.js (for development purposes)
- Clone this repository:
git clone https://github.com/jmarc101/clock-in-system
- Navigate to the project folder:
cd clock-in-system
- First Time Setup
cd server && npx prisma generate
- Start the services:
cd .. && docker-compose up
- Open a browser and navigate to http://localhost:8080 to access the client app.
/employees
: Retrieve a list of all employees./employees/:employeeId/workshifts
: Get work shifts of an employee for a specific date range./employees/:employeeId/punch
: Record a work shift start/end for an employee.
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.