14d412544e
- 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.
57 lines
1.5 KiB
JSON
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"
|
|
}
|
|
}
|