根據勞基法的規定, 公司都需要有一套紀錄員工上下班時間的打卡系統.
clock-in就是一套免費簡易的打卡系統, 幫助公司紀錄員工上下班時間及請假紀錄. 其特點如下
- 讓員工線上打卡, 請假. 管理員可以看到紀錄.
- 同時支援手機及電腦版.
- 擁有自動打卡的功能, 管理員可以設定「自動打卡」. 若開啟這項功能系統將會自動幫員工線上打卡, 即使員工忘了打卡, 還是會有紀錄以供勞保局查驗.
According to the law, all companies must have some sort of clock-in system to record employee's working hours. clock-in is a free, easy-to-use clock-in system for start up or small companies to use. Feature:
- Online clock-in or ask for leave. Admin can manage by those record and stat.
- Responsive
- Auto clock-in. Admin is able to set "auto clock-in". Once it is ON, the system will automatically clock-in for the user.(Its a cheat, if some start-up doesn't care the working hour).
管理員擁有較多權限: 例如讀取使用者打卡及請假, 設定自動打卡.(Admin can do more things. Such as read statistic of all user, set auto clock-in.)
-
將程式碼上傳至
www
目錄 -
修改
lib/config.php
DB及Domain資訊, db schema在_doc/db.sql
當中. -
db中預設管理員帳密(default account and password):
#帳號(account): root #密碼(password): 帳號加上一二三四五(阿拉伯數字) #一般使用者需要等管理員新增帳號後才會取得帳密.
-
設定cronjob
-
腳本存在
_script
目錄下面 -
dryrun.php 為測試用(for test). 可以先把要給cron執行的指令測試一下
# macOS $ curl localhost/clock-in/_script/clock_in.php # Ubuntu curl https://csc-mgr.info/clock-in/_script/dryrun.php
若出現
admin account is xxxxx, dryrun success!
代表成功.cronjob會每15分鐘跑一次來幫使用者在預定時間打卡.
$ sudo crontab -e
.# macOS */15 * * * * curl localhost/clock-in/_script/clock_in.php # Ubuntu */15 * * * * curl https://csc-mgr.info/clock-in/_script/clock_in.php
在管理介面 admin_holiday.php
可匯入.csv來新增, 修改國定假日.
第需要column名稱.
範例:
```
"2018/6/18","端午節","是","放假之紀念日及節日","全國各機關學校放假一日。"
.
.
.
"2018/8/25","","是","星期六、星期日",""
"2018/8/26","","是","星期六、星期日",""
"2018/9/1","","是","星期六、星期日",""
"2018/9/2","","是","星期六、星期日",""
"2018/9/3","軍人節","是","特定節日","軍人依國防部規定辦理。"
```
- session存在DB當中
- 每位使用者(包含管理人員)都需要
uid
的session來認證. - 管理人員則會多一個
auth
的session來認證.
die_error()
處理程式碼在js/utilities.js
中的ajax
函式.session_expired
: 找不到使用者uid
的session
能執行ajax, 代表session
過期, 顯示閒置過久, 請重新登入.
後轉跳至登入頁面.wrong_pwd
: 使用者輸入錯誤之密碼. 顯示密碼錯誤, 請重新登入.
後轉跳至登入頁面. 通常在登入頁面或是修改個人資料時會發生.
- 有alert, confirm, prompt等功能, 提供較漂亮的介面與callback功能.
- 還沒完全支援Bootstrap: 4.0.0, 但確定alert功能沒問題
- 檔案放在js目錄底下的bootbox.min.js
- 包含css及js
- 都使用CDN
- 強大的table套件, 可以自動生成搜尋, 排序, 分頁, 選取等功能
- 唯若要更動它自動生成的dom還要另外include
- 其功選取(select)需要額外include, 在
admin_holiday.php
有使用到, 其cdn不太一樣, 要特別注意. - 包含css及js, 目前都使用CDN
- CDN使用https://datatables.net/download/來生成, 目前都使用
bootstrap4
+DataTables
(+select
) - 目前
DataTables
的paging功能
是假的全部載回來再分頁, 但比數不大沒差.
1. 在js部分載入
2. 使用其CDN