Files
Nilai_Clock/package.json
T
sudomarcma 14d412544e feat: Implement worker authentication and device validation in backend
- Added login route with JWT token generation and device validation for non-manager roles.
- Implemented clocking functionality with geofence validation and distance calculation.
- Created routes for managing workers, including password change and device registration.
- Added security status and app blacklist retrieval endpoints.

feat: Develop Geofence Management component

- Created a Vue component for managing geofences with map integration using Leaflet.
- Implemented functionality to draw, save, activate/deactivate, and delete geofences.
- Added UI for displaying existing geofences in a table format.

feat: Introduce Kill Switch Management component

- Developed a calendar-based UI for managing enabled/disabled dates.
- Implemented functionality to apply or discard changes to the work schedule.
- Added visual indicators for pending changes in the calendar.

feat: Create Warning Reporting component

- Implemented a reporting interface for failed clock records with search and filter options.
- Added detail modal for viewing specific failed record details.
- Implemented sorting functionality for the records table.
2025-07-16 17:57:25 +08:00

57 lines
1.5 KiB
JSON

{
"name": "nilai-clock",
"version": "0.0.0",
"private": true,
"type": "module",
"scripts": {
"dev": "vite --host",
"backend": "node ./backend/server.js",
"dev:all": "concurrently \"npm run dev\" \"npm run backend\"",
"build": "vite build",
"preview": "vite preview",
"lint": "eslint . --fix",
"format": "prettier --write src/"
},
"dependencies": {
"@capacitor/cli": "^7.4.0",
"@capacitor/core": "^7.4.0",
"@primeuix/themes": "^1.1.2",
"@turf/turf": "^7.2.0",
"bcrypt": "^6.0.0",
"body-parser": "^2.2.0",
"cors": "^2.8.5",
"dotenv": "^16.6.1",
"express": "^5.1.0",
"html5-qrcode": "^2.3.8",
"json2csv": "^6.0.0-alpha.2",
"jsonwebtoken": "^9.0.2",
"mysql2": "^3.14.2",
"primevue": "^4.3.5",
"qrcode": "^1.5.4",
"uuid": "^11.1.0",
"vue": "^3.5.13",
"vue-i18n": "^11.1.7",
"vue-router": "^4.5.0"
},
"devDependencies": {
"@eslint/js": "^9.22.0",
"@tailwindcss/vite": "^4.1.10",
"@types/leaflet": "^1.9.20",
"@types/leaflet-draw": "^1.0.12",
"@vitejs/plugin-vue": "^5.2.3",
"@vue/eslint-config-prettier": "^10.2.0",
"autoprefixer": "^10.4.21",
"concurrently": "^9.1.2",
"eslint": "^9.22.0",
"eslint-plugin-vue": "~10.0.0",
"globals": "^16.0.0",
"leaflet": "^1.9.4",
"leaflet-draw": "^1.0.4",
"postcss": "^8.5.6",
"prettier": "3.5.3",
"tailwindcss": "^4.1.10",
"vite": "^6.2.4",
"vite-plugin-vue-devtools": "^7.7.2"
}
}