A time tracking application for managing work hours and periods.
- Docker installed on your NAS
- Docker Compose installed on your NAS
- Create a directory on your NAS:
mkdir -p /volume1/docker/time-tracking-app- Copy all files to the NAS directory:
scp -r * user@your-nas-ip:/volume1/docker/time-tracking-app/- SSH into your NAS and navigate to the application directory:
ssh user@your-nas-ip
cd /volume1/docker/time-tracking-app- Build and start the application:
docker-compose up -d --buildThe application will be available at:
http://your-nas-ip:3001
- The database is stored in the
dbdirectory and is persisted through Docker volumes - To backup your data, copy the
dbdirectory from the NAS
- Copy new files to the NAS
- Run:
docker-compose down
docker-compose up -d --build- Install dependencies:
npm install
cd client && npm install- Start the server:
npm start- Start the client (in a new terminal):
cd client && npm startThe application will be available at:
- Frontend: http://localhost:3000
- Backend: http://localhost:3001
- 28-day period calendar view
- Default work week schedule (Sun-Wed: 8.5h, Thu: 8h, Fri-Sat: 0h)
- Client hours tracking (target: 143 hours per period)
- General hours tracking
- Leave and holiday handling
- Period-aware calendar UI
- Custom leave input form
- Auto-adjustment logic for absences
- Summarized reports
- Node.js (v14 or higher)
- npm (v6 or higher)
- Clone the repository
- Install dependencies:
npm install
-
Start the backend server:
npm run dev
-
The server will start on port 3001 by default
GET /api/periods/current- Get current period informationGET /api/periods/:periodNumber/workdays- Get workdays for a specific periodPUT /api/workdays/:id- Update workday hours
The application uses SQLite for data storage. The database file will be created automatically when you first run the application.
MIT