Blame

28a846 Tebby Dog 2025-08-08 19:55:24 1
# πŸ“Š Employee Hour Tracker
2
ccec28 Tebby Dog 2025-08-08 20:00:53 3
> A badass web app to monitor employees entering their time, serve up real-time analytics, and automate your backups β€” so you can stop worrying and focus on getting sh*t done.
28a846 Tebby Dog 2025-08-08 19:55:24 4
5
![Node.js](https://img.shields.io/badge/Node.js-18%2B-green)
6
![Express](https://img.shields.io/badge/Express-4.18-blue)
7
![SQLite](https://img.shields.io/badge/SQLite-3-orange)
8
![Docker](https://img.shields.io/badge/Docker-Ready-blue)
442327 Tebby Dog 2025-08-08 20:15:49 9
![License](https://img.shields.io/badge/License-MIT-yellow)
28a846 Tebby Dog 2025-08-08 19:55:24 10
f29811 Tebby Dog 2025-08-08 20:07:53 11
---
12
6f2711 Tebby Dog 2025-08-09 20:08:31 13
<details>
14
<summary><i>Click to show screenshots</i></summary>
15
f29811 Tebby Dog 2025-08-08 20:07:53 16
## Screenshots
17
![Table View](./Screenshot_2025-08-08_at_4.03.27_PM.png)
18
[![Table View](./Screenshot_2025-08-08_at_4.03.27_PM.png?thumbnail)](./Screenshot_2025-08-08_at_4.03.27_PM.png)
19
[![Management](./Screenshot_2025-08-08_at_4.03.54_PM.png?thumbnail)](./Screenshot_2025-08-08_at_4.03.54_PM.png)
20
[![Analytics](./Screenshot_2025-08-08_at_4.05.46_PM.png?thumbnail)](./Screenshot_2025-08-08_at_4.05.46_PM.png)
21
6f2711 Tebby Dog 2025-08-09 20:08:31 22
</details>
f29811 Tebby Dog 2025-08-08 20:07:53 23
ccec28 Tebby Dog 2025-08-08 20:00:53 24
---
25
28a846 Tebby Dog 2025-08-08 19:55:24 26
## ✨ Features
27
ccec28 Tebby Dog 2025-08-08 20:00:53 28
### πŸ“… **Time Tracking (A.K.A. Keeping Tabs on Your Squad)**
29
30
- Weekly grid interface sharp enough to make spreadsheets cry
31
- Click once? Log it. Twice? Flag it. Thrice? Fix-it mode, baby
32
- Built-in calendar picker so you don't fat-finger the wrong week
33
- Default week your way β€” past, present, or hell, even the future
34
- No β€œSave” button needed β€” everything saves itself like grown-up software
28a846 Tebby Dog 2025-08-08 19:55:24 35
36
### πŸ“ˆ **Analytics Dashboard**
ccec28 Tebby Dog 2025-08-08 20:00:53 37
38
- Sexy-ass charts courtesy of Chart.js
39
- Date ranges? Yep. Choose from Last Week, Month, 90 Days, or freestyle
40
- Pie charts of shame: See who's not entered a damn thing
41
- Employee comparisons so you know who’s crushing it
42
- Summary stats that slap you with truths at a glance
28a846 Tebby Dog 2025-08-08 19:55:24 43
44
### πŸ‘₯ **Employee Management**
ccec28 Tebby Dog 2025-08-08 20:00:53 45
46
- Add, edit, and yeet employees in or out with full control
47
- Inline editing β€” because popups can get bent
48
- Confirmation dialogs keep you from rage-deleting poor Jim by mistake
49
- Secure, session-based login β€” no freeloaders allowed
28a846 Tebby Dog 2025-08-08 19:55:24 50
51
### πŸ’Ύ **Data Export & Backup**
ccec28 Tebby Dog 2025-08-08 20:00:53 52
53
- Export in:
54
- Colored Excel (preserves all that green/yellow/red goodness)
55
- JSON (for the nerds and the APIs)
56
- CSV (because boring as hell = universal)
57
- Auto-backups so you can sleep like a baby β€” configurable too
58
59
### 🎨 **Beautiful AF UI**
60
61
- Responsive as heck β€” use it on a tablet, a phone, or a potato
62
- A glorious purple gradient worth showing off to design nerds
63
- Smooth transitions that don’t make you nauseous
64
- Touch support that'll make any mobile user say β€œdamn that’s clean”
65
- You might actually enjoy navigating this one
66
67
---
28a846 Tebby Dog 2025-08-08 19:55:24 68
69
## πŸš€ Quick Start
70
ccec28 Tebby Dog 2025-08-08 20:00:53 71
### Prerequisites (Don’t Skip This, Ya Animal)
28a846 Tebby Dog 2025-08-08 19:55:24 72
ccec28 Tebby Dog 2025-08-08 20:00:53 73
- Node.js 18+
74
- OR Docker & Docker Compose (we’re fancy)
28a846 Tebby Dog 2025-08-08 19:55:24 75
ccec28 Tebby Dog 2025-08-08 20:00:53 76
---
28a846 Tebby Dog 2025-08-08 19:55:24 77
ccec28 Tebby Dog 2025-08-08 20:00:53 78
### πŸ§ͺ Option 1: Raw Node.js
28a846 Tebby Dog 2025-08-08 19:55:24 79
```bash
80
git clone https://github.com/tebwritescode/employee-hour-tracker.git
81
cd employee-hour-tracker
82
npm install
ccec28 Tebby Dog 2025-08-08 20:00:53 83
npm start # Start like a regular ol' app
84
npm run dev # If you want auto-reload magic
28a846 Tebby Dog 2025-08-08 19:55:24 85
```
86
ccec28 Tebby Dog 2025-08-08 20:00:53 87
---
88
89
### 🐳 Option 2: Docker Compose (Recommended as Hell)
28a846 Tebby Dog 2025-08-08 19:55:24 90
91
```bash
92
git clone https://github.com/tebwritescode/employee-hour-tracker.git
93
cd employee-hour-tracker
94
docker-compose up -d
ccec28 Tebby Dog 2025-08-08 20:00:53 95
docker-compose logs -f # Because watching logs is oddly satisfying
96
docker-compose down # When it’s time to kill it
28a846 Tebby Dog 2025-08-08 19:55:24 97
```
98
ccec28 Tebby Dog 2025-08-08 20:00:53 99
---
100
101
### πŸ”¨ Option 3: Docker CLI (For Hardcore Terminal Nerds)
28a846 Tebby Dog 2025-08-08 19:55:24 102
103
```bash
104
docker build -t employee-hour-tracker .
105
docker run -d \
106
--name employee-tracker \
107
-p 3000:3000 \
108
-v employee-tracker-data:/app/data \
109
employee-hour-tracker
110
```
111
ccec28 Tebby Dog 2025-08-08 20:00:53 112
App launches at `http://localhost:3000`
113
Go ahead, open it. We dare you.
28a846 Tebby Dog 2025-08-08 19:55:24 114
ccec28 Tebby Dog 2025-08-08 20:00:53 115
---
28a846 Tebby Dog 2025-08-08 19:55:24 116
ccec28 Tebby Dog 2025-08-08 20:00:53 117
## πŸ”§ Configuration (Don't Screw These Up)
28a846 Tebby Dog 2025-08-08 19:55:24 118
119
| Variable | Default | Description |
120
|----------|---------|-------------|
ccec28 Tebby Dog 2025-08-08 20:00:53 121
| `PORT` | `3000` | Where the hell the server listens |
122
| `NODE_ENV` | `development` | Pick your poison: `development` vs `production` |
123
| `DB_PATH` | `./employee_tracker.db` | Where your crucial time data lives |
124
| `SESSION_SECRET` | `employee-tracker-secret-key` | Hide this like it’s your banking password |
125
| `DEFAULT_ADMIN_USERNAME` | `admin` | The overlord’s default login |
126
| `DEFAULT_ADMIN_PASSWORD` | `admin123` | CHANGE THIS ASAP πŸ”₯ |
127
| `BACKUP_ENABLED` | `true` | Yeah, you want this on |
128
| `BACKUP_INTERVAL` | `86400000` | How often to save your backside (MS) |
129
| `BACKUP_RETENTION_DAYS` | `30` | How long to keep your safety net |
130
131
---
132
133
### πŸ‹ Docker Compose Config
28a846 Tebby Dog 2025-08-08 19:55:24 134
135
```yaml
136
version: '3.8'
137
services:
138
app:
139
image: employee-hour-tracker
140
environment:
141
- NODE_ENV=production
142
- SESSION_SECRET=your-secure-secret-here
143
- DEFAULT_ADMIN_USERNAME=admin
144
- DEFAULT_ADMIN_PASSWORD=change-this-password
145
ports:
146
- "3000:3000"
147
volumes:
148
- ./data:/app/data
149
- ./backups:/app/backups
150
```
151
ccec28 Tebby Dog 2025-08-08 20:00:53 152
---
153
28a846 Tebby Dog 2025-08-08 19:55:24 154
## πŸ“– Usage Guide
155
ccec28 Tebby Dog 2025-08-08 20:00:53 156
### ⏱️ Time Tracking `/tracking`
157
158
1. Pick your week and start clicking grid cells like a god
159
2. Cycle statuses like a boss
160
3. Sit back β€” auto-save’s doing the work for you
161
4. Use arrows & selectors if you like jumping through time
162
163
### πŸ“Š Analytics `/analytics`
28a846 Tebby Dog 2025-08-08 19:55:24 164
ccec28 Tebby Dog 2025-08-08 20:00:53 165
1. Choose your dates
166
2. Interpret shame-slices in the pie chart
167
3. Compare your team’s hustle in bar form
168
4. Click Export and flex on your boss with pretty data
28a846 Tebby Dog 2025-08-08 19:55:24 169
ccec28 Tebby Dog 2025-08-08 20:00:53 170
### πŸ‘¨β€πŸ’Ό Admin Stuff `/management`
171
172
1. Log in as admin (`admin` / `admin123`) β€” seriously, change that
173
2. Add new employees like it’s HR day
174
3. Click to edit names (typos won’t fix themselves)
175
4. Boot off old names thoughtfully (confirmation included)
176
5. Global settings & data export tools right at your manicured fingertips
177
178
---
28a846 Tebby Dog 2025-08-08 19:55:24 179
ccec28 Tebby Dog 2025-08-08 20:00:53 180
## πŸ—οΈ Project Architecture
28a846 Tebby Dog 2025-08-08 19:55:24 181
182
```
183
employee-hour-tracker/
ccec28 Tebby Dog 2025-08-08 20:00:53 184
β”œβ”€β”€ πŸ“„ server.js # RESTful backend engine of doom
185
β”œβ”€β”€ πŸ“„ backup.js # Makes sure your data doesn’t go *poof*
186
β”œβ”€β”€ πŸ“„ package.json # Clearly you’ve heard of this
187
β”œβ”€β”€ πŸ“„ docker-compose.yml # Container boyband orchestration
188
β”œβ”€β”€ πŸ“„ Dockerfile # Turns your app into deployable magic
189
β”œβ”€β”€ πŸ“ public/ # Frontend good stuff
190
β”‚ β”œβ”€β”€ index.html # Your glorious entry point
191
β”‚ β”œβ”€β”€ style.css # Sharp purple swagger
192
β”‚ β”œβ”€β”€ script.js # Grid logic + admin finesse
193
β”‚ └── chart.js # Analytics eye-candy
194
β”œβ”€β”€ πŸ“ backups/ # This folder saves asses
195
└── πŸ“— employee_tracker.db # Don't delete this... seriously
28a846 Tebby Dog 2025-08-08 19:55:24 196
```
197
ccec28 Tebby Dog 2025-08-08 20:00:53 198
---
199
200
### βš™οΈ Tech Stack
201
202
- **Backend**: Node.js + Express
203
- **Database**: SQLite3 + better-sqlite3 (the better part matters)
204
- **Frontend**: Raw Vanilla JS (no extra calories) + Chart.js
205
- **Auth**: express-session + bcryptjs (like a bouncer for your admin area)
206
- **Containerization**: Docker & Docker Compose
207
208
---
28a846 Tebby Dog 2025-08-08 19:55:24 209
210
## πŸ” Security
211
ccec28 Tebby Dog 2025-08-08 20:00:53 212
- Hashed passwords (get rekt plain text)
213
- Session-based login β€” no silly tokens
214
- CORS-tight so outsiders can’t jack your data
215
- SQL injection-proof β€” parameterized 'cause we’re not amateurs
216
- Secrets optional but highly encouraged (you’ve been warned)
28a846 Tebby Dog 2025-08-08 19:55:24 217
ccec28 Tebby Dog 2025-08-08 20:00:53 218
---
28a846 Tebby Dog 2025-08-08 19:55:24 219
ccec28 Tebby Dog 2025-08-08 20:00:53 220
## πŸ”§ Dev Life
28a846 Tebby Dog 2025-08-08 19:55:24 221
222
```bash
ccec28 Tebby Dog 2025-08-08 20:00:53 223
npm run dev # Hot reload fixups
224
npm start # Serious prod mode
225
npm run install-deps # Just in case you skipped setup like a rebel
226
```
28a846 Tebby Dog 2025-08-08 19:55:24 227
ccec28 Tebby Dog 2025-08-08 20:00:53 228
---
28a846 Tebby Dog 2025-08-08 19:55:24 229
ccec28 Tebby Dog 2025-08-08 20:00:53 230
### πŸ”Œ API Endpoints
231
232
| Method | URL | What-It-Does | Auth |
233
|--------|-----|--------------|------|
234
| GET | `/api/employees` | Fetch worker list | ❌ |
235
| POST | `/api/employees` | Add a badass | βœ… |
236
| PUT | `/api/employees/:id` | Update someone’s stuff | βœ… |
237
| DELETE | `/api/employees/:id`| Boot 'em | βœ… |
238
| GET | `/api/time-entries` | Fetch time logs | ❌ |
239
| POST | `/api/time-entries` | Save/correct logs | ❌ |
240
| GET | `/api/analytics` | Data candy | ❌ |
241
| POST | `/api/login` | Get in | ❌ |
242
| POST | `/api/logout` | Peace out | βœ… |
243
| GET | `/api/export/:format` | Download your victory proof | βœ… |
28a846 Tebby Dog 2025-08-08 19:55:24 244
ccec28 Tebby Dog 2025-08-08 20:00:53 245
---
28a846 Tebby Dog 2025-08-08 19:55:24 246
ccec28 Tebby Dog 2025-08-08 20:00:53 247
## 🐞 Known WTFs
28a846 Tebby Dog 2025-08-08 19:55:24 248
ccec28 Tebby Dog 2025-08-08 20:00:53 249
- Week nav is a little moody if you click like a caffeinated squirrel
250
- In rare cases, the status marker’s a lazy bastard and doesn’t update instantly
28a846 Tebby Dog 2025-08-08 19:55:24 251
ccec28 Tebby Dog 2025-08-08 20:00:53 252
(Fix coming soon. Or yell at us, that works too.)
253
09c337 Tebby Dog 2025-08-08 20:28:23 254
## Support
28a846 Tebby Dog 2025-08-08 19:55:24 255
09c337 Tebby Dog 2025-08-08 20:28:23 256
Issues? Questions? Praise-singing?
257
File an issue on GitHub or yell at [teb](https://github.com/tebwritescode).
28a846 Tebby Dog 2025-08-08 19:55:24 258
ccec28 Tebby Dog 2025-08-08 20:00:53 259
---
09c337 Tebby Dog 2025-08-08 20:28:23 260
πŸ‘‘ Created by: [tebbydog0605](https://github.com/tebwritescode)
261
πŸ‹ Docker Hub: [tebwritescode](https://hub.docker.com/u/tebwritescode)
262
πŸ’» Website: [teb.codes](https://teb.codes)