diff --git a/TrackingToolWeb/.gitignore b/TrackingToolWeb/.gitignore index e08b684..bd51abe 100644 --- a/TrackingToolWeb/.gitignore +++ b/TrackingToolWeb/.gitignore @@ -1,4 +1,5 @@ path __pycache__ images -uploads \ No newline at end of file +uploads +log.log \ No newline at end of file diff --git a/TrackingToolWeb/README.md b/TrackingToolWeb/README.md index 66de8e5..716eedd 100644 --- a/TrackingToolWeb/README.md +++ b/TrackingToolWeb/README.md @@ -5,3 +5,7 @@ Run client: npm run dev or npm run build && npm run preview Run server uvicorn main:app --reload nohup uvicorn main:app --host 172.16.6.38 --port 8080 > log.log 2>&1 & + +ps aux | grep uvicorn + +truncate -s 0 log.log diff --git a/TrackingToolWeb/log.log b/TrackingToolWeb/log.log index 0515f9e..8e797ef 100644 --- a/TrackingToolWeb/log.log +++ b/TrackingToolWeb/log.log @@ -1,6306 +1,10 @@ nohup: ignoring input -INFO: Started server process [17100] +INFO: Started server process [32945] INFO: Waiting for application startup. INFO: Application startup complete. INFO: Uvicorn running on http://172.16.6.38:8080 (Press CTRL+C to quit) -INFO: 172.16.6.38:48516 - "GET / HTTP/1.1" 200 OK -INFO: 172.16.6.38:48530 - "GET /static/assets/index-DW_Nku2j.js HTTP/1.1" 200 OK -INFO: 172.16.6.38:48550 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:48542 - "GET /users HTTP/1.1" 200 OK -INFO: 172.16.6.38:45894 - "GET / HTTP/1.1" 200 OK -INFO: 172.16.6.38:45906 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:45904 - "GET /users HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5033 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5834 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5976 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.6019 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5725 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.6332 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.3210 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5581 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5912 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.6828 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.6272 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.6354 -INFO:root:Best student 7 dist=0.3210, second_best=0.5033 -INFO:root:Distance ratio (best/second) = 0.6377 -{'data': {'name': 'NGUYEN TRUNG THAT', 'time_string': '2025-12-23 11:32:59.983633', 'status': 'check out', 'created_at': '2025-12-23T04:33:00.000000Z', 'user_id': 9, 'updated_at': '2025-12-23T04:33:00.000000Z', 'id': 19471}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:56220 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:57298 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5627 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5306 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5421 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5645 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5657 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5233 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5906 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5460 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.2846 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.6259 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5206 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5985 -INFO:root:Best student 9 dist=0.2846, second_best=0.5206 -INFO:root:Distance ratio (best/second) = 0.5468 -{'data': {'name': 'VO VAN MINH', 'time_string': '2025-12-23 11:33:09.764872', 'status': 'check out', 'created_at': '2025-12-23T04:33:09.000000Z', 'user_id': 11, 'updated_at': '2025-12-23T04:33:09.000000Z', 'id': 19472}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:57312 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:44460 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5760 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5509 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5873 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.6153 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5652 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5894 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.3562 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5112 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5828 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.6681 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5899 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.6152 -INFO:root:Best student 7 dist=0.3562, second_best=0.5112 -INFO:root:Distance ratio (best/second) = 0.6967 -{'data': {'name': 'NGUYEN TRUNG THAT', 'time_string': '2025-12-23 13:01:49.400475', 'status': 'check in', 'created_at': '2025-12-23T06:01:49.000000Z', 'user_id': 9, 'updated_at': '2025-12-23T06:01:49.000000Z', 'id': 19473}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:50160 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:48558 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.6310 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.4810 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5724 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5254 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5221 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4697 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5660 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.4963 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.2309 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5727 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5135 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5288 -INFO:root:Best student 9 dist=0.2309, second_best=0.4697 -INFO:root:Distance ratio (best/second) = 0.4916 -{'data': {'name': 'VO VAN MINH', 'time_string': '2025-12-23 13:01:59.686232', 'status': 'check in', 'created_at': '2025-12-23T06:01:59.000000Z', 'user_id': 11, 'updated_at': '2025-12-23T06:01:59.000000Z', 'id': 19474}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:48574 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:51158 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.2351 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.6126 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5550 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.6057 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.6097 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.6125 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5439 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5453 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.6521 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.6730 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5703 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.6160 -INFO:root:Best student 1 dist=0.2351, second_best=0.5439 -INFO:root:Distance ratio (best/second) = 0.4322 -{'data': {'name': 'PHAN QUOC BAO', 'time_string': '2025-12-23 16:31:25.747943', 'status': 'check out', 'created_at': '2025-12-23T09:31:25.000000Z', 'user_id': 2, 'updated_at': '2025-12-23T09:31:25.000000Z', 'id': 19475}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:46718 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:46730 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.6635 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.6002 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5790 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4893 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5414 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5227 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5797 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5554 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.6078 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.2104 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4733 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5302 -INFO:root:Best student 10 dist=0.2104, second_best=0.4733 -INFO:root:Distance ratio (best/second) = 0.4446 -{'data': {'name': 'TON GIA KHANH', 'time_string': '2025-12-23 16:35:31.825516', 'status': 'check out', 'created_at': '2025-12-23T09:35:31.000000Z', 'user_id': 12, 'updated_at': '2025-12-23T09:35:31.000000Z', 'id': 19476}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:56900 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:56902 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5836 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5657 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5848 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4534 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.2373 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4818 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.4850 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5329 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5672 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.4497 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4596 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.4606 -INFO:root:Best student 5 dist=0.2373, second_best=0.4497 -INFO:root:Distance ratio (best/second) = 0.5276 -{'data': {'name': 'DANG TRUNG KIEN', 'time_string': '2025-12-23 16:37:31.866340', 'status': 'check out', 'created_at': '2025-12-23T09:37:31.000000Z', 'user_id': 7, 'updated_at': '2025-12-23T09:37:31.000000Z', 'id': 19477}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:35720 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:35734 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5340 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.4477 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5254 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.2285 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4474 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4735 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5115 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.4751 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.4987 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.4447 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4868 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.4571 -INFO:root:Best student 4 dist=0.2285, second_best=0.4447 -INFO:root:Distance ratio (best/second) = 0.5139 -{'data': {'name': 'NGUYEN VO TINH', 'time_string': '2025-12-23 16:37:42.302748', 'status': 'check out', 'created_at': '2025-12-23T09:37:42.000000Z', 'user_id': 6, 'updated_at': '2025-12-23T09:37:42.000000Z', 'id': 19478}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:54806 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:54818 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.6076 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5606 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.4020 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5274 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5915 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5409 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5780 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5398 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.6413 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.6026 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5394 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5733 -INFO:root:Best student 3 dist=0.4020, second_best=0.5274 -INFO:root:Distance ratio (best/second) = 0.7622 -{'data': {'name': 'VO MINH TRUONG', 'time_string': '2025-12-23 16:39:16.057744', 'status': 'check out', 'created_at': '2025-12-23T09:39:16.000000Z', 'user_id': 4, 'updated_at': '2025-12-23T09:39:16.000000Z', 'id': 19479}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:37266 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:37280 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:41014 - "GET / HTTP/1.1" 200 OK -INFO: 172.16.6.38:41024 - "GET /static/assets/index-CDZdzCu6.css HTTP/1.1" 304 Not Modified -INFO: 172.16.6.38:41030 - "GET /static/assets/index-DW_Nku2j.js HTTP/1.1" 304 Not Modified -INFO: 172.16.6.38:53742 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:53744 - "GET /users HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5756 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.4929 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5019 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4498 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4096 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.2089 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5406 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.4055 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.4723 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5065 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.3588 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.4484 -INFO:root:Best student 6 dist=0.2089, second_best=0.3588 -INFO:root:Distance ratio (best/second) = 0.5822 -{'data': {'name': 'HUYNH THI HONG GAM', 'time_string': '2025-12-23 16:44:04.917345', 'status': 'check out', 'created_at': '2025-12-23T09:44:04.000000Z', 'user_id': 8, 'updated_at': '2025-12-23T09:44:04.000000Z', 'id': 19480}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:53762 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:53774 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5327 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5265 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5018 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4488 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4264 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4059 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5859 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.4820 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.4820 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.4242 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.2279 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.4623 -INFO:root:Best student 11 dist=0.2279, second_best=0.4059 -INFO:root:Distance ratio (best/second) = 0.5614 -{'data': {'name': 'PHAM NHUT KHANG', 'time_string': '2025-12-23 16:46:55.023418', 'status': 'check out', 'created_at': '2025-12-23T09:46:55.000000Z', 'user_id': 15, 'updated_at': '2025-12-23T09:46:55.000000Z', 'id': 19481}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:52104 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:52110 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:43628 - "GET / HTTP/1.1" 200 OK -INFO: 172.16.6.38:43644 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:43652 - "GET /users HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5554 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5072 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.4878 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4296 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4810 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4384 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5758 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.4577 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5652 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.4484 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4589 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.2067 -INFO:root:Best student 12 dist=0.2067, second_best=0.4296 -INFO:root:Distance ratio (best/second) = 0.4812 -{'data': {'name': 'NGUYEN HOANG VI', 'time_string': '2025-12-23 16:57:51.866140', 'status': 'check out', 'created_at': '2025-12-23T09:57:51.000000Z', 'user_id': 16, 'updated_at': '2025-12-23T09:57:51.000000Z', 'id': 19482}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:45828 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:45840 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5174 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5412 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5587 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5068 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4439 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5540 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.2879 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5162 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5148 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5825 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5352 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5812 -INFO:root:Best student 7 dist=0.2879, second_best=0.4439 -INFO:root:Distance ratio (best/second) = 0.6484 -{'data': {'name': 'NGUYEN TRUNG THAT', 'time_string': '2025-12-23 16:59:24.476254', 'status': 'check out', 'created_at': '2025-12-23T09:59:24.000000Z', 'user_id': 9, 'updated_at': '2025-12-23T09:59:24.000000Z', 'id': 19483}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:43438 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:43448 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.6423 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5223 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.6190 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5775 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5338 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5378 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5987 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5293 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.2332 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5720 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5336 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5812 -INFO:root:Best student 9 dist=0.2332, second_best=0.5223 -INFO:root:Distance ratio (best/second) = 0.4465 -{'data': {'name': 'VO VAN MINH', 'time_string': '2025-12-23 17:02:39.105184', 'status': 'check out', 'created_at': '2025-12-23T10:02:39.000000Z', 'user_id': 11, 'updated_at': '2025-12-23T10:02:39.000000Z', 'id': 19484}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:59196 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:38774 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:39896 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:39884 - "GET /users HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5699 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.4465 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.4625 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4880 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4764 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.3793 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.4968 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.2555 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.4059 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5035 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4608 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.4873 -INFO:root:Best student 8 dist=0.2555, second_best=0.3793 -INFO:root:Distance ratio (best/second) = 0.6735 -{'data': {'name': 'LE TAN LUAN', 'time_string': '2025-12-23 17:25:17.584174', 'status': 'check out', 'created_at': '2025-12-23T10:25:17.000000Z', 'user_id': 10, 'updated_at': '2025-12-23T10:25:17.000000Z', 'id': 19485}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:39910 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:53036 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:34588 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:34592 - "POST /checkin HTTP/1.1" 500 Internal Server Error -ERROR: Exception in ASGI application -Traceback (most recent call last): - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/connections.py", line 813, in _write_bytes - self._sock.sendall(data) -ConnectionResetError: [Errno 104] Connection reset by peer - -During handling of the above exception, another exception occurred: - -Traceback (most recent call last): - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1967, in _exec_single_context - self.dialect.do_execute( - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/default.py", line 952, in do_execute - cursor.execute(statement, parameters) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/cursors.py", line 153, in execute - result = self._query(query) - ^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/cursors.py", line 322, in _query - conn.query(q) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/connections.py", line 574, in query - self._execute_command(COMMAND.COM_QUERY, sql) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/connections.py", line 865, in _execute_command - self._write_bytes(packet) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/connections.py", line 816, in _write_bytes - raise err.OperationalError( -pymysql.err.OperationalError: (2006, "MySQL server has gone away (ConnectionResetError(104, 'Connection reset by peer'))") - -The above exception was the direct cause of the following exception: - -Traceback (most recent call last): - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/uvicorn/protocols/http/h11_impl.py", line 403, in run_asgi - result = await app( # type: ignore[func-returns-value] - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/uvicorn/middleware/proxy_headers.py", line 60, in __call__ - return await self.app(scope, receive, send) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/fastapi/applications.py", line 1139, in __call__ - await super().__call__(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/applications.py", line 107, in __call__ - await self.middleware_stack(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/middleware/errors.py", line 186, in __call__ - raise exc - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/middleware/errors.py", line 164, in __call__ - await self.app(scope, receive, _send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/middleware/cors.py", line 93, in __call__ - await self.simple_response(scope, receive, send, request_headers=headers) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/middleware/cors.py", line 144, in simple_response - await self.app(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 63, in __call__ - await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app - raise exc - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app - await app(scope, receive, sender) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/fastapi/middleware/asyncexitstack.py", line 18, in __call__ - await self.app(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/routing.py", line 716, in __call__ - await self.middleware_stack(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/routing.py", line 736, in app - await route.handle(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/routing.py", line 290, in handle - await self.app(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/fastapi/routing.py", line 120, in app - await wrap_app_handling_exceptions(app, request)(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app - raise exc - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app - await app(scope, receive, sender) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/fastapi/routing.py", line 106, in app - response = await f(request) - ^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/fastapi/routing.py", line 430, in app - raw_response = await run_endpoint_function( - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/fastapi/routing.py", line 316, in run_endpoint_function - return await dependant.call(**values) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/main.py", line 220, in checkin - rows = db.execute( - ^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/orm/session.py", line 2351, in execute - return self._execute_internal( - ^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/orm/session.py", line 2258, in _execute_internal - result = conn.execute( - ^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1419, in execute - return meth( - ^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/sql/elements.py", line 527, in _execute_on_connection - return connection._execute_clauseelement( - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1641, in _execute_clauseelement - ret = self._execute_context( - ^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1846, in _execute_context - return self._exec_single_context( - ^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1986, in _exec_single_context - self._handle_dbapi_exception( - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 2363, in _handle_dbapi_exception - raise sqlalchemy_exception.with_traceback(exc_info[2]) from e - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1967, in _exec_single_context - self.dialect.do_execute( - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/default.py", line 952, in do_execute - cursor.execute(statement, parameters) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/cursors.py", line 153, in execute - result = self._query(query) - ^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/cursors.py", line 322, in _query - conn.query(q) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/connections.py", line 574, in query - self._execute_command(COMMAND.COM_QUERY, sql) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/connections.py", line 865, in _execute_command - self._write_bytes(packet) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/connections.py", line 816, in _write_bytes - raise err.OperationalError( -sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (2006, "MySQL server has gone away (ConnectionResetError(104, 'Connection reset by peer'))") -[SQL: - SELECT s.id AS student_id, s.name AS student_name, se.encoding AS encoding_blob - FROM student_encodings se - JOIN students s ON s.id = se.student_id - ] -(Background on this error at: https://sqlalche.me/e/20/e3q8) -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.6885 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.6409 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.6048 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5408 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5791 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5838 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.6675 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.6134 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.6023 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.3069 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4983 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5766 -INFO:root:Best student 10 dist=0.3069, second_best=0.4983 -INFO:root:Distance ratio (best/second) = 0.6159 -{'data': {'name': 'TON GIA KHANH', 'time_string': '2025-12-24 06:56:39.719474', 'status': 'check in', 'created_at': '2025-12-23T23:56:39.000000Z', 'user_id': 12, 'updated_at': '2025-12-23T23:56:39.000000Z', 'id': 19486}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:34606 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:57914 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.6661 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.6353 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5924 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5503 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5731 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5689 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.6730 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.6178 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5909 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.3130 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4974 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5835 -INFO:root:Best student 10 dist=0.3130, second_best=0.4974 -INFO:root:Distance ratio (best/second) = 0.6291 -INFO: 172.16.6.38:57918 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:57932 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.6169 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.4898 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5448 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.2765 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4531 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5059 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5806 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5388 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5030 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5084 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5026 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.4431 -INFO:root:Best student 4 dist=0.2765, second_best=0.4431 -INFO:root:Distance ratio (best/second) = 0.6241 -{'data': {'name': 'NGUYEN VO TINH', 'time_string': '2025-12-24 07:12:22.432123', 'status': 'check in', 'created_at': '2025-12-24T00:12:22.000000Z', 'user_id': 6, 'updated_at': '2025-12-24T00:12:22.000000Z', 'id': 19487}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:36654 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:36660 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5813 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5477 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5912 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4595 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.2383 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4474 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.4943 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5340 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5057 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5004 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4198 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.4481 -INFO:root:Best student 5 dist=0.2383, second_best=0.4198 -INFO:root:Distance ratio (best/second) = 0.5676 -{'data': {'name': 'DANG TRUNG KIEN', 'time_string': '2025-12-24 07:17:15.534495', 'status': 'check in', 'created_at': '2025-12-24T00:17:15.000000Z', 'user_id': 7, 'updated_at': '2025-12-24T00:17:15.000000Z', 'id': 19488}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:51880 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:51890 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5016 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5330 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.4956 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4207 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4288 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4284 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5971 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.4996 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.4879 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.4479 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.2397 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.4606 -INFO:root:Best student 11 dist=0.2397, second_best=0.4207 -INFO:root:Distance ratio (best/second) = 0.5696 -{'data': {'name': 'PHAM NHUT KHANG', 'time_string': '2025-12-24 07:17:34.140600', 'status': 'check in', 'created_at': '2025-12-24T00:17:34.000000Z', 'user_id': 15, 'updated_at': '2025-12-24T00:17:34.000000Z', 'id': 19489}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:42926 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:42928 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.2711 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.6119 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.6106 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5355 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5931 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5845 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5395 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5484 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.6177 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.6307 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5579 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5976 -INFO:root:Best student 1 dist=0.2711, second_best=0.5355 -INFO:root:Distance ratio (best/second) = 0.5062 -{'data': {'name': 'PHAN QUOC BAO', 'time_string': '2025-12-24 07:18:17.946957', 'status': 'check in', 'created_at': '2025-12-24T00:18:17.000000Z', 'user_id': 2, 'updated_at': '2025-12-24T00:18:18.000000Z', 'id': 19490}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:57132 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:33158 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5716 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5858 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5922 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5174 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4643 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5576 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.3415 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5427 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5956 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5933 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5540 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5985 -INFO:root:Best student 7 dist=0.3415, second_best=0.4643 -INFO:root:Distance ratio (best/second) = 0.7355 -{'data': {'name': 'NGUYEN TRUNG THAT', 'time_string': '2025-12-24 07:28:09.755143', 'status': 'check in', 'created_at': '2025-12-24T00:28:09.000000Z', 'user_id': 9, 'updated_at': '2025-12-24T00:28:09.000000Z', 'id': 19491}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:51910 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:58330 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.4956 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.4358 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.4836 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4636 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.3910 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4017 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.4873 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.3378 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.4366 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5249 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4316 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.4946 -INFO:root:Best student 8 dist=0.3378, second_best=0.3910 -INFO:root:Distance ratio (best/second) = 0.8640 -INFO:root:No confident match: ratio not confident (0.3378/0.3910) -INFO: 172.16.6.38:38386 - "POST /checkin HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5438 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.4363 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.4787 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4998 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4275 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4075 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5094 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.3373 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.4519 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5442 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4528 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5067 -INFO:root:Best student 8 dist=0.3373, second_best=0.4075 -INFO:root:Distance ratio (best/second) = 0.8276 -{'data': {'name': 'LE TAN LUAN', 'time_string': '2025-12-24 07:29:22.584679', 'status': 'check in', 'created_at': '2025-12-24T00:29:22.000000Z', 'user_id': 10, 'updated_at': '2025-12-24T00:29:22.000000Z', 'id': 19492}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:39042 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:39056 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.6133 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.2815 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5360 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4951 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5354 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5717 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5624 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5123 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5206 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.6011 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5618 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5492 -INFO:root:Best student 2 dist=0.2815, second_best=0.4951 -INFO:root:Distance ratio (best/second) = 0.5685 -{'data': {'name': 'PHAM VAN HUYNH', 'time_string': '2025-12-24 07:30:49.483508', 'status': 'check in', 'created_at': '2025-12-24T00:30:49.000000Z', 'user_id': 3, 'updated_at': '2025-12-24T00:30:49.000000Z', 'id': 19493}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:52118 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:51050 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5647 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5445 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5379 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4424 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.3538 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.2995 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5225 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.4265 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.4691 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5009 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.3770 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.4632 -INFO:root:Best student 6 dist=0.2995, second_best=0.3538 -INFO:root:Distance ratio (best/second) = 0.8466 -{'data': {'name': 'HUYNH THI HONG GAM', 'time_string': '2025-12-24 07:31:34.615414', 'status': 'check in', 'created_at': '2025-12-24T00:31:34.000000Z', 'user_id': 8, 'updated_at': '2025-12-24T00:31:34.000000Z', 'id': 19494}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:44190 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:44202 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:49630 - "POST /checkin HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5527 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.4725 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.4476 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4303 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4408 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4168 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5605 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.4699 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5199 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.4305 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4083 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.2333 -INFO:root:Best student 12 dist=0.2333, second_best=0.4083 -INFO:root:Distance ratio (best/second) = 0.5713 -{'data': {'name': 'NGUYEN HOANG VI', 'time_string': '2025-12-24 07:33:59.981849', 'status': 'check in', 'created_at': '2025-12-24T00:34:00.000000Z', 'user_id': 16, 'updated_at': '2025-12-24T00:34:00.000000Z', 'id': 19495}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:49638 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:47646 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.6116 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5005 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.2668 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5624 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5903 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5499 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.6387 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.4723 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.6125 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5970 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5065 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5230 -INFO:root:Best student 3 dist=0.2668, second_best=0.4723 -INFO:root:Distance ratio (best/second) = 0.5649 -{'data': {'name': 'VO MINH TRUONG', 'time_string': '2025-12-24 07:34:32.055689', 'status': 'check in', 'created_at': '2025-12-24T00:34:32.000000Z', 'user_id': 4, 'updated_at': '2025-12-24T00:34:32.000000Z', 'id': 19496}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:48816 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:48832 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.6412 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5347 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.6187 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5762 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5421 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5130 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.6002 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5241 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.2794 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.6235 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5523 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5579 -INFO:root:Best student 9 dist=0.2794, second_best=0.5130 -INFO:root:Distance ratio (best/second) = 0.5446 -{'data': {'name': 'VO VAN MINH', 'time_string': '2025-12-24 07:38:10.779468', 'status': 'check in', 'created_at': '2025-12-24T00:38:10.000000Z', 'user_id': 11, 'updated_at': '2025-12-24T00:38:10.000000Z', 'id': 19497}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:53880 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:50642 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:43828 - "POST /checkin HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.6322 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5999 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.6050 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4930 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5391 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5703 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.6049 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5747 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.6127 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.2921 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4781 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5477 -INFO:root:Best student 10 dist=0.2921, second_best=0.4781 -INFO:root:Distance ratio (best/second) = 0.6110 -{'data': {'name': 'TON GIA KHANH', 'time_string': '2025-12-24 11:24:48.757182', 'status': 'check out', 'created_at': '2025-12-24T04:24:48.000000Z', 'user_id': 12, 'updated_at': '2025-12-24T04:24:48.000000Z', 'id': 19498}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:43844 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:39288 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5885 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.2529 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.4891 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4922 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5715 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5186 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5663 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5048 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.4851 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.6197 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5632 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5359 -INFO:root:Best student 2 dist=0.2529, second_best=0.4851 -INFO:root:Distance ratio (best/second) = 0.5213 -{'data': {'name': 'PHAM VAN HUYNH', 'time_string': '2025-12-24 11:30:48.618522', 'status': 'check out', 'created_at': '2025-12-24T04:30:48.000000Z', 'user_id': 3, 'updated_at': '2025-12-24T04:30:48.000000Z', 'id': 19499}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:52692 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:33248 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5706 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.6269 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.6045 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5632 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5082 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.6108 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.2909 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5606 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5836 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.6220 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5718 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.6047 -INFO:root:Best student 7 dist=0.2909, second_best=0.5082 -INFO:root:Distance ratio (best/second) = 0.5724 -{'data': {'name': 'NGUYEN TRUNG THAT', 'time_string': '2025-12-24 11:32:29.506861', 'status': 'check out', 'created_at': '2025-12-24T04:32:29.000000Z', 'user_id': 9, 'updated_at': '2025-12-24T04:32:29.000000Z', 'id': 19500}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:59532 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:58426 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.6418 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5700 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5735 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5644 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5560 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5135 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5967 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5387 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.2465 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.6294 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5206 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5873 -INFO:root:Best student 9 dist=0.2465, second_best=0.5135 -INFO:root:Distance ratio (best/second) = 0.4801 -{'data': {'name': 'VO VAN MINH', 'time_string': '2025-12-24 11:33:11.075370', 'status': 'check out', 'created_at': '2025-12-24T04:33:11.000000Z', 'user_id': 11, 'updated_at': '2025-12-24T04:33:11.000000Z', 'id': 19501}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:57772 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:57780 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:59084 - "GET / HTTP/1.1" 200 OK -INFO: 172.16.6.38:59086 - "GET /static/assets/index-CDZdzCu6.css HTTP/1.1" 304 Not Modified -INFO: 172.16.6.38:59096 - "GET /static/assets/index-DW_Nku2j.js HTTP/1.1" 304 Not Modified -INFO: 172.16.6.38:59100 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:59098 - "GET /users HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5710 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.4432 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.4761 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5229 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4884 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4373 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5012 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.2337 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.4652 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5605 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4571 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5066 -INFO:root:Best student 8 dist=0.2337, second_best=0.4373 -INFO:root:Distance ratio (best/second) = 0.5345 -{'data': {'name': 'LE TAN LUAN', 'time_string': '2025-12-24 11:34:00.561548', 'status': 'check out', 'created_at': '2025-12-24T04:34:00.000000Z', 'user_id': 10, 'updated_at': '2025-12-24T04:34:00.000000Z', 'id': 19502}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:59106 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:41692 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5739 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.2370 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5058 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5052 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5484 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5262 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5563 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.4778 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.4832 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.6363 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5500 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5228 -INFO:root:Best student 2 dist=0.2370, second_best=0.4778 -INFO:root:Distance ratio (best/second) = 0.4960 -{'data': {'name': 'PHAM VAN HUYNH', 'time_string': '2025-12-24 11:46:04.363166', 'status': 'check in', 'created_at': '2025-12-24T04:46:04.000000Z', 'user_id': 3, 'updated_at': '2025-12-24T04:46:04.000000Z', 'id': 19503}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:44606 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:44616 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5588 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.4451 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5197 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5123 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4726 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4417 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.4833 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.3215 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.4633 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5026 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4564 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5369 -INFO:root:Best student 8 dist=0.3215, second_best=0.4417 -INFO:root:Distance ratio (best/second) = 0.7280 -{'data': {'name': 'LE TAN LUAN', 'time_string': '2025-12-24 13:02:17.469065', 'status': 'check in', 'created_at': '2025-12-24T06:02:17.000000Z', 'user_id': 10, 'updated_at': '2025-12-24T06:02:17.000000Z', 'id': 19504}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:34020 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:52128 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:52138 - "POST /checkin HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5381 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5868 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5867 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5882 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5307 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.6261 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.2886 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5541 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.6017 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.6864 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5955 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.6010 -INFO:root:Best student 7 dist=0.2886, second_best=0.5307 -INFO:root:Distance ratio (best/second) = 0.5439 -{'data': {'name': 'NGUYEN TRUNG THAT', 'time_string': '2025-12-24 13:02:29.862086', 'status': 'check in', 'created_at': '2025-12-24T06:02:29.000000Z', 'user_id': 9, 'updated_at': '2025-12-24T06:02:29.000000Z', 'id': 19505}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:52154 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:57002 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5657 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5382 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5209 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5381 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5563 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4865 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5896 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5181 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.2459 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5726 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5065 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5698 -INFO:root:Best student 9 dist=0.2459, second_best=0.4865 -INFO:root:Distance ratio (best/second) = 0.5055 -{'data': {'name': 'VO VAN MINH', 'time_string': '2025-12-24 13:03:03.081600', 'status': 'check in', 'created_at': '2025-12-24T06:03:03.000000Z', 'user_id': 11, 'updated_at': '2025-12-24T06:03:03.000000Z', 'id': 19506}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:56988 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:56994 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:53192 - "GET / HTTP/1.1" 200 OK -INFO: 172.16.6.38:53202 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:53210 - "GET /users HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.6302 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5644 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5478 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4593 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5364 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5032 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5747 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.4923 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5640 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.2080 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4305 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.4911 -INFO:root:Best student 10 dist=0.2080, second_best=0.4305 -INFO:root:Distance ratio (best/second) = 0.4832 -{'data': {'name': 'TON GIA KHANH', 'time_string': '2025-12-24 13:29:51.173156', 'status': 'check in', 'created_at': '2025-12-24T06:29:51.000000Z', 'user_id': 12, 'updated_at': '2025-12-24T06:29:51.000000Z', 'id': 19507}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:51528 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:51536 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5342 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5124 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.4834 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4995 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4562 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4273 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5937 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5080 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5313 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.4745 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.3109 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.4771 -INFO:root:Best student 11 dist=0.3109, second_best=0.4273 -INFO:root:Distance ratio (best/second) = 0.7276 -{'data': {'name': 'PHAM NHUT KHANG', 'time_string': '2025-12-24 16:43:28.447656', 'status': 'check out', 'created_at': '2025-12-24T09:43:28.000000Z', 'user_id': 15, 'updated_at': '2025-12-24T09:43:28.000000Z', 'id': 19508}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:39796 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:47370 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5351 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5288 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5589 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4525 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.2133 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4425 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.4849 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5082 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5361 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.4947 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4406 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.4599 -INFO:root:Best student 5 dist=0.2133, second_best=0.4406 -INFO:root:Distance ratio (best/second) = 0.4842 -{'data': {'name': 'DANG TRUNG KIEN', 'time_string': '2025-12-24 16:43:36.572267', 'status': 'check out', 'created_at': '2025-12-24T09:43:36.000000Z', 'user_id': 7, 'updated_at': '2025-12-24T09:43:36.000000Z', 'id': 19509}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:47386 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:47390 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5630 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.4865 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5561 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.2766 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5096 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5044 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5293 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5028 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5731 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5010 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4982 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.4868 -INFO:root:Best student 4 dist=0.2766, second_best=0.4865 -INFO:root:Distance ratio (best/second) = 0.5686 -{'data': {'name': 'NGUYEN VO TINH', 'time_string': '2025-12-24 16:43:45.792579', 'status': 'check out', 'created_at': '2025-12-24T09:43:45.000000Z', 'user_id': 6, 'updated_at': '2025-12-24T09:43:45.000000Z', 'id': 19510}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:43288 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:43294 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.6416 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.6222 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.6076 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4451 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.6079 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5311 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.6178 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5426 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.6429 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.3056 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4979 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5556 -INFO:root:Best student 10 dist=0.3056, second_best=0.4451 -INFO:root:Distance ratio (best/second) = 0.6866 -{'data': {'name': 'TON GIA KHANH', 'time_string': '2025-12-24 16:46:18.156725', 'status': 'check out', 'created_at': '2025-12-24T09:46:18.000000Z', 'user_id': 12, 'updated_at': '2025-12-24T09:46:18.000000Z', 'id': 19511}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:52782 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:35364 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:54344 - "GET / HTTP/1.1" 200 OK -INFO: 172.16.6.38:54358 - "GET /static/assets/index-CDZdzCu6.css HTTP/1.1" 304 Not Modified -INFO: 172.16.6.38:54364 - "GET /static/assets/index-DW_Nku2j.js HTTP/1.1" 304 Not Modified -INFO: 172.16.6.38:54366 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:54368 - "GET /users HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5671 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.4907 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5067 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4570 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4045 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.2305 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5477 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.4197 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.4703 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5066 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.3649 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.4669 -INFO:root:Best student 6 dist=0.2305, second_best=0.3649 -INFO:root:Distance ratio (best/second) = 0.6316 -{'data': {'name': 'HUYNH THI HONG GAM', 'time_string': '2025-12-24 16:47:46.175924', 'status': 'check out', 'created_at': '2025-12-24T09:47:46.000000Z', 'user_id': 8, 'updated_at': '2025-12-24T09:47:46.000000Z', 'id': 19512}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:54372 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:54382 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5836 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5530 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.2804 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5537 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5942 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5795 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.6158 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5097 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.6429 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5742 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5266 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5412 -INFO:root:Best student 3 dist=0.2804, second_best=0.5097 -INFO:root:Distance ratio (best/second) = 0.5501 -{'data': {'name': 'VO MINH TRUONG', 'time_string': '2025-12-24 16:56:25.103990', 'status': 'check out', 'created_at': '2025-12-24T09:56:25.000000Z', 'user_id': 4, 'updated_at': '2025-12-24T09:56:25.000000Z', 'id': 19513}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:33686 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:33688 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5982 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.3218 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5392 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4878 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5089 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4684 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5296 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.4617 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.4411 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5837 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5466 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.4865 -INFO:root:Best student 2 dist=0.3218, second_best=0.4411 -INFO:root:Distance ratio (best/second) = 0.7296 -{'data': {'name': 'PHAM VAN HUYNH', 'time_string': '2025-12-24 16:59:53.904895', 'status': 'check out', 'created_at': '2025-12-24T09:59:53.000000Z', 'user_id': 3, 'updated_at': '2025-12-24T09:59:53.000000Z', 'id': 19514}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:44340 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:44342 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:42950 - "GET / HTTP/1.1" 200 OK -INFO: 172.16.6.38:42960 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:42958 - "GET /users HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5792 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5313 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5140 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4686 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5176 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4673 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.6030 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.4867 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.6046 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.4870 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4881 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.2521 -INFO:root:Best student 12 dist=0.2521, second_best=0.4673 -INFO:root:Distance ratio (best/second) = 0.5395 -{'data': {'name': 'NGUYEN HOANG VI', 'time_string': '2025-12-24 17:00:04.276397', 'status': 'check out', 'created_at': '2025-12-24T10:00:04.000000Z', 'user_id': 16, 'updated_at': '2025-12-24T10:00:04.000000Z', 'id': 19515}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:42976 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:42986 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.6464 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5520 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5953 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5335 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5672 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5123 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5738 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5433 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.2369 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5807 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5324 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5804 -INFO:root:Best student 9 dist=0.2369, second_best=0.5123 -INFO:root:Distance ratio (best/second) = 0.4625 -{'data': {'name': 'VO VAN MINH', 'time_string': '2025-12-24 17:00:13.486491', 'status': 'check out', 'created_at': '2025-12-24T10:00:13.000000Z', 'user_id': 11, 'updated_at': '2025-12-24T10:00:13.000000Z', 'id': 19516}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:53042 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:53058 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5772 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.6539 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.6520 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5789 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5364 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.6281 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.3051 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5430 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.6594 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.6233 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.6235 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.6491 -INFO:root:Best student 7 dist=0.3051, second_best=0.5364 -INFO:root:Distance ratio (best/second) = 0.5688 -{'data': {'name': 'NGUYEN TRUNG THAT', 'time_string': '2025-12-24 17:00:51.657511', 'status': 'check out', 'created_at': '2025-12-24T10:00:51.000000Z', 'user_id': 9, 'updated_at': '2025-12-24T10:00:51.000000Z', 'id': 19517}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:57546 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:57550 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5717 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.4709 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.4930 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5237 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4922 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4094 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5204 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.3220 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.4556 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5452 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4856 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5191 -INFO:root:Best student 8 dist=0.3220, second_best=0.4094 -INFO:root:Distance ratio (best/second) = 0.7867 -{'data': {'name': 'LE TAN LUAN', 'time_string': '2025-12-24 17:01:34.790742', 'status': 'check out', 'created_at': '2025-12-24T10:01:34.000000Z', 'user_id': 10, 'updated_at': '2025-12-24T10:01:34.000000Z', 'id': 19518}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:48976 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:48980 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:32898 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:32910 - "POST /checkin HTTP/1.1" 500 Internal Server Error -ERROR: Exception in ASGI application -Traceback (most recent call last): - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/connections.py", line 813, in _write_bytes - self._sock.sendall(data) -ConnectionResetError: [Errno 104] Connection reset by peer - -During handling of the above exception, another exception occurred: - -Traceback (most recent call last): - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1967, in _exec_single_context - self.dialect.do_execute( - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/default.py", line 952, in do_execute - cursor.execute(statement, parameters) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/cursors.py", line 153, in execute - result = self._query(query) - ^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/cursors.py", line 322, in _query - conn.query(q) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/connections.py", line 574, in query - self._execute_command(COMMAND.COM_QUERY, sql) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/connections.py", line 865, in _execute_command - self._write_bytes(packet) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/connections.py", line 816, in _write_bytes - raise err.OperationalError( -pymysql.err.OperationalError: (2006, "MySQL server has gone away (ConnectionResetError(104, 'Connection reset by peer'))") - -The above exception was the direct cause of the following exception: - -Traceback (most recent call last): - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/uvicorn/protocols/http/h11_impl.py", line 403, in run_asgi - result = await app( # type: ignore[func-returns-value] - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/uvicorn/middleware/proxy_headers.py", line 60, in __call__ - return await self.app(scope, receive, send) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/fastapi/applications.py", line 1139, in __call__ - await super().__call__(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/applications.py", line 107, in __call__ - await self.middleware_stack(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/middleware/errors.py", line 186, in __call__ - raise exc - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/middleware/errors.py", line 164, in __call__ - await self.app(scope, receive, _send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/middleware/cors.py", line 93, in __call__ - await self.simple_response(scope, receive, send, request_headers=headers) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/middleware/cors.py", line 144, in simple_response - await self.app(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 63, in __call__ - await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app - raise exc - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app - await app(scope, receive, sender) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/fastapi/middleware/asyncexitstack.py", line 18, in __call__ - await self.app(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/routing.py", line 716, in __call__ - await self.middleware_stack(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/routing.py", line 736, in app - await route.handle(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/routing.py", line 290, in handle - await self.app(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/fastapi/routing.py", line 120, in app - await wrap_app_handling_exceptions(app, request)(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app - raise exc - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app - await app(scope, receive, sender) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/fastapi/routing.py", line 106, in app - response = await f(request) - ^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/fastapi/routing.py", line 430, in app - raw_response = await run_endpoint_function( - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/fastapi/routing.py", line 316, in run_endpoint_function - return await dependant.call(**values) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/main.py", line 220, in checkin - rows = db.execute( - ^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/orm/session.py", line 2351, in execute - return self._execute_internal( - ^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/orm/session.py", line 2258, in _execute_internal - result = conn.execute( - ^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1419, in execute - return meth( - ^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/sql/elements.py", line 527, in _execute_on_connection - return connection._execute_clauseelement( - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1641, in _execute_clauseelement - ret = self._execute_context( - ^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1846, in _execute_context - return self._exec_single_context( - ^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1986, in _exec_single_context - self._handle_dbapi_exception( - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 2363, in _handle_dbapi_exception - raise sqlalchemy_exception.with_traceback(exc_info[2]) from e - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1967, in _exec_single_context - self.dialect.do_execute( - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/default.py", line 952, in do_execute - cursor.execute(statement, parameters) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/cursors.py", line 153, in execute - result = self._query(query) - ^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/cursors.py", line 322, in _query - conn.query(q) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/connections.py", line 574, in query - self._execute_command(COMMAND.COM_QUERY, sql) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/connections.py", line 865, in _execute_command - self._write_bytes(packet) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/connections.py", line 816, in _write_bytes - raise err.OperationalError( -sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (2006, "MySQL server has gone away (ConnectionResetError(104, 'Connection reset by peer'))") -[SQL: - SELECT s.id AS student_id, s.name AS student_name, se.encoding AS encoding_blob - FROM student_encodings se - JOIN students s ON s.id = se.student_id - ] -(Background on this error at: https://sqlalche.me/e/20/e3q8) -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.6805 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.6020 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5897 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4990 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5176 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5454 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5949 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5663 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5637 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.2572 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4814 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5209 -INFO:root:Best student 10 dist=0.2572, second_best=0.4814 -INFO:root:Distance ratio (best/second) = 0.5344 -{'data': {'name': 'TON GIA KHANH', 'time_string': '2025-12-25 06:59:11.518320', 'status': 'check in', 'created_at': '2025-12-24T23:59:11.000000Z', 'user_id': 12, 'updated_at': '2025-12-24T23:59:11.000000Z', 'id': 19519}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:54012 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:54020 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5711 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5564 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5751 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4576 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.2037 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4459 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.4706 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5226 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5161 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.4632 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4018 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.4411 -INFO:root:Best student 5 dist=0.2037, second_best=0.4018 -INFO:root:Distance ratio (best/second) = 0.5069 -{'data': {'name': 'DANG TRUNG KIEN', 'time_string': '2025-12-25 07:10:05.950683', 'status': 'check in', 'created_at': '2025-12-25T00:10:05.000000Z', 'user_id': 7, 'updated_at': '2025-12-25T00:10:06.000000Z', 'id': 19520}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:50838 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:50850 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5688 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.4697 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5094 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.2190 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4483 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4745 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5164 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.4523 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.4972 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.4327 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4454 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.4613 -INFO:root:Best student 4 dist=0.2190, second_best=0.4327 -INFO:root:Distance ratio (best/second) = 0.5063 -{'data': {'name': 'NGUYEN VO TINH', 'time_string': '2025-12-25 07:16:33.628962', 'status': 'check in', 'created_at': '2025-12-25T00:16:33.000000Z', 'user_id': 6, 'updated_at': '2025-12-25T00:16:33.000000Z', 'id': 19521}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:44658 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:44668 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.2956 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.6286 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5801 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5657 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.6195 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5801 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5739 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5286 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.6353 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.6498 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5429 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.6148 -INFO:root:Best student 1 dist=0.2956, second_best=0.5286 -INFO:root:Distance ratio (best/second) = 0.5593 -{'data': {'name': 'PHAN QUOC BAO', 'time_string': '2025-12-25 07:19:04.329530', 'status': 'check in', 'created_at': '2025-12-25T00:19:04.000000Z', 'user_id': 2, 'updated_at': '2025-12-25T00:19:04.000000Z', 'id': 19522}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:48138 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:48152 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:38534 - "GET / HTTP/1.1" 200 OK -INFO: 172.16.6.38:38536 - "GET /static/assets/index-CDZdzCu6.css HTTP/1.1" 304 Not Modified -INFO: 172.16.6.38:38548 - "GET /static/assets/index-DW_Nku2j.js HTTP/1.1" 304 Not Modified -INFO: 172.16.6.38:38576 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:38562 - "GET /users HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.6615 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5463 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5821 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5193 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4786 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.2818 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5974 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5037 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5224 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5550 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4783 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5682 -INFO:root:Best student 6 dist=0.2818, second_best=0.4783 -INFO:root:Distance ratio (best/second) = 0.5892 -{'data': {'name': 'HUYNH THI HONG GAM', 'time_string': '2025-12-25 07:21:09.169561', 'status': 'check in', 'created_at': '2025-12-25T00:21:09.000000Z', 'user_id': 8, 'updated_at': '2025-12-25T00:21:09.000000Z', 'id': 19523}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:38586 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:51108 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5365 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5540 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5452 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4454 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4122 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4171 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.6097 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5098 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5161 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.4075 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.2112 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.4746 -INFO:root:Best student 11 dist=0.2112, second_best=0.4075 -INFO:root:Distance ratio (best/second) = 0.5184 -{'data': {'name': 'PHAM NHUT KHANG', 'time_string': '2025-12-25 07:23:27.264257', 'status': 'check in', 'created_at': '2025-12-25T00:23:27.000000Z', 'user_id': 15, 'updated_at': '2025-12-25T00:23:27.000000Z', 'id': 19524}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:37376 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:44422 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5453 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5029 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.4640 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4426 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4736 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4263 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5706 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.4432 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5559 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.4419 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4512 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.2404 -INFO:root:Best student 12 dist=0.2404, second_best=0.4263 -INFO:root:Distance ratio (best/second) = 0.5639 -{'data': {'name': 'NGUYEN HOANG VI', 'time_string': '2025-12-25 07:28:23.712648', 'status': 'check in', 'created_at': '2025-12-25T00:28:23.000000Z', 'user_id': 16, 'updated_at': '2025-12-25T00:28:23.000000Z', 'id': 19525}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:45390 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:45394 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5577 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5815 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5732 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5786 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4705 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5731 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.3113 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5275 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5713 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.6172 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5698 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.6211 -INFO:root:Best student 7 dist=0.3113, second_best=0.4705 -INFO:root:Distance ratio (best/second) = 0.6617 -{'data': {'name': 'NGUYEN TRUNG THAT', 'time_string': '2025-12-25 07:30:05.265967', 'status': 'check in', 'created_at': '2025-12-25T00:30:05.000000Z', 'user_id': 9, 'updated_at': '2025-12-25T00:30:05.000000Z', 'id': 19527}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:57386 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:57400 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.6085 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5397 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5918 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5774 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5446 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5056 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5563 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5064 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.2849 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.6328 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5359 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5610 -INFO:root:Best student 9 dist=0.2849, second_best=0.5056 -INFO:root:Distance ratio (best/second) = 0.5635 -{'data': {'name': 'VO VAN MINH', 'time_string': '2025-12-25 07:32:08.298219', 'status': 'check in', 'created_at': '2025-12-25T00:32:08.000000Z', 'user_id': 11, 'updated_at': '2025-12-25T00:32:08.000000Z', 'id': 19528}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:55542 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:47840 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:58382 - "GET / HTTP/1.1" 200 OK -INFO: 172.16.6.38:58400 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:58388 - "GET /users HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5451 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.4316 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.4840 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5042 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4694 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4014 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.4729 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.2267 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.4456 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5488 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4553 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5014 -INFO:root:Best student 8 dist=0.2267, second_best=0.4014 -INFO:root:Distance ratio (best/second) = 0.5648 -{'data': {'name': 'LE TAN LUAN', 'time_string': '2025-12-25 07:32:47.484161', 'status': 'check in', 'created_at': '2025-12-25T00:32:47.000000Z', 'user_id': 10, 'updated_at': '2025-12-25T00:32:47.000000Z', 'id': 19529}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:58406 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:55202 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.6407 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5171 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.4325 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5216 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5512 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4449 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5666 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.3819 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5828 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.4906 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4728 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5297 -INFO:root:Best student 8 dist=0.3819, second_best=0.4325 -INFO:root:Distance ratio (best/second) = 0.8830 -INFO:root:No confident match: ratio not confident (0.3819/0.4325) -INFO: 172.16.6.38:43548 - "POST /checkin HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5735 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.2328 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.4961 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4842 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5127 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5054 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5732 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5051 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5096 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.6130 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5371 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5228 -INFO:root:Best student 2 dist=0.2328, second_best=0.4842 -INFO:root:Distance ratio (best/second) = 0.4808 -{'data': {'name': 'PHAM VAN HUYNH', 'time_string': '2025-12-25 07:33:39.675546', 'status': 'check in', 'created_at': '2025-12-25T00:33:39.000000Z', 'user_id': 3, 'updated_at': '2025-12-25T00:33:39.000000Z', 'id': 19530}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:43560 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:51422 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:33492 - "POST /checkin HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5730 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5087 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.2182 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5140 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5542 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5351 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.6059 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5198 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.6188 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5209 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4671 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.4842 -INFO:root:Best student 3 dist=0.2182, second_best=0.4671 -INFO:root:Distance ratio (best/second) = 0.4671 -{'data': {'name': 'VO MINH TRUONG', 'time_string': '2025-12-25 07:38:21.461487', 'status': 'check in', 'created_at': '2025-12-25T00:38:21.000000Z', 'user_id': 4, 'updated_at': '2025-12-25T00:38:21.000000Z', 'id': 19531}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:33794 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:33800 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:52144 - "GET / HTTP/1.1" 200 OK -INFO: 172.16.6.38:52148 - "GET /static/assets/index-CDZdzCu6.css HTTP/1.1" 304 Not Modified -INFO: 172.16.6.38:52154 - "GET /static/assets/index-DW_Nku2j.js HTTP/1.1" 304 Not Modified -INFO: 172.16.6.38:52176 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:52168 - "GET /users HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.6097 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5616 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5627 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5653 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5686 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4953 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.6200 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5588 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.2146 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.6238 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5059 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5711 -INFO:root:Best student 9 dist=0.2146, second_best=0.4953 -INFO:root:Distance ratio (best/second) = 0.4333 -{'data': {'name': 'VO VAN MINH', 'time_string': '2025-12-25 11:32:35.852475', 'status': 'check out', 'created_at': '2025-12-25T04:32:35.000000Z', 'user_id': 11, 'updated_at': '2025-12-25T04:32:35.000000Z', 'id': 19532}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:52184 - "POST /checkin HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5913 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.4381 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.4647 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5201 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4938 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4292 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.4670 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.2613 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.4855 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5681 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4718 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.4896 -INFO:root:Best student 8 dist=0.2613, second_best=0.4292 -INFO:root:Distance ratio (best/second) = 0.6088 -{'data': {'name': 'LE TAN LUAN', 'time_string': '2025-12-25 11:32:39.512702', 'status': 'check out', 'created_at': '2025-12-25T04:32:39.000000Z', 'user_id': 10, 'updated_at': '2025-12-25T04:32:39.000000Z', 'id': 19533}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:52192 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:52206 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:60286 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5463 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.6309 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5887 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5459 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5128 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.6174 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.2592 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5508 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.6199 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.6275 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5773 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.6193 -INFO:root:Best student 7 dist=0.2592, second_best=0.5128 -INFO:root:Distance ratio (best/second) = 0.5055 -{'data': {'name': 'NGUYEN TRUNG THAT', 'time_string': '2025-12-25 11:34:00.379117', 'status': 'check out', 'created_at': '2025-12-25T04:34:00.000000Z', 'user_id': 9, 'updated_at': '2025-12-25T04:34:00.000000Z', 'id': 19534}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:55276 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:44994 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.6708 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5020 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5745 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5285 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5289 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4729 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5874 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5170 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.2492 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5802 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5055 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5463 -INFO:root:Best student 9 dist=0.2492, second_best=0.4729 -INFO:root:Distance ratio (best/second) = 0.5270 -{'data': {'name': 'VO VAN MINH', 'time_string': '2025-12-25 13:01:49.962000', 'status': 'check in', 'created_at': '2025-12-25T06:01:50.000000Z', 'user_id': 11, 'updated_at': '2025-12-25T06:01:50.000000Z', 'id': 19535}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:44660 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:47894 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:37518 - "GET / HTTP/1.1" 200 OK -INFO: 172.16.6.38:37524 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:37536 - "GET /users HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5405 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.4469 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.4789 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5184 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4804 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4060 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.4937 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.2810 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.4568 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5614 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4834 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5009 -INFO:root:Best student 8 dist=0.2810, second_best=0.4060 -INFO:root:Distance ratio (best/second) = 0.6922 -{'data': {'name': 'LE TAN LUAN', 'time_string': '2025-12-25 13:02:36.347851', 'status': 'check in', 'created_at': '2025-12-25T06:02:36.000000Z', 'user_id': 10, 'updated_at': '2025-12-25T06:02:36.000000Z', 'id': 19536}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:37540 - "POST /checkin HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5492 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5596 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5840 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5507 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5231 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5804 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.3269 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5182 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5854 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.6394 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5777 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.6135 -INFO:root:Best student 7 dist=0.3269, second_best=0.5182 -INFO:root:Distance ratio (best/second) = 0.6308 -{'data': {'name': 'NGUYEN TRUNG THAT', 'time_string': '2025-12-25 13:02:40.071349', 'status': 'check in', 'created_at': '2025-12-25T06:02:40.000000Z', 'user_id': 9, 'updated_at': '2025-12-25T06:02:40.000000Z', 'id': 19537}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:37542 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:37558 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:37174 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5741 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.2776 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.4946 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4714 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5084 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4823 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5425 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.4682 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.4452 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5918 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5390 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5210 -INFO:root:Best student 2 dist=0.2776, second_best=0.4452 -INFO:root:Distance ratio (best/second) = 0.6237 -{'data': {'name': 'PHAM VAN HUYNH', 'time_string': '2025-12-25 13:05:55.081566', 'status': 'check out', 'created_at': '2025-12-25T06:05:55.000000Z', 'user_id': 3, 'updated_at': '2025-12-25T06:05:55.000000Z', 'id': 19538}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:33906 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:33912 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:57608 - "GET / HTTP/1.1" 200 OK -INFO: 172.16.6.38:57620 - "GET /static/assets/index-CDZdzCu6.css HTTP/1.1" 304 Not Modified -INFO: 172.16.6.38:57630 - "GET /static/assets/index-DW_Nku2j.js HTTP/1.1" 304 Not Modified -INFO: 172.16.6.38:57642 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:57636 - "GET /users HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5759 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.4287 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.4661 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4885 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4516 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.3863 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.4920 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.2305 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.4371 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5132 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4476 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.4965 -INFO:root:Best student 8 dist=0.2305, second_best=0.3863 -INFO:root:Distance ratio (best/second) = 0.5966 -{'data': {'name': 'LE TAN LUAN', 'time_string': '2025-12-25 16:04:51.376892', 'status': 'check out', 'created_at': '2025-12-25T09:04:51.000000Z', 'user_id': 10, 'updated_at': '2025-12-25T09:04:51.000000Z', 'id': 19540}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:44500 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:44508 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5339 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.6290 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5984 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5285 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4914 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5995 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.2715 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5313 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5899 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5953 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5438 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5971 -INFO:root:Best student 7 dist=0.2715, second_best=0.4914 -INFO:root:Distance ratio (best/second) = 0.5524 -{'data': {'name': 'NGUYEN TRUNG THAT', 'time_string': '2025-12-25 16:16:51.785686', 'status': 'check out', 'created_at': '2025-12-25T09:16:51.000000Z', 'user_id': 9, 'updated_at': '2025-12-25T09:16:51.000000Z', 'id': 19541}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:57670 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:57676 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.2959 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.6391 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5973 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.6247 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.6020 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.6167 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5484 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5685 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.6729 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.6847 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5735 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.6128 -INFO:root:Best student 1 dist=0.2959, second_best=0.5484 -INFO:root:Distance ratio (best/second) = 0.5395 -{'data': {'name': 'PHAN QUOC BAO', 'time_string': '2025-12-25 16:31:36.933087', 'status': 'check out', 'created_at': '2025-12-25T09:31:36.000000Z', 'user_id': 2, 'updated_at': '2025-12-25T09:31:36.000000Z', 'id': 19542}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:37504 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:37510 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5864 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.4986 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5755 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4978 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4214 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.2246 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5849 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.4525 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.4948 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.4921 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.3715 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.4728 -INFO:root:Best student 6 dist=0.2246, second_best=0.3715 -INFO:root:Distance ratio (best/second) = 0.6045 -{'data': {'name': 'HUYNH THI HONG GAM', 'time_string': '2025-12-25 16:39:32.467894', 'status': 'check out', 'created_at': '2025-12-25T09:39:32.000000Z', 'user_id': 8, 'updated_at': '2025-12-25T09:39:32.000000Z', 'id': 19543}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:35134 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:35146 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.6960 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5984 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5585 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4634 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5905 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5194 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5923 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5156 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.6226 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.3305 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5078 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5131 -INFO:root:Best student 10 dist=0.3305, second_best=0.4634 -INFO:root:Distance ratio (best/second) = 0.7131 -{'data': {'name': 'TON GIA KHANH', 'time_string': '2025-12-25 16:41:43.262469', 'status': 'check out', 'created_at': '2025-12-25T09:41:43.000000Z', 'user_id': 12, 'updated_at': '2025-12-25T09:41:43.000000Z', 'id': 19544}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:44294 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:44300 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:44268 - "POST /checkin HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5355 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5022 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5364 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.1907 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4594 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4741 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5301 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.4929 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5439 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.4417 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4667 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.4443 -INFO:root:Best student 4 dist=0.1907, second_best=0.4417 -INFO:root:Distance ratio (best/second) = 0.4316 -{'data': {'name': 'NGUYEN VO TINH', 'time_string': '2025-12-25 16:42:00.780579', 'status': 'check out', 'created_at': '2025-12-25T09:42:00.000000Z', 'user_id': 6, 'updated_at': '2025-12-25T09:42:00.000000Z', 'id': 19545}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:44270 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:43580 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5667 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5422 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.2899 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5326 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5989 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5582 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5873 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5199 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.6487 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5826 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5407 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5326 -INFO:root:Best student 3 dist=0.2899, second_best=0.5199 -INFO:root:Distance ratio (best/second) = 0.5575 -{'data': {'name': 'VO MINH TRUONG', 'time_string': '2025-12-25 16:44:01.289737', 'status': 'check out', 'created_at': '2025-12-25T09:44:01.000000Z', 'user_id': 4, 'updated_at': '2025-12-25T09:44:01.000000Z', 'id': 19546}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:57572 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:57578 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5723 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.4966 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.4940 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4497 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5033 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4570 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.6145 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.4929 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5938 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.4729 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4917 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.2294 -INFO:root:Best student 12 dist=0.2294, second_best=0.4497 -INFO:root:Distance ratio (best/second) = 0.5101 -{'data': {'name': 'NGUYEN HOANG VI', 'time_string': '2025-12-25 16:51:27.585601', 'status': 'check out', 'created_at': '2025-12-25T09:51:27.000000Z', 'user_id': 16, 'updated_at': '2025-12-25T09:51:27.000000Z', 'id': 19548}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:48068 - "POST /checkin HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5306 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5411 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.4610 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4714 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4353 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4190 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.6059 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.4946 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5133 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.4491 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.2471 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.4407 -INFO:root:Best student 11 dist=0.2471, second_best=0.4190 -INFO:root:Distance ratio (best/second) = 0.5897 -{'data': {'name': 'PHAM NHUT KHANG', 'time_string': '2025-12-25 16:51:31.213011', 'status': 'check out', 'created_at': '2025-12-25T09:51:31.000000Z', 'user_id': 15, 'updated_at': '2025-12-25T09:51:31.000000Z', 'id': 19549}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:48072 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:49998 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:50000 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.6276 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.4783 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5919 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4954 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5036 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4823 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5393 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.4671 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.2101 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5474 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5066 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5200 -INFO:root:Best student 9 dist=0.2101, second_best=0.4671 -INFO:root:Distance ratio (best/second) = 0.4497 -{'data': {'name': 'VO VAN MINH', 'time_string': '2025-12-25 16:59:13.862590', 'status': 'check out', 'created_at': '2025-12-25T09:59:13.000000Z', 'user_id': 11, 'updated_at': '2025-12-25T09:59:13.000000Z', 'id': 19550}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:55402 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:55412 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:60118 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:37444 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:37450 - "POST /checkin HTTP/1.1" 500 Internal Server Error -ERROR: Exception in ASGI application -Traceback (most recent call last): - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/connections.py", line 813, in _write_bytes - self._sock.sendall(data) -ConnectionResetError: [Errno 104] Connection reset by peer - -During handling of the above exception, another exception occurred: - -Traceback (most recent call last): - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1967, in _exec_single_context - self.dialect.do_execute( - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/default.py", line 952, in do_execute - cursor.execute(statement, parameters) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/cursors.py", line 153, in execute - result = self._query(query) - ^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/cursors.py", line 322, in _query - conn.query(q) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/connections.py", line 574, in query - self._execute_command(COMMAND.COM_QUERY, sql) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/connections.py", line 865, in _execute_command - self._write_bytes(packet) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/connections.py", line 816, in _write_bytes - raise err.OperationalError( -pymysql.err.OperationalError: (2006, "MySQL server has gone away (ConnectionResetError(104, 'Connection reset by peer'))") - -The above exception was the direct cause of the following exception: - -Traceback (most recent call last): - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/uvicorn/protocols/http/h11_impl.py", line 403, in run_asgi - result = await app( # type: ignore[func-returns-value] - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/uvicorn/middleware/proxy_headers.py", line 60, in __call__ - return await self.app(scope, receive, send) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/fastapi/applications.py", line 1139, in __call__ - await super().__call__(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/applications.py", line 107, in __call__ - await self.middleware_stack(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/middleware/errors.py", line 186, in __call__ - raise exc - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/middleware/errors.py", line 164, in __call__ - await self.app(scope, receive, _send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/middleware/cors.py", line 93, in __call__ - await self.simple_response(scope, receive, send, request_headers=headers) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/middleware/cors.py", line 144, in simple_response - await self.app(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 63, in __call__ - await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app - raise exc - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app - await app(scope, receive, sender) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/fastapi/middleware/asyncexitstack.py", line 18, in __call__ - await self.app(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/routing.py", line 716, in __call__ - await self.middleware_stack(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/routing.py", line 736, in app - await route.handle(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/routing.py", line 290, in handle - await self.app(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/fastapi/routing.py", line 120, in app - await wrap_app_handling_exceptions(app, request)(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app - raise exc - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app - await app(scope, receive, sender) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/fastapi/routing.py", line 106, in app - response = await f(request) - ^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/fastapi/routing.py", line 430, in app - raw_response = await run_endpoint_function( - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/fastapi/routing.py", line 316, in run_endpoint_function - return await dependant.call(**values) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/main.py", line 220, in checkin - rows = db.execute( - ^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/orm/session.py", line 2351, in execute - return self._execute_internal( - ^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/orm/session.py", line 2258, in _execute_internal - result = conn.execute( - ^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1419, in execute - return meth( - ^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/sql/elements.py", line 527, in _execute_on_connection - return connection._execute_clauseelement( - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1641, in _execute_clauseelement - ret = self._execute_context( - ^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1846, in _execute_context - return self._exec_single_context( - ^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1986, in _exec_single_context - self._handle_dbapi_exception( - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 2363, in _handle_dbapi_exception - raise sqlalchemy_exception.with_traceback(exc_info[2]) from e - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1967, in _exec_single_context - self.dialect.do_execute( - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/default.py", line 952, in do_execute - cursor.execute(statement, parameters) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/cursors.py", line 153, in execute - result = self._query(query) - ^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/cursors.py", line 322, in _query - conn.query(q) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/connections.py", line 574, in query - self._execute_command(COMMAND.COM_QUERY, sql) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/connections.py", line 865, in _execute_command - self._write_bytes(packet) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/connections.py", line 816, in _write_bytes - raise err.OperationalError( -sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (2006, "MySQL server has gone away (ConnectionResetError(104, 'Connection reset by peer'))") -[SQL: - SELECT s.id AS student_id, s.name AS student_name, se.encoding AS encoding_blob - FROM student_encodings se - JOIN students s ON s.id = se.student_id - ] -(Background on this error at: https://sqlalche.me/e/20/e3q8) -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.6943 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.6445 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.6311 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5207 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5334 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5429 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.6119 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5880 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5824 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.2474 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4847 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5870 -INFO:root:Best student 10 dist=0.2474, second_best=0.4847 -INFO:root:Distance ratio (best/second) = 0.5105 -{'data': {'name': 'TON GIA KHANH', 'time_string': '2025-12-26 06:59:28.549659', 'status': 'check in', 'created_at': '2025-12-25T23:59:28.000000Z', 'user_id': 12, 'updated_at': '2025-12-25T23:59:28.000000Z', 'id': 19551}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:37454 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:46050 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.6110 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.6081 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.6375 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4774 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.2421 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4795 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.4994 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5626 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5575 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5110 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4466 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.4766 -INFO:root:Best student 5 dist=0.2421, second_best=0.4466 -INFO:root:Distance ratio (best/second) = 0.5420 -{'data': {'name': 'DANG TRUNG KIEN', 'time_string': '2025-12-26 07:12:37.514289', 'status': 'check in', 'created_at': '2025-12-26T00:12:37.000000Z', 'user_id': 7, 'updated_at': '2025-12-26T00:12:37.000000Z', 'id': 19552}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:55280 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:50472 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5759 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5752 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5795 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.3865 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5037 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4971 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.4871 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.4978 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5720 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.4678 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4867 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5196 -INFO:root:Best student 4 dist=0.3865, second_best=0.4678 -INFO:root:Distance ratio (best/second) = 0.8262 -{'data': {'name': 'NGUYEN VO TINH', 'time_string': '2025-12-26 07:13:51.989981', 'status': 'check in', 'created_at': '2025-12-26T00:13:52.000000Z', 'user_id': 6, 'updated_at': '2025-12-26T00:13:52.000000Z', 'id': 19553}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:38834 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:38850 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5548 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5072 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.4995 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4246 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4745 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4603 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5213 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.4848 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.4618 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5087 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.3457 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.4963 -INFO:root:Best student 11 dist=0.3457, second_best=0.4246 -INFO:root:Distance ratio (best/second) = 0.8142 -{'data': {'name': 'PHAM NHUT KHANG', 'time_string': '2025-12-26 07:15:03.794129', 'status': 'check in', 'created_at': '2025-12-26T00:15:03.000000Z', 'user_id': 15, 'updated_at': '2025-12-26T00:15:03.000000Z', 'id': 19554}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:47358 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:47372 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.2381 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.6005 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5994 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5441 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5880 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.6044 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5796 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5673 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.6368 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.6626 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5376 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.6036 -INFO:root:Best student 1 dist=0.2381, second_best=0.5376 -INFO:root:Distance ratio (best/second) = 0.4428 -{'data': {'name': 'PHAN QUOC BAO', 'time_string': '2025-12-26 07:23:33.943143', 'status': 'check in', 'created_at': '2025-12-26T00:23:33.000000Z', 'user_id': 2, 'updated_at': '2025-12-26T00:23:33.000000Z', 'id': 19555}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:41122 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:41132 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5833 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.3082 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5301 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4548 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4752 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4971 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5563 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.4957 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.4873 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5694 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5077 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5139 -INFO:root:Best student 2 dist=0.3082, second_best=0.4548 -INFO:root:Distance ratio (best/second) = 0.6777 -{'data': {'name': 'PHAM VAN HUYNH', 'time_string': '2025-12-26 07:30:30.036929', 'status': 'check in', 'created_at': '2025-12-26T00:30:30.000000Z', 'user_id': 3, 'updated_at': '2025-12-26T00:30:30.000000Z', 'id': 19556}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:49680 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:33526 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5705 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5465 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5578 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5399 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4302 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5403 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.3286 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5172 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5283 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5837 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5429 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5861 -INFO:root:Best student 7 dist=0.3286, second_best=0.4302 -INFO:root:Distance ratio (best/second) = 0.7638 -{'data': {'name': 'NGUYEN TRUNG THAT', 'time_string': '2025-12-26 07:31:31.526344', 'status': 'check in', 'created_at': '2025-12-26T00:31:31.000000Z', 'user_id': 9, 'updated_at': '2025-12-26T00:31:31.000000Z', 'id': 19557}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:57872 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:57886 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:34732 - "GET / HTTP/1.1" 200 OK -INFO: 172.16.6.38:34742 - "GET /static/assets/index-CDZdzCu6.css HTTP/1.1" 304 Not Modified -INFO: 172.16.6.38:34746 - "GET /static/assets/index-DW_Nku2j.js HTTP/1.1" 304 Not Modified -INFO: 172.16.6.38:34762 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:34760 - "GET /users HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5537 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.4703 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.4729 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4958 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4626 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.3699 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.4310 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.2425 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.4733 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5489 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4589 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5234 -INFO:root:Best student 8 dist=0.2425, second_best=0.3699 -INFO:root:Distance ratio (best/second) = 0.6555 -{'data': {'name': 'LE TAN LUAN', 'time_string': '2025-12-26 07:33:02.050662', 'status': 'check in', 'created_at': '2025-12-26T00:33:02.000000Z', 'user_id': 10, 'updated_at': '2025-12-26T00:33:02.000000Z', 'id': 19558}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:45362 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:45370 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5720 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5076 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.4900 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4303 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4702 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.3969 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5863 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.4648 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5605 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.4433 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4542 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.2058 -INFO:root:Best student 12 dist=0.2058, second_best=0.3969 -INFO:root:Distance ratio (best/second) = 0.5184 -{'data': {'name': 'NGUYEN HOANG VI', 'time_string': '2025-12-26 07:33:41.210673', 'status': 'check in', 'created_at': '2025-12-26T00:33:41.000000Z', 'user_id': 16, 'updated_at': '2025-12-26T00:33:41.000000Z', 'id': 19559}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:58142 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:58144 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.6244 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5125 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.2713 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5486 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.6039 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5495 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.6348 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.4794 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.6090 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5782 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5321 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5407 -INFO:root:Best student 3 dist=0.2713, second_best=0.4794 -INFO:root:Distance ratio (best/second) = 0.5659 -{'data': {'name': 'VO MINH TRUONG', 'time_string': '2025-12-26 07:36:37.061108', 'status': 'check in', 'created_at': '2025-12-26T00:36:37.000000Z', 'user_id': 4, 'updated_at': '2025-12-26T00:36:37.000000Z', 'id': 19560}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:54082 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:45168 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:55908 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:55912 - "GET / HTTP/1.1" 200 OK -INFO: 172.16.6.38:55926 - "GET /static/assets/index-CDZdzCu6.css HTTP/1.1" 304 Not Modified -INFO: 172.16.6.38:55940 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:55942 - "GET /users HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.6773 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5638 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5472 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4895 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5328 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5011 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.6015 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5176 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5636 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.2659 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4763 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5291 -INFO:root:Best student 10 dist=0.2659, second_best=0.4763 -INFO:root:Distance ratio (best/second) = 0.5583 -{'data': {'name': 'TON GIA KHANH', 'time_string': '2025-12-26 11:22:52.375465', 'status': 'check out', 'created_at': '2025-12-26T04:22:52.000000Z', 'user_id': 12, 'updated_at': '2025-12-26T04:22:52.000000Z', 'id': 19562}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:59738 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:59748 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.6424 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.3695 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5876 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5204 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.6050 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5706 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.6038 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5712 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5754 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.6602 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.6147 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5986 -INFO:root:Best student 2 dist=0.3695, second_best=0.5204 -INFO:root:Distance ratio (best/second) = 0.7100 -{'data': {'name': 'PHAM VAN HUYNH', 'time_string': '2025-12-26 11:31:55.735835', 'status': 'check out', 'created_at': '2025-12-26T04:31:55.000000Z', 'user_id': 3, 'updated_at': '2025-12-26T04:31:55.000000Z', 'id': 19563}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:37448 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:37464 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5817 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.4197 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.4668 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4996 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5100 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4177 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.4974 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.2283 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.4778 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5641 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4884 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5386 -INFO:root:Best student 8 dist=0.2283, second_best=0.4177 -INFO:root:Distance ratio (best/second) = 0.5467 -{'data': {'name': 'LE TAN LUAN', 'time_string': '2025-12-26 11:32:03.384385', 'status': 'check out', 'created_at': '2025-12-26T04:32:03.000000Z', 'user_id': 10, 'updated_at': '2025-12-26T04:32:03.000000Z', 'id': 19564}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:42442 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:42450 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5934 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.6564 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.6327 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5896 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4994 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.6155 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.2562 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5442 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.6016 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.6496 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5908 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.6464 -INFO:root:Best student 7 dist=0.2562, second_best=0.4994 -INFO:root:Distance ratio (best/second) = 0.5130 -{'data': {'name': 'NGUYEN TRUNG THAT', 'time_string': '2025-12-26 11:32:09.022358', 'status': 'check out', 'created_at': '2025-12-26T04:32:09.000000Z', 'user_id': 9, 'updated_at': '2025-12-26T04:32:09.000000Z', 'id': 19565}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:42462 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:38272 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5484 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5836 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5811 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.6302 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5770 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.6038 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.3039 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5162 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5988 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.6669 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.6169 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.6219 -INFO:root:Best student 7 dist=0.3039, second_best=0.5162 -INFO:root:Distance ratio (best/second) = 0.5887 -{'data': {'name': 'NGUYEN TRUNG THAT', 'time_string': '2025-12-26 12:56:20.078190', 'status': 'check in', 'created_at': '2025-12-26T05:56:20.000000Z', 'user_id': 9, 'updated_at': '2025-12-26T05:56:20.000000Z', 'id': 19566}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:45030 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:40786 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.6306 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5969 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.6231 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.6035 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5739 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5007 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.6000 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5037 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.3453 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5924 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5082 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5555 -INFO:root:Best student 9 dist=0.3453, second_best=0.5007 -INFO:root:Distance ratio (best/second) = 0.6896 -{'data': {'name': 'VO VAN MINH', 'time_string': '2025-12-26 13:00:43.612438', 'status': 'check in', 'created_at': '2025-12-26T06:00:43.000000Z', 'user_id': 11, 'updated_at': '2025-12-26T06:00:43.000000Z', 'id': 19567}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:36464 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:36474 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:50076 - "GET / HTTP/1.1" 200 OK -INFO: 172.16.6.38:50086 - "GET /static/assets/index-DW_Nku2j.js HTTP/1.1" 304 Not Modified -INFO: 172.16.6.38:50106 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:50090 - "GET /users HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5790 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.4182 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.4685 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4978 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5444 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4212 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5232 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.3220 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5077 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5833 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4809 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5235 -INFO:root:Best student 8 dist=0.3220, second_best=0.4182 -INFO:root:Distance ratio (best/second) = 0.7698 -{'data': {'name': 'LE TAN LUAN', 'time_string': '2025-12-26 13:01:36.181982', 'status': 'check in', 'created_at': '2025-12-26T06:01:36.000000Z', 'user_id': 10, 'updated_at': '2025-12-26T06:01:36.000000Z', 'id': 19568}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:41560 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:41564 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:46610 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:46606 - "GET /users HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.6359 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.6237 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5845 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5107 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5461 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5287 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5987 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5482 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.6186 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.2292 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4752 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5284 -INFO:root:Best student 10 dist=0.2292, second_best=0.4752 -INFO:root:Distance ratio (best/second) = 0.4823 -{'data': {'name': 'TON GIA KHANH', 'time_string': '2025-12-26 13:22:02.524643', 'status': 'check in', 'created_at': '2025-12-26T06:22:02.000000Z', 'user_id': 12, 'updated_at': '2025-12-26T06:22:02.000000Z', 'id': 19570}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:59196 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:59204 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:60606 - "GET / HTTP/1.1" 200 OK -INFO: 172.16.6.38:60620 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:60608 - "GET /users HTTP/1.1" 200 OK -INFO: 172.16.6.38:60636 - "GET /static/assets/index-DW_Nku2j.js HTTP/1.1" 200 OK -INFO: 172.16.6.38:40078 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:40076 - "GET /users HTTP/1.1" 200 OK -INFO: 172.16.6.38:33578 - "GET / HTTP/1.1" 200 OK -INFO: 172.16.6.38:33594 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:33584 - "GET /users HTTP/1.1" 200 OK -INFO: 172.16.6.38:33608 - "GET / HTTP/1.1" 200 OK -INFO: 172.16.6.38:33632 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:33618 - "GET /users HTTP/1.1" 200 OK -INFO: 172.16.6.38:59514 - "GET / HTTP/1.1" 200 OK -INFO: 172.16.6.38:59526 - "GET /static/assets/index-CDZdzCu6.css HTTP/1.1" 304 Not Modified -INFO: 172.16.6.38:59544 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:59532 - "GET /users HTTP/1.1" 200 OK -INFO: 172.16.6.38:55336 - "GET / HTTP/1.1" 200 OK -INFO: 172.16.6.38:55344 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:55338 - "GET /users HTTP/1.1" 200 OK -INFO: 172.16.6.38:53840 - "GET / HTTP/1.1" 200 OK -INFO: 172.16.6.38:53854 - "GET /users HTTP/1.1" 200 OK -INFO: 172.16.6.38:53866 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5450 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.4447 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5120 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5184 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4362 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4285 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.4894 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.3047 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.4577 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5419 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4851 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5309 -INFO:root:Best student 8 dist=0.3047, second_best=0.4285 -INFO:root:Distance ratio (best/second) = 0.7110 -{'data': {'name': 'LE TAN LUAN', 'time_string': '2025-12-26 13:48:59.139038', 'status': 'check out', 'created_at': '2025-12-26T06:48:59.000000Z', 'user_id': 10, 'updated_at': '2025-12-26T06:48:59.000000Z', 'id': 19571}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:43142 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:39168 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:45782 - "GET / HTTP/1.1" 200 OK -INFO: 172.16.6.38:45800 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:45790 - "GET /users HTTP/1.1" 200 OK -INFO: 172.16.6.38:56522 - "GET / HTTP/1.1" 200 OK -INFO: 172.16.6.38:56542 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:56530 - "GET /users HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5987 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5283 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.4846 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4523 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4628 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.3895 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5306 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.4321 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.4688 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.4800 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.3213 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.3984 -INFO:root:Best student 11 dist=0.3213, second_best=0.3895 -INFO:root:Distance ratio (best/second) = 0.8249 -{'data': {'name': 'PHAM NHUT KHANG', 'time_string': '2025-12-26 13:54:53.825389', 'status': 'check out', 'created_at': '2025-12-26T06:54:53.000000Z', 'user_id': 15, 'updated_at': '2025-12-26T06:54:53.000000Z', 'id': 19572}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:40360 - "POST /checkin HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5733 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5445 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.4743 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4518 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4673 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4074 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5330 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.4337 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.4871 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5050 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.2999 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.4029 -INFO:root:Best student 11 dist=0.2999, second_best=0.4029 -INFO:root:Distance ratio (best/second) = 0.7442 -INFO: 172.16.6.38:40370 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:40374 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:40388 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:43384 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:43394 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:43404 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:55020 - "POST /register HTTP/1.1" 400 Bad Request -INFO: 172.16.6.38:48052 - "GET / HTTP/1.1" 200 OK -INFO: 172.16.6.38:48068 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:48064 - "GET /users HTTP/1.1" 200 OK -INFO: 172.16.6.38:44102 - "GET / HTTP/1.1" 200 OK -INFO: 172.16.6.38:44116 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:44106 - "GET /users HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.2787 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.6517 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5782 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.6403 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.6669 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.6689 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5617 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5823 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.7179 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.7000 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.6271 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.6573 -INFO:root:Best student 1 dist=0.2787, second_best=0.5617 -INFO:root:Distance ratio (best/second) = 0.4962 -{'data': {'name': 'PHAN QUOC BAO', 'time_string': '2025-12-26 16:32:42.505047', 'status': 'check out', 'created_at': '2025-12-26T09:32:42.000000Z', 'user_id': 2, 'updated_at': '2025-12-26T09:32:42.000000Z', 'id': 19573}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:51210 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:51220 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5357 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.6050 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.6107 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5589 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4425 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5650 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.3095 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5305 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5327 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.6226 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5447 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5970 -INFO:root:Best student 7 dist=0.3095, second_best=0.4425 -INFO:root:Distance ratio (best/second) = 0.6995 -{'data': {'name': 'NGUYEN TRUNG THAT', 'time_string': '2025-12-26 16:32:55.130482', 'status': 'check out', 'created_at': '2025-12-26T09:32:55.000000Z', 'user_id': 9, 'updated_at': '2025-12-26T09:32:55.000000Z', 'id': 19574}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:60120 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:60132 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5705 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5542 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5915 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4543 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.2474 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4830 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.4413 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5040 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5562 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.4591 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4575 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.4510 -INFO:root:Best student 5 dist=0.2474, second_best=0.4413 -INFO:root:Distance ratio (best/second) = 0.5605 -{'data': {'name': 'DANG TRUNG KIEN', 'time_string': '2025-12-26 16:34:14.447505', 'status': 'check out', 'created_at': '2025-12-26T09:34:14.000000Z', 'user_id': 7, 'updated_at': '2025-12-26T09:34:14.000000Z', 'id': 19575}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:60876 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:60880 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.4888 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.4549 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5093 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.3232 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4974 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4733 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5144 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.4397 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5329 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.4980 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4864 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.4637 -INFO:root:Best student 4 dist=0.3232, second_best=0.4397 -INFO:root:Distance ratio (best/second) = 0.7350 -{'data': {'name': 'NGUYEN VO TINH', 'time_string': '2025-12-26 16:35:00.055721', 'status': 'check out', 'created_at': '2025-12-26T09:35:00.000000Z', 'user_id': 6, 'updated_at': '2025-12-26T09:35:00.000000Z', 'id': 19576}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:42176 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:33838 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.6324 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5726 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5633 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4759 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5355 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5414 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5736 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5566 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.6041 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.2741 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4647 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5155 -INFO:root:Best student 10 dist=0.2741, second_best=0.4647 -INFO:root:Distance ratio (best/second) = 0.5899 -{'data': {'name': 'TON GIA KHANH', 'time_string': '2025-12-26 16:39:09.472548', 'status': 'check out', 'created_at': '2025-12-26T09:39:09.000000Z', 'user_id': 12, 'updated_at': '2025-12-26T09:39:09.000000Z', 'id': 19577}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:40648 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:60596 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5260 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.4963 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.4721 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4469 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4142 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.3947 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5740 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.4442 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.4814 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.4380 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.2189 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.4308 -INFO:root:Best student 11 dist=0.2189, second_best=0.3947 -INFO:root:Distance ratio (best/second) = 0.5547 -{'data': {'name': 'PHAM NHUT KHANG', 'time_string': '2025-12-26 16:47:49.686714', 'status': 'check out', 'created_at': '2025-12-26T09:47:49.000000Z', 'user_id': 15, 'updated_at': '2025-12-26T09:47:49.000000Z', 'id': 19578}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:42204 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:51746 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:41272 - "GET / HTTP/1.1" 200 OK -INFO: 172.16.6.38:41282 - "GET /static/assets/index-CDZdzCu6.css HTTP/1.1" 304 Not Modified -INFO: 172.16.6.38:41290 - "GET /users HTTP/1.1" 200 OK -INFO: 172.16.6.38:41296 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5562 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5003 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.4711 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4392 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5081 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4552 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.6030 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.4587 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5736 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.4590 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4739 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.2525 -INFO:root:Best student 12 dist=0.2525, second_best=0.4392 -INFO:root:Distance ratio (best/second) = 0.5748 -{'data': {'name': 'NGUYEN HOANG VI', 'time_string': '2025-12-26 16:53:38.389208', 'status': 'check out', 'created_at': '2025-12-26T09:53:38.000000Z', 'user_id': 16, 'updated_at': '2025-12-26T09:53:38.000000Z', 'id': 19579}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:41308 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:38380 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5833 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.2457 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.4798 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4647 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5302 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5017 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5267 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.4605 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.4764 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5984 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5437 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.4789 -INFO:root:Best student 2 dist=0.2457, second_best=0.4605 -INFO:root:Distance ratio (best/second) = 0.5336 -{'data': {'name': 'PHAM VAN HUYNH', 'time_string': '2025-12-26 16:54:19.561644', 'status': 'check out', 'created_at': '2025-12-26T09:54:19.000000Z', 'user_id': 3, 'updated_at': '2025-12-26T09:54:19.000000Z', 'id': 19580}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:55104 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:43026 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5653 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.4303 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.4760 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5322 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4826 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.3914 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.4791 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.2679 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.4163 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5693 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4904 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5397 -INFO:root:Best student 8 dist=0.2679, second_best=0.3914 -INFO:root:Distance ratio (best/second) = 0.6845 -{'data': {'name': 'LE TAN LUAN', 'time_string': '2025-12-26 16:55:47.553791', 'status': 'check out', 'created_at': '2025-12-26T09:55:47.000000Z', 'user_id': 10, 'updated_at': '2025-12-26T09:55:47.000000Z', 'id': 19581}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:49150 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:48570 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.6499 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5012 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5529 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5751 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5273 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4460 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5813 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5009 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.3501 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5424 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5265 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5455 -INFO:root:Best student 9 dist=0.3501, second_best=0.4460 -INFO:root:Distance ratio (best/second) = 0.7850 -{'data': {'name': 'VO VAN MINH', 'time_string': '2025-12-26 17:00:12.328800', 'status': 'check out', 'created_at': '2025-12-26T10:00:12.000000Z', 'user_id': 11, 'updated_at': '2025-12-26T10:00:12.000000Z', 'id': 19582}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:34646 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:34650 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.6246 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5339 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.2777 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5056 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5449 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5086 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.6031 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.4665 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5847 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5185 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4521 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.4838 -INFO:root:Best student 3 dist=0.2777, second_best=0.4521 -INFO:root:Distance ratio (best/second) = 0.6142 -{'data': {'name': 'VO MINH TRUONG', 'time_string': '2025-12-26 17:00:26.251416', 'status': 'check out', 'created_at': '2025-12-26T10:00:26.000000Z', 'user_id': 4, 'updated_at': '2025-12-26T10:00:26.000000Z', 'id': 19583}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:41298 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:41302 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:46610 - "POST /checkin HTTP/1.1" 500 Internal Server Error -ERROR: Exception in ASGI application -Traceback (most recent call last): - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/connections.py", line 813, in _write_bytes - self._sock.sendall(data) -ConnectionResetError: [Errno 104] Connection reset by peer - -During handling of the above exception, another exception occurred: - -Traceback (most recent call last): - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1967, in _exec_single_context - self.dialect.do_execute( - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/default.py", line 952, in do_execute - cursor.execute(statement, parameters) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/cursors.py", line 153, in execute - result = self._query(query) - ^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/cursors.py", line 322, in _query - conn.query(q) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/connections.py", line 574, in query - self._execute_command(COMMAND.COM_QUERY, sql) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/connections.py", line 865, in _execute_command - self._write_bytes(packet) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/connections.py", line 816, in _write_bytes - raise err.OperationalError( -pymysql.err.OperationalError: (2006, "MySQL server has gone away (ConnectionResetError(104, 'Connection reset by peer'))") - -The above exception was the direct cause of the following exception: - -Traceback (most recent call last): - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/uvicorn/protocols/http/h11_impl.py", line 403, in run_asgi - result = await app( # type: ignore[func-returns-value] - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/uvicorn/middleware/proxy_headers.py", line 60, in __call__ - return await self.app(scope, receive, send) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/fastapi/applications.py", line 1139, in __call__ - await super().__call__(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/applications.py", line 107, in __call__ - await self.middleware_stack(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/middleware/errors.py", line 186, in __call__ - raise exc - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/middleware/errors.py", line 164, in __call__ - await self.app(scope, receive, _send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/middleware/cors.py", line 93, in __call__ - await self.simple_response(scope, receive, send, request_headers=headers) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/middleware/cors.py", line 144, in simple_response - await self.app(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 63, in __call__ - await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app - raise exc - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app - await app(scope, receive, sender) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/fastapi/middleware/asyncexitstack.py", line 18, in __call__ - await self.app(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/routing.py", line 716, in __call__ - await self.middleware_stack(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/routing.py", line 736, in app - await route.handle(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/routing.py", line 290, in handle - await self.app(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/fastapi/routing.py", line 120, in app - await wrap_app_handling_exceptions(app, request)(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app - raise exc - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app - await app(scope, receive, sender) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/fastapi/routing.py", line 106, in app - response = await f(request) - ^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/fastapi/routing.py", line 430, in app - raw_response = await run_endpoint_function( - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/fastapi/routing.py", line 316, in run_endpoint_function - return await dependant.call(**values) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/main.py", line 220, in checkin - rows = db.execute( - ^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/orm/session.py", line 2351, in execute - return self._execute_internal( - ^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/orm/session.py", line 2258, in _execute_internal - result = conn.execute( - ^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1419, in execute - return meth( - ^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/sql/elements.py", line 527, in _execute_on_connection - return connection._execute_clauseelement( - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1641, in _execute_clauseelement - ret = self._execute_context( - ^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1846, in _execute_context - return self._exec_single_context( - ^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1986, in _exec_single_context - self._handle_dbapi_exception( - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 2363, in _handle_dbapi_exception - raise sqlalchemy_exception.with_traceback(exc_info[2]) from e - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1967, in _exec_single_context - self.dialect.do_execute( - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/default.py", line 952, in do_execute - cursor.execute(statement, parameters) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/cursors.py", line 153, in execute - result = self._query(query) - ^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/cursors.py", line 322, in _query - conn.query(q) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/connections.py", line 574, in query - self._execute_command(COMMAND.COM_QUERY, sql) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/connections.py", line 865, in _execute_command - self._write_bytes(packet) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/connections.py", line 816, in _write_bytes - raise err.OperationalError( -sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (2006, "MySQL server has gone away (ConnectionResetError(104, 'Connection reset by peer'))") -[SQL: - SELECT s.id AS student_id, s.name AS student_name, se.encoding AS encoding_blob - FROM student_encodings se - JOIN students s ON s.id = se.student_id - ] -(Background on this error at: https://sqlalche.me/e/20/e3q8) -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5719 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5794 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5955 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4502 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.2255 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4765 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.4745 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5311 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5569 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.4536 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4382 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.4468 -INFO:root:Best student 5 dist=0.2255, second_best=0.4382 -INFO:root:Distance ratio (best/second) = 0.5146 -{'data': {'name': 'DANG TRUNG KIEN', 'time_string': '2025-12-27 07:07:33.377891', 'status': 'check in', 'created_at': '2025-12-27T00:07:33.000000Z', 'user_id': 7, 'updated_at': '2025-12-27T00:07:33.000000Z', 'id': 19586}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:38676 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:38686 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5291 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.4844 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.4671 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4014 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4517 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4209 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5705 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5027 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5338 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.4651 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4508 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.2617 -INFO:root:Best student 12 dist=0.2617, second_best=0.4014 -INFO:root:Distance ratio (best/second) = 0.6520 -{'data': {'name': 'NGUYEN HOANG VI', 'time_string': '2025-12-27 07:20:15.372295', 'status': 'check in', 'created_at': '2025-12-27T00:20:15.000000Z', 'user_id': 16, 'updated_at': '2025-12-27T00:20:15.000000Z', 'id': 19587}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:59850 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:59866 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:38780 - "GET / HTTP/1.1" 200 OK -INFO: 172.16.6.38:38788 - "GET /static/assets/index-CDZdzCu6.css HTTP/1.1" 304 Not Modified -INFO: 172.16.6.38:38804 - "GET /static/assets/index-DW_Nku2j.js HTTP/1.1" 304 Not Modified -INFO: 172.16.6.38:38814 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:38810 - "GET /users HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5639 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.4983 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5163 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4539 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4016 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.2369 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5375 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.3939 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.4602 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.4736 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.3381 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.4289 -INFO:root:Best student 6 dist=0.2369, second_best=0.3381 -INFO:root:Distance ratio (best/second) = 0.7006 -{'data': {'name': 'HUYNH THI HONG GAM', 'time_string': '2025-12-27 07:27:46.062199', 'status': 'check in', 'created_at': '2025-12-27T00:27:46.000000Z', 'user_id': 8, 'updated_at': '2025-12-27T00:27:46.000000Z', 'id': 19588}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:38820 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:38834 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5731 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5488 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5424 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5223 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4510 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5330 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.3266 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.4846 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5301 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5766 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5376 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5848 -INFO:root:Best student 7 dist=0.3266, second_best=0.4510 -INFO:root:Distance ratio (best/second) = 0.7242 -{'data': {'name': 'NGUYEN TRUNG THAT', 'time_string': '2025-12-27 07:30:45.564794', 'status': 'check in', 'created_at': '2025-12-27T00:30:45.000000Z', 'user_id': 9, 'updated_at': '2025-12-27T00:30:45.000000Z', 'id': 19589}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:34940 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:34954 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.6317 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5148 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5951 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5594 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5353 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4989 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5636 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5000 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.2645 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.6014 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5403 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5414 -INFO:root:Best student 9 dist=0.2645, second_best=0.4989 -INFO:root:Distance ratio (best/second) = 0.5302 -{'data': {'name': 'VO VAN MINH', 'time_string': '2025-12-27 07:44:21.694569', 'status': 'check in', 'created_at': '2025-12-27T00:44:21.000000Z', 'user_id': 11, 'updated_at': '2025-12-27T00:44:21.000000Z', 'id': 19590}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:45488 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:45496 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5943 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5130 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.2863 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5403 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.6017 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5635 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.6414 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.4748 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.6253 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5756 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5144 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5532 -INFO:root:Best student 3 dist=0.2863, second_best=0.4748 -INFO:root:Distance ratio (best/second) = 0.6030 -{'data': {'name': 'VO MINH TRUONG', 'time_string': '2025-12-27 07:44:53.847721', 'status': 'check in', 'created_at': '2025-12-27T00:44:53.000000Z', 'user_id': 4, 'updated_at': '2025-12-27T00:44:53.000000Z', 'id': 19591}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:54296 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:54306 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.6501 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.6428 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5987 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5117 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.6045 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.6102 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.6203 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.6082 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.6285 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.3462 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5054 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5709 -INFO:root:Best student 10 dist=0.3462, second_best=0.5054 -INFO:root:Distance ratio (best/second) = 0.6851 -{'data': {'name': 'TON GIA KHANH', 'time_string': '2025-12-27 07:53:33.575886', 'status': 'check in', 'created_at': '2025-12-27T00:53:33.000000Z', 'user_id': 12, 'updated_at': '2025-12-27T00:53:33.000000Z', 'id': 19592}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:46270 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:46284 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.6352 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.3056 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5716 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4626 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5227 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5573 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5684 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.4815 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5240 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5922 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5459 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.4866 -INFO:root:Best student 2 dist=0.3056, second_best=0.4626 -INFO:root:Distance ratio (best/second) = 0.6607 -{'data': {'name': 'PHAM VAN HUYNH', 'time_string': '2025-12-27 08:05:52.900339', 'status': 'check in', 'created_at': '2025-12-27T01:05:52.000000Z', 'user_id': 3, 'updated_at': '2025-12-27T01:05:52.000000Z', 'id': 19593}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:60640 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:60644 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:39760 - "POST /checkin HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.6196 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5861 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5601 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4979 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5522 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5516 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5948 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5582 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.6123 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.2614 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4553 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5238 -INFO:root:Best student 10 dist=0.2614, second_best=0.4553 -INFO:root:Distance ratio (best/second) = 0.5741 -{'data': {'name': 'TON GIA KHANH', 'time_string': '2025-12-27 11:05:11.464898', 'status': 'check out', 'created_at': '2025-12-27T04:05:11.000000Z', 'user_id': 12, 'updated_at': '2025-12-27T04:05:11.000000Z', 'id': 19595}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:60378 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:60380 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:60810 - "GET / HTTP/1.1" 200 OK -INFO: 172.16.6.38:60824 - "GET /static/assets/index-DW_Nku2j.js HTTP/1.1" 304 Not Modified -INFO: 172.16.6.38:60828 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:60826 - "GET /users HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5775 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.4991 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5451 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4884 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4151 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.2336 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5575 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.4490 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.4899 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.4893 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.3672 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.4624 -INFO:root:Best student 6 dist=0.2336, second_best=0.3672 -INFO:root:Distance ratio (best/second) = 0.6362 -{'data': {'name': 'HUYNH THI HONG GAM', 'time_string': '2025-12-27 11:06:19.548269', 'status': 'check out', 'created_at': '2025-12-27T04:06:19.000000Z', 'user_id': 8, 'updated_at': '2025-12-27T04:06:19.000000Z', 'id': 19596}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:60840 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:35500 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5690 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5338 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5634 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4237 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.2086 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4564 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.4687 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.4911 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5300 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.4665 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4463 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.4500 -INFO:root:Best student 5 dist=0.2086, second_best=0.4237 -INFO:root:Distance ratio (best/second) = 0.4922 -{'data': {'name': 'DANG TRUNG KIEN', 'time_string': '2025-12-27 11:09:51.403092', 'status': 'check out', 'created_at': '2025-12-27T04:09:51.000000Z', 'user_id': 7, 'updated_at': '2025-12-27T04:09:51.000000Z', 'id': 19597}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:60310 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:60312 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:54886 - "GET / HTTP/1.1" 200 OK -INFO: 172.16.6.38:54906 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:54898 - "GET /users HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5607 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5148 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.4926 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4472 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5075 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4293 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.6038 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.4808 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5947 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.4663 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4802 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.2538 -INFO:root:Best student 12 dist=0.2538, second_best=0.4293 -INFO:root:Distance ratio (best/second) = 0.5911 -{'data': {'name': 'NGUYEN HOANG VI', 'time_string': '2025-12-27 11:10:19.999595', 'status': 'check out', 'created_at': '2025-12-27T04:10:20.000000Z', 'user_id': 16, 'updated_at': '2025-12-27T04:10:20.000000Z', 'id': 19598}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:54922 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:40528 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5979 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5806 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.2974 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5404 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5664 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5578 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5891 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5138 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.6092 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5652 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5025 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.4915 -INFO:root:Best student 3 dist=0.2974, second_best=0.4915 -INFO:root:Distance ratio (best/second) = 0.6052 -{'data': {'name': 'VO MINH TRUONG', 'time_string': '2025-12-27 11:18:24.297662', 'status': 'check out', 'created_at': '2025-12-27T04:18:24.000000Z', 'user_id': 4, 'updated_at': '2025-12-27T04:18:24.000000Z', 'id': 19599}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:39848 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:39856 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5422 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.6139 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.6044 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5080 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5151 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.6214 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.2996 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5610 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.6220 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.6042 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.6046 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.6240 -INFO:root:Best student 7 dist=0.2996, second_best=0.5080 -INFO:root:Distance ratio (best/second) = 0.5898 -{'data': {'name': 'NGUYEN TRUNG THAT', 'time_string': '2025-12-27 11:20:20.377280', 'status': 'check out', 'created_at': '2025-12-27T04:20:20.000000Z', 'user_id': 9, 'updated_at': '2025-12-27T04:20:20.000000Z', 'id': 19600}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:47734 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:51274 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:57324 - "POST /checkin HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.6144 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.4624 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5838 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5023 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4708 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4675 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5214 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.4428 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.2859 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5503 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4951 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5110 -INFO:root:Best student 9 dist=0.2859, second_best=0.4428 -INFO:root:Distance ratio (best/second) = 0.6457 -{'data': {'name': 'VO VAN MINH', 'time_string': '2025-12-27 11:27:12.925621', 'status': 'check out', 'created_at': '2025-12-27T04:27:12.000000Z', 'user_id': 11, 'updated_at': '2025-12-27T04:27:12.000000Z', 'id': 19601}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:39062 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:39078 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:37432 - "GET / HTTP/1.1" 200 OK -INFO: 172.16.6.38:37438 - "GET /static/assets/index-CDZdzCu6.css HTTP/1.1" 304 Not Modified -INFO: 172.16.6.38:37448 - "GET /static/assets/index-DW_Nku2j.js HTTP/1.1" 304 Not Modified -INFO: 172.16.6.38:37458 - "GET /logs HTTP/1.1" 500 Internal Server Error -ERROR: Exception in ASGI application -Traceback (most recent call last): - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/connections.py", line 813, in _write_bytes - self._sock.sendall(data) -ConnectionResetError: [Errno 104] Connection reset by peer - -During handling of the above exception, another exception occurred: - -Traceback (most recent call last): - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1967, in _exec_single_context - self.dialect.do_execute( - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/default.py", line 952, in do_execute - cursor.execute(statement, parameters) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/cursors.py", line 153, in execute - result = self._query(query) - ^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/cursors.py", line 322, in _query - conn.query(q) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/connections.py", line 574, in query - self._execute_command(COMMAND.COM_QUERY, sql) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/connections.py", line 865, in _execute_command - self._write_bytes(packet) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/connections.py", line 816, in _write_bytes - raise err.OperationalError( -pymysql.err.OperationalError: (2006, "MySQL server has gone away (ConnectionResetError(104, 'Connection reset by peer'))") - -The above exception was the direct cause of the following exception: - -Traceback (most recent call last): - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/uvicorn/protocols/http/h11_impl.py", line 403, in run_asgi - result = await app( # type: ignore[func-returns-value] - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/uvicorn/middleware/proxy_headers.py", line 60, in __call__ - return await self.app(scope, receive, send) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/fastapi/applications.py", line 1139, in __call__ - await super().__call__(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/applications.py", line 107, in __call__ - await self.middleware_stack(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/middleware/errors.py", line 186, in __call__ - raise exc - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/middleware/errors.py", line 164, in __call__ - await self.app(scope, receive, _send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/middleware/cors.py", line 85, in __call__ - await self.app(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 63, in __call__ - await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app - raise exc - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app - await app(scope, receive, sender) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/fastapi/middleware/asyncexitstack.py", line 18, in __call__ - await self.app(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/routing.py", line 716, in __call__ - await self.middleware_stack(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/routing.py", line 736, in app - await route.handle(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/routing.py", line 290, in handle - await self.app(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/fastapi/routing.py", line 120, in app - await wrap_app_handling_exceptions(app, request)(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app - raise exc - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app - await app(scope, receive, sender) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/fastapi/routing.py", line 106, in app - response = await f(request) - ^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/fastapi/routing.py", line 430, in app - raw_response = await run_endpoint_function( - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/fastapi/routing.py", line 318, in run_endpoint_function - return await run_in_threadpool(dependant.call, **values) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/concurrency.py", line 32, in run_in_threadpool - return await anyio.to_thread.run_sync(func) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/anyio/to_thread.py", line 61, in run_sync - return await get_async_backend().run_sync_in_worker_thread( - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/anyio/_backends/_asyncio.py", line 2525, in run_sync_in_worker_thread - return await future - ^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/anyio/_backends/_asyncio.py", line 986, in run - result = context.run(func, *args) - ^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/main.py", line 372, in get_logs - logs = db.execute( - ^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/orm/session.py", line 2351, in execute - return self._execute_internal( - ^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/orm/session.py", line 2258, in _execute_internal - result = conn.execute( - ^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1419, in execute - return meth( - ^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/sql/elements.py", line 527, in _execute_on_connection - return connection._execute_clauseelement( - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1641, in _execute_clauseelement - ret = self._execute_context( - ^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1846, in _execute_context - return self._exec_single_context( - ^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1986, in _exec_single_context - self._handle_dbapi_exception( - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 2363, in _handle_dbapi_exception - raise sqlalchemy_exception.with_traceback(exc_info[2]) from e - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1967, in _exec_single_context - self.dialect.do_execute( - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/default.py", line 952, in do_execute - cursor.execute(statement, parameters) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/cursors.py", line 153, in execute - result = self._query(query) - ^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/cursors.py", line 322, in _query - conn.query(q) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/connections.py", line 574, in query - self._execute_command(COMMAND.COM_QUERY, sql) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/connections.py", line 865, in _execute_command - self._write_bytes(packet) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/connections.py", line 816, in _write_bytes - raise err.OperationalError( -sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (2006, "MySQL server has gone away (ConnectionResetError(104, 'Connection reset by peer'))") -[SQL: - SELECT s.name, cl.time, cl.camera_id, cl.status - FROM checkin_logs cl - JOIN students s ON cl.student_id = s.id - ORDER BY cl.time DESC - LIMIT 20 - ] -(Background on this error at: https://sqlalche.me/e/20/e3q8) -INFO: 172.16.6.38:37456 - "GET /users HTTP/1.1" 500 Internal Server Error -ERROR: Exception in ASGI application -Traceback (most recent call last): - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/connections.py", line 813, in _write_bytes - self._sock.sendall(data) -ConnectionResetError: [Errno 104] Connection reset by peer - -During handling of the above exception, another exception occurred: - -Traceback (most recent call last): - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1967, in _exec_single_context - self.dialect.do_execute( - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/default.py", line 952, in do_execute - cursor.execute(statement, parameters) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/cursors.py", line 153, in execute - result = self._query(query) - ^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/cursors.py", line 322, in _query - conn.query(q) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/connections.py", line 574, in query - self._execute_command(COMMAND.COM_QUERY, sql) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/connections.py", line 865, in _execute_command - self._write_bytes(packet) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/connections.py", line 816, in _write_bytes - raise err.OperationalError( -pymysql.err.OperationalError: (2006, "MySQL server has gone away (ConnectionResetError(104, 'Connection reset by peer'))") - -The above exception was the direct cause of the following exception: - -Traceback (most recent call last): - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/uvicorn/protocols/http/h11_impl.py", line 403, in run_asgi - result = await app( # type: ignore[func-returns-value] - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/uvicorn/middleware/proxy_headers.py", line 60, in __call__ - return await self.app(scope, receive, send) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/fastapi/applications.py", line 1139, in __call__ - await super().__call__(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/applications.py", line 107, in __call__ - await self.middleware_stack(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/middleware/errors.py", line 186, in __call__ - raise exc - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/middleware/errors.py", line 164, in __call__ - await self.app(scope, receive, _send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/middleware/cors.py", line 85, in __call__ - await self.app(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 63, in __call__ - await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app - raise exc - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app - await app(scope, receive, sender) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/fastapi/middleware/asyncexitstack.py", line 18, in __call__ - await self.app(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/routing.py", line 716, in __call__ - await self.middleware_stack(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/routing.py", line 736, in app - await route.handle(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/routing.py", line 290, in handle - await self.app(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/fastapi/routing.py", line 120, in app - await wrap_app_handling_exceptions(app, request)(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app - raise exc - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app - await app(scope, receive, sender) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/fastapi/routing.py", line 106, in app - response = await f(request) - ^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/fastapi/routing.py", line 430, in app - raw_response = await run_endpoint_function( - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/fastapi/routing.py", line 318, in run_endpoint_function - return await run_in_threadpool(dependant.call, **values) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/concurrency.py", line 32, in run_in_threadpool - return await anyio.to_thread.run_sync(func) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/anyio/to_thread.py", line 61, in run_sync - return await get_async_backend().run_sync_in_worker_thread( - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/anyio/_backends/_asyncio.py", line 2525, in run_sync_in_worker_thread - return await future - ^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/anyio/_backends/_asyncio.py", line 986, in run - result = context.run(func, *args) - ^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/main.py", line 395, in get_users - students = db.execute( - ^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/orm/session.py", line 2351, in execute - return self._execute_internal( - ^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/orm/session.py", line 2258, in _execute_internal - result = conn.execute( - ^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1419, in execute - return meth( - ^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/sql/elements.py", line 527, in _execute_on_connection - return connection._execute_clauseelement( - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1641, in _execute_clauseelement - ret = self._execute_context( - ^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1846, in _execute_context - return self._exec_single_context( - ^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1986, in _exec_single_context - self._handle_dbapi_exception( - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 2363, in _handle_dbapi_exception - raise sqlalchemy_exception.with_traceback(exc_info[2]) from e - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1967, in _exec_single_context - self.dialect.do_execute( - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/default.py", line 952, in do_execute - cursor.execute(statement, parameters) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/cursors.py", line 153, in execute - result = self._query(query) - ^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/cursors.py", line 322, in _query - conn.query(q) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/connections.py", line 574, in query - self._execute_command(COMMAND.COM_QUERY, sql) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/connections.py", line 865, in _execute_command - self._write_bytes(packet) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/connections.py", line 816, in _write_bytes - raise err.OperationalError( -sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (2006, "MySQL server has gone away (ConnectionResetError(104, 'Connection reset by peer'))") -[SQL: - SELECT id, name, email, avatar - FROM students - ORDER BY name DESC - ] -(Background on this error at: https://sqlalche.me/e/20/e3q8) -INFO: 172.16.6.38:58042 - "POST /checkin HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.6248 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5683 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5064 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4853 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5109 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4777 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5873 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5127 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5552 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.2115 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4293 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.4850 -INFO:root:Best student 10 dist=0.2115, second_best=0.4293 -INFO:root:Distance ratio (best/second) = 0.4926 -{'data': {'name': 'TON GIA KHANH', 'time_string': '2025-12-29 06:56:51.497257', 'status': 'check in', 'created_at': '2025-12-28T23:56:51.000000Z', 'user_id': 12, 'updated_at': '2025-12-28T23:56:51.000000Z', 'id': 19602}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:34842 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:34844 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5725 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5341 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.4830 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4750 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4840 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4443 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5900 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.4630 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5286 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.4587 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.2679 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.4592 -INFO:root:Best student 11 dist=0.2679, second_best=0.4443 -INFO:root:Distance ratio (best/second) = 0.6031 -{'data': {'name': 'PHAM NHUT KHANG', 'time_string': '2025-12-29 07:13:55.197675', 'status': 'check in', 'created_at': '2025-12-29T00:13:55.000000Z', 'user_id': 15, 'updated_at': '2025-12-29T00:13:55.000000Z', 'id': 19603}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:44644 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:44656 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:46002 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:46004 - "GET /users HTTP/1.1" 200 OK -INFO: 172.16.6.38:46018 - "GET / HTTP/1.1" 200 OK -INFO: 172.16.6.38:47014 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:47016 - "GET /users HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5365 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5015 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5039 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.2745 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4626 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4602 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5049 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.4694 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5072 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.4655 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4979 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.4650 -INFO:root:Best student 4 dist=0.2745, second_best=0.4602 -INFO:root:Distance ratio (best/second) = 0.5965 -{'data': {'name': 'NGUYEN VO TINH', 'time_string': '2025-12-29 07:15:31.388879', 'status': 'check in', 'created_at': '2025-12-29T00:15:31.000000Z', 'user_id': 6, 'updated_at': '2025-12-29T00:15:31.000000Z', 'id': 19604}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:37422 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:37424 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.6089 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5449 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.6136 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4362 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.2579 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4626 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.4792 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5327 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5410 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.4864 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4631 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.4424 -INFO:root:Best student 5 dist=0.2579, second_best=0.4362 -INFO:root:Distance ratio (best/second) = 0.5913 -{'data': {'name': 'DANG TRUNG KIEN', 'time_string': '2025-12-29 07:15:42.466074', 'status': 'check in', 'created_at': '2025-12-29T00:15:42.000000Z', 'user_id': 7, 'updated_at': '2025-12-29T00:15:42.000000Z', 'id': 19605}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:45586 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:45594 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:33154 - "GET / HTTP/1.1" 200 OK -INFO: 172.16.6.38:46108 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:46124 - "GET /users HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5696 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5308 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5144 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4575 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4997 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4473 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.6173 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5101 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5707 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.4855 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4755 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.2642 -INFO:root:Best student 12 dist=0.2642, second_best=0.4473 -INFO:root:Distance ratio (best/second) = 0.5906 -{'data': {'name': 'NGUYEN HOANG VI', 'time_string': '2025-12-29 07:17:44.582404', 'status': 'check in', 'created_at': '2025-12-29T00:17:44.000000Z', 'user_id': 16, 'updated_at': '2025-12-29T00:17:44.000000Z', 'id': 19606}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:46136 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:46150 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5901 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5887 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.6198 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.6216 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5390 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.6039 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.2725 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5687 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5766 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.6782 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.6257 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.6181 -INFO:root:Best student 7 dist=0.2725, second_best=0.5390 -INFO:root:Distance ratio (best/second) = 0.5055 -{'data': {'name': 'NGUYEN TRUNG THAT', 'time_string': '2025-12-29 07:22:34.494127', 'status': 'check in', 'created_at': '2025-12-29T00:22:34.000000Z', 'user_id': 9, 'updated_at': '2025-12-29T00:22:34.000000Z', 'id': 19607}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:33386 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:33388 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.2525 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.6014 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5828 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5431 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5252 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5613 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5398 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5413 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5931 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.6234 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5278 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5846 -INFO:root:Best student 1 dist=0.2525, second_best=0.5252 -INFO:root:Distance ratio (best/second) = 0.4808 -{'data': {'name': 'PHAN QUOC BAO', 'time_string': '2025-12-29 07:25:16.077543', 'status': 'check in', 'created_at': '2025-12-29T00:25:16.000000Z', 'user_id': 2, 'updated_at': '2025-12-29T00:25:16.000000Z', 'id': 19608}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:50096 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:50104 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:41600 - "GET / HTTP/1.1" 200 OK -INFO: 172.16.6.38:41614 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:41604 - "GET /users HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5986 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5405 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5741 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5027 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4131 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.2304 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5716 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.4717 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5082 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5242 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4000 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5008 -INFO:root:Best student 6 dist=0.2304, second_best=0.4000 -INFO:root:Distance ratio (best/second) = 0.5761 -{'data': {'name': 'HUYNH THI HONG GAM', 'time_string': '2025-12-29 07:27:35.729328', 'status': 'check in', 'created_at': '2025-12-29T00:27:35.000000Z', 'user_id': 8, 'updated_at': '2025-12-29T00:27:35.000000Z', 'id': 19609}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:41626 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:41630 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.6156 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.2882 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5207 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4649 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4798 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5065 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5563 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.4606 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.4565 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5661 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5134 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.4979 -INFO:root:Best student 2 dist=0.2882, second_best=0.4565 -INFO:root:Distance ratio (best/second) = 0.6315 -{'data': {'name': 'PHAM VAN HUYNH', 'time_string': '2025-12-29 07:28:59.758971', 'status': 'check in', 'created_at': '2025-12-29T00:28:59.000000Z', 'user_id': 3, 'updated_at': '2025-12-29T00:28:59.000000Z', 'id': 19610}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:55922 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:53018 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5508 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.4408 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.4605 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5053 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4705 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4033 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.4556 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.2372 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.4664 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5282 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4557 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.4868 -INFO:root:Best student 8 dist=0.2372, second_best=0.4033 -INFO:root:Distance ratio (best/second) = 0.5882 -{'data': {'name': 'LE TAN LUAN', 'time_string': '2025-12-29 07:29:55.182241', 'status': 'check in', 'created_at': '2025-12-29T00:29:55.000000Z', 'user_id': 10, 'updated_at': '2025-12-29T00:29:55.000000Z', 'id': 19611}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:38634 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:38648 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.6643 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5215 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.6184 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5745 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5430 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5163 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5796 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5334 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.3119 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5924 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5328 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5588 -INFO:root:Best student 9 dist=0.3119, second_best=0.5163 -INFO:root:Distance ratio (best/second) = 0.6041 -{'data': {'name': 'VO VAN MINH', 'time_string': '2025-12-29 07:36:22.506339', 'status': 'check in', 'created_at': '2025-12-29T00:36:22.000000Z', 'user_id': 11, 'updated_at': '2025-12-29T00:36:22.000000Z', 'id': 19612}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:58944 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:58948 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:36008 - "POST /checkin HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5760 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5378 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.2740 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5098 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5779 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5628 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.6251 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5033 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.6026 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5322 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4574 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.4887 -INFO:root:Best student 3 dist=0.2740, second_best=0.4574 -INFO:root:Distance ratio (best/second) = 0.5991 -{'data': {'name': 'VO MINH TRUONG', 'time_string': '2025-12-29 07:37:53.323019', 'status': 'check in', 'created_at': '2025-12-29T00:37:53.000000Z', 'user_id': 4, 'updated_at': '2025-12-29T00:37:53.000000Z', 'id': 19613}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:58748 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:58758 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:49252 - "POST /checkin HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.6151 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5220 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5173 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5788 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5810 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4760 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5700 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5017 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.2749 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.6357 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5312 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5815 -INFO:root:Best student 9 dist=0.2749, second_best=0.4760 -INFO:root:Distance ratio (best/second) = 0.5775 -{'data': {'name': 'VO VAN MINH', 'time_string': '2025-12-29 11:31:18.451432', 'status': 'check out', 'created_at': '2025-12-29T04:31:18.000000Z', 'user_id': 11, 'updated_at': '2025-12-29T04:31:18.000000Z', 'id': 19614}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:53868 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:46052 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:44986 - "GET / HTTP/1.1" 200 OK -INFO: 172.16.6.38:44990 - "GET /static/assets/index-CDZdzCu6.css HTTP/1.1" 304 Not Modified -INFO: 172.16.6.38:44998 - "GET /static/assets/index-DW_Nku2j.js HTTP/1.1" 304 Not Modified -INFO: 172.16.6.38:41552 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:41550 - "GET /users HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5907 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.4309 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.4687 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5179 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5032 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4485 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5154 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.2654 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.4717 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5639 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4865 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5189 -INFO:root:Best student 8 dist=0.2654, second_best=0.4309 -INFO:root:Distance ratio (best/second) = 0.6159 -{'data': {'name': 'LE TAN LUAN', 'time_string': '2025-12-29 11:33:05.634160', 'status': 'check out', 'created_at': '2025-12-29T04:33:05.000000Z', 'user_id': 10, 'updated_at': '2025-12-29T04:33:05.000000Z', 'id': 19615}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:41574 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:41576 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5728 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.6458 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.6083 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5953 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5196 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.6285 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.2330 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5654 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.6323 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.6462 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.6082 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.6275 -INFO:root:Best student 7 dist=0.2330, second_best=0.5196 -INFO:root:Distance ratio (best/second) = 0.4485 -{'data': {'name': 'NGUYEN TRUNG THAT', 'time_string': '2025-12-29 11:33:24.224876', 'status': 'check out', 'created_at': '2025-12-29T04:33:24.000000Z', 'user_id': 9, 'updated_at': '2025-12-29T04:33:24.000000Z', 'id': 19616}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:49390 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:49404 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:59464 - "GET / HTTP/1.1" 200 OK -INFO: 172.16.6.38:59482 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:59480 - "GET /users HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5666 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.4368 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5015 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5277 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4969 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4231 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5063 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.2619 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.4796 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5582 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4614 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5259 -INFO:root:Best student 8 dist=0.2619, second_best=0.4231 -INFO:root:Distance ratio (best/second) = 0.6189 -{'data': {'name': 'LE TAN LUAN', 'time_string': '2025-12-29 13:01:46.370468', 'status': 'check in', 'created_at': '2025-12-29T06:01:46.000000Z', 'user_id': 10, 'updated_at': '2025-12-29T06:01:46.000000Z', 'id': 19617}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:59488 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:59496 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.6612 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5618 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.6053 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.6170 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5412 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4950 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5948 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5083 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.2924 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5788 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5132 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5624 -INFO:root:Best student 9 dist=0.2924, second_best=0.4950 -INFO:root:Distance ratio (best/second) = 0.5906 -{'data': {'name': 'VO VAN MINH', 'time_string': '2025-12-29 13:02:10.750342', 'status': 'check in', 'created_at': '2025-12-29T06:02:10.000000Z', 'user_id': 11, 'updated_at': '2025-12-29T06:02:10.000000Z', 'id': 19618}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:41494 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:58468 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5452 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5568 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5259 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4986 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4248 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5623 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.2835 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.4764 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5628 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5566 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5384 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5548 -INFO:root:Best student 7 dist=0.2835, second_best=0.4248 -INFO:root:Distance ratio (best/second) = 0.6673 -{'data': {'name': 'NGUYEN TRUNG THAT', 'time_string': '2025-12-29 13:02:32.762281', 'status': 'check in', 'created_at': '2025-12-29T06:02:32.000000Z', 'user_id': 9, 'updated_at': '2025-12-29T06:02:32.000000Z', 'id': 19619}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:60990 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:60996 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.6358 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.6255 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.6067 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5138 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5966 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5661 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.6027 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5491 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.6177 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.2461 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4714 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5363 -INFO:root:Best student 10 dist=0.2461, second_best=0.4714 -INFO:root:Distance ratio (best/second) = 0.5221 -{'data': {'name': 'TON GIA KHANH', 'time_string': '2025-12-29 16:32:32.423183', 'status': 'check out', 'created_at': '2025-12-29T09:32:32.000000Z', 'user_id': 12, 'updated_at': '2025-12-29T09:32:32.000000Z', 'id': 19620}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:32904 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:32918 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.2710 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.6691 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5914 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.6292 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.6485 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.6562 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5551 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5778 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.7204 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.6695 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.6002 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.6724 -INFO:root:Best student 1 dist=0.2710, second_best=0.5551 -INFO:root:Distance ratio (best/second) = 0.4881 -{'data': {'name': 'PHAN QUOC BAO', 'time_string': '2025-12-29 16:33:53.089800', 'status': 'check out', 'created_at': '2025-12-29T09:33:53.000000Z', 'user_id': 2, 'updated_at': '2025-12-29T09:33:53.000000Z', 'id': 19621}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:56616 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:56622 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5187 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.4588 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5283 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.2387 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5082 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5072 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5389 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5090 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5657 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.4857 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5024 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.4971 -INFO:root:Best student 4 dist=0.2387, second_best=0.4588 -INFO:root:Distance ratio (best/second) = 0.5203 -{'data': {'name': 'NGUYEN VO TINH', 'time_string': '2025-12-29 16:43:50.759852', 'status': 'check out', 'created_at': '2025-12-29T09:43:50.000000Z', 'user_id': 6, 'updated_at': '2025-12-29T09:43:50.000000Z', 'id': 19623}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:55402 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:40168 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5129 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5452 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.4998 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4631 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4104 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4359 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5988 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5150 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.4982 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.4540 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.2513 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.4566 -INFO:root:Best student 11 dist=0.2513, second_best=0.4104 -INFO:root:Distance ratio (best/second) = 0.6124 -{'data': {'name': 'PHAM NHUT KHANG', 'time_string': '2025-12-29 16:47:29.468750', 'status': 'check out', 'created_at': '2025-12-29T09:47:29.000000Z', 'user_id': 15, 'updated_at': '2025-12-29T09:47:29.000000Z', 'id': 19624}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:44760 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:35734 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5695 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5522 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5813 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4409 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.2207 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4586 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.4794 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5160 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5617 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.4480 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4401 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.4704 -INFO:root:Best student 5 dist=0.2207, second_best=0.4401 -INFO:root:Distance ratio (best/second) = 0.5015 -{'data': {'name': 'DANG TRUNG KIEN', 'time_string': '2025-12-29 16:51:10.034806', 'status': 'check out', 'created_at': '2025-12-29T09:51:10.000000Z', 'user_id': 7, 'updated_at': '2025-12-29T09:51:10.000000Z', 'id': 19625}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:56692 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:39060 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5608 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5169 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.4785 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4327 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5214 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4441 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.6004 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.4633 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5898 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.4537 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4701 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.2367 -INFO:root:Best student 12 dist=0.2367, second_best=0.4327 -INFO:root:Distance ratio (best/second) = 0.5471 -{'data': {'name': 'NGUYEN HOANG VI', 'time_string': '2025-12-29 16:56:42.810412', 'status': 'check out', 'created_at': '2025-12-29T09:56:42.000000Z', 'user_id': 16, 'updated_at': '2025-12-29T09:56:42.000000Z', 'id': 19626}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:36492 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:36506 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5958 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.4978 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5173 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4983 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4480 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.2095 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5715 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.4329 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.4804 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.4976 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.3864 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.4555 -INFO:root:Best student 6 dist=0.2095, second_best=0.3864 -INFO:root:Distance ratio (best/second) = 0.5422 -{'data': {'name': 'HUYNH THI HONG GAM', 'time_string': '2025-12-29 16:58:35.704270', 'status': 'check out', 'created_at': '2025-12-29T09:58:35.000000Z', 'user_id': 8, 'updated_at': '2025-12-29T09:58:35.000000Z', 'id': 19627}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:51552 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:51568 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5608 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.4481 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.4649 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5004 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4736 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.3751 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.4905 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.2541 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.4276 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5069 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4571 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.4975 -INFO:root:Best student 8 dist=0.2541, second_best=0.3751 -INFO:root:Distance ratio (best/second) = 0.6775 -{'data': {'name': 'LE TAN LUAN', 'time_string': '2025-12-29 16:59:08.753047', 'status': 'check out', 'created_at': '2025-12-29T09:59:08.000000Z', 'user_id': 10, 'updated_at': '2025-12-29T09:59:08.000000Z', 'id': 19628}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:47932 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:52778 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5620 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5931 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.6257 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5773 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5769 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.6245 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.3536 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5045 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5918 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.6651 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5961 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.6254 -INFO:root:Best student 7 dist=0.3536, second_best=0.5045 -INFO:root:Distance ratio (best/second) = 0.7009 -{'data': {'name': 'NGUYEN TRUNG THAT', 'time_string': '2025-12-29 17:00:23.355821', 'status': 'check out', 'created_at': '2025-12-29T10:00:23.000000Z', 'user_id': 9, 'updated_at': '2025-12-29T10:00:23.000000Z', 'id': 19629}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:52172 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:52178 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:52188 - "POST /checkin HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.6821 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.4929 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5774 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5167 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5170 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4735 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5678 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.4849 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.2044 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5416 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5212 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5270 -INFO:root:Best student 9 dist=0.2044, second_best=0.4735 -INFO:root:Distance ratio (best/second) = 0.4316 -{'data': {'name': 'VO VAN MINH', 'time_string': '2025-12-29 17:00:34.248002', 'status': 'check out', 'created_at': '2025-12-29T10:00:34.000000Z', 'user_id': 11, 'updated_at': '2025-12-29T10:00:34.000000Z', 'id': 19630}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:39614 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:39624 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:55082 - "GET / HTTP/1.1" 200 OK -INFO: 172.16.6.38:55090 - "GET /static/assets/index-CDZdzCu6.css HTTP/1.1" 304 Not Modified -INFO: 172.16.6.38:55106 - "GET /static/assets/index-DW_Nku2j.js HTTP/1.1" 304 Not Modified -INFO: 172.16.6.38:55116 - "GET /users HTTP/1.1" 500 Internal Server Error -ERROR: Exception in ASGI application -Traceback (most recent call last): - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/connections.py", line 813, in _write_bytes - self._sock.sendall(data) -ConnectionResetError: [Errno 104] Connection reset by peer - -During handling of the above exception, another exception occurred: - -Traceback (most recent call last): - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1967, in _exec_single_context - self.dialect.do_execute( - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/default.py", line 952, in do_execute - cursor.execute(statement, parameters) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/cursors.py", line 153, in execute - result = self._query(query) - ^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/cursors.py", line 322, in _query - conn.query(q) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/connections.py", line 574, in query - self._execute_command(COMMAND.COM_QUERY, sql) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/connections.py", line 865, in _execute_command - self._write_bytes(packet) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/connections.py", line 816, in _write_bytes - raise err.OperationalError( -pymysql.err.OperationalError: (2006, "MySQL server has gone away (ConnectionResetError(104, 'Connection reset by peer'))") - -The above exception was the direct cause of the following exception: - -Traceback (most recent call last): - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/uvicorn/protocols/http/h11_impl.py", line 403, in run_asgi - result = await app( # type: ignore[func-returns-value] - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/uvicorn/middleware/proxy_headers.py", line 60, in __call__ - return await self.app(scope, receive, send) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/fastapi/applications.py", line 1139, in __call__ - await super().__call__(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/applications.py", line 107, in __call__ - await self.middleware_stack(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/middleware/errors.py", line 186, in __call__ - raise exc - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/middleware/errors.py", line 164, in __call__ - await self.app(scope, receive, _send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/middleware/cors.py", line 85, in __call__ - await self.app(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 63, in __call__ - await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app - raise exc - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app - await app(scope, receive, sender) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/fastapi/middleware/asyncexitstack.py", line 18, in __call__ - await self.app(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/routing.py", line 716, in __call__ - await self.middleware_stack(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/routing.py", line 736, in app - await route.handle(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/routing.py", line 290, in handle - await self.app(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/fastapi/routing.py", line 120, in app - await wrap_app_handling_exceptions(app, request)(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app - raise exc - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app - await app(scope, receive, sender) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/fastapi/routing.py", line 106, in app - response = await f(request) - ^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/fastapi/routing.py", line 430, in app - raw_response = await run_endpoint_function( - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/fastapi/routing.py", line 318, in run_endpoint_function - return await run_in_threadpool(dependant.call, **values) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/concurrency.py", line 32, in run_in_threadpool - return await anyio.to_thread.run_sync(func) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/anyio/to_thread.py", line 61, in run_sync - return await get_async_backend().run_sync_in_worker_thread( - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/anyio/_backends/_asyncio.py", line 2525, in run_sync_in_worker_thread - return await future - ^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/anyio/_backends/_asyncio.py", line 986, in run - result = context.run(func, *args) - ^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/main.py", line 395, in get_users - students = db.execute( - ^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/orm/session.py", line 2351, in execute - return self._execute_internal( - ^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/orm/session.py", line 2258, in _execute_internal - result = conn.execute( - ^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1419, in execute - return meth( - ^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/sql/elements.py", line 527, in _execute_on_connection - return connection._execute_clauseelement( - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1641, in _execute_clauseelement - ret = self._execute_context( - ^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1846, in _execute_context - return self._exec_single_context( - ^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1986, in _exec_single_context - self._handle_dbapi_exception( - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 2363, in _handle_dbapi_exception - raise sqlalchemy_exception.with_traceback(exc_info[2]) from e - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1967, in _exec_single_context - self.dialect.do_execute( - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/default.py", line 952, in do_execute - cursor.execute(statement, parameters) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/cursors.py", line 153, in execute - result = self._query(query) - ^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/cursors.py", line 322, in _query - conn.query(q) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/connections.py", line 574, in query - self._execute_command(COMMAND.COM_QUERY, sql) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/connections.py", line 865, in _execute_command - self._write_bytes(packet) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/connections.py", line 816, in _write_bytes - raise err.OperationalError( -sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (2006, "MySQL server has gone away (ConnectionResetError(104, 'Connection reset by peer'))") -[SQL: - SELECT id, name, email, avatar - FROM students - ORDER BY name DESC - ] -(Background on this error at: https://sqlalche.me/e/20/e3q8) -INFO: 172.16.6.38:55118 - "GET /logs HTTP/1.1" 500 Internal Server Error -ERROR: Exception in ASGI application -Traceback (most recent call last): - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/connections.py", line 813, in _write_bytes - self._sock.sendall(data) -ConnectionResetError: [Errno 104] Connection reset by peer - -During handling of the above exception, another exception occurred: - -Traceback (most recent call last): - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1967, in _exec_single_context - self.dialect.do_execute( - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/default.py", line 952, in do_execute - cursor.execute(statement, parameters) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/cursors.py", line 153, in execute - result = self._query(query) - ^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/cursors.py", line 322, in _query - conn.query(q) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/connections.py", line 574, in query - self._execute_command(COMMAND.COM_QUERY, sql) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/connections.py", line 865, in _execute_command - self._write_bytes(packet) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/connections.py", line 816, in _write_bytes - raise err.OperationalError( -pymysql.err.OperationalError: (2006, "MySQL server has gone away (ConnectionResetError(104, 'Connection reset by peer'))") - -The above exception was the direct cause of the following exception: - -Traceback (most recent call last): - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/uvicorn/protocols/http/h11_impl.py", line 403, in run_asgi - result = await app( # type: ignore[func-returns-value] - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/uvicorn/middleware/proxy_headers.py", line 60, in __call__ - return await self.app(scope, receive, send) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/fastapi/applications.py", line 1139, in __call__ - await super().__call__(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/applications.py", line 107, in __call__ - await self.middleware_stack(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/middleware/errors.py", line 186, in __call__ - raise exc - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/middleware/errors.py", line 164, in __call__ - await self.app(scope, receive, _send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/middleware/cors.py", line 85, in __call__ - await self.app(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 63, in __call__ - await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app - raise exc - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app - await app(scope, receive, sender) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/fastapi/middleware/asyncexitstack.py", line 18, in __call__ - await self.app(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/routing.py", line 716, in __call__ - await self.middleware_stack(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/routing.py", line 736, in app - await route.handle(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/routing.py", line 290, in handle - await self.app(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/fastapi/routing.py", line 120, in app - await wrap_app_handling_exceptions(app, request)(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app - raise exc - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app - await app(scope, receive, sender) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/fastapi/routing.py", line 106, in app - response = await f(request) - ^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/fastapi/routing.py", line 430, in app - raw_response = await run_endpoint_function( - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/fastapi/routing.py", line 318, in run_endpoint_function - return await run_in_threadpool(dependant.call, **values) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/concurrency.py", line 32, in run_in_threadpool - return await anyio.to_thread.run_sync(func) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/anyio/to_thread.py", line 61, in run_sync - return await get_async_backend().run_sync_in_worker_thread( - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/anyio/_backends/_asyncio.py", line 2525, in run_sync_in_worker_thread - return await future - ^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/anyio/_backends/_asyncio.py", line 986, in run - result = context.run(func, *args) - ^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/main.py", line 372, in get_logs - logs = db.execute( - ^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/orm/session.py", line 2351, in execute - return self._execute_internal( - ^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/orm/session.py", line 2258, in _execute_internal - result = conn.execute( - ^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1419, in execute - return meth( - ^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/sql/elements.py", line 527, in _execute_on_connection - return connection._execute_clauseelement( - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1641, in _execute_clauseelement - ret = self._execute_context( - ^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1846, in _execute_context - return self._exec_single_context( - ^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1986, in _exec_single_context - self._handle_dbapi_exception( - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 2363, in _handle_dbapi_exception - raise sqlalchemy_exception.with_traceback(exc_info[2]) from e - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1967, in _exec_single_context - self.dialect.do_execute( - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/default.py", line 952, in do_execute - cursor.execute(statement, parameters) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/cursors.py", line 153, in execute - result = self._query(query) - ^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/cursors.py", line 322, in _query - conn.query(q) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/connections.py", line 574, in query - self._execute_command(COMMAND.COM_QUERY, sql) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/connections.py", line 865, in _execute_command - self._write_bytes(packet) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/connections.py", line 816, in _write_bytes - raise err.OperationalError( -sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (2006, "MySQL server has gone away (ConnectionResetError(104, 'Connection reset by peer'))") -[SQL: - SELECT s.name, cl.time, cl.camera_id, cl.status - FROM checkin_logs cl - JOIN students s ON cl.student_id = s.id - ORDER BY cl.time DESC - LIMIT 20 - ] -(Background on this error at: https://sqlalche.me/e/20/e3q8) -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.6636 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.6304 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5721 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5172 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5563 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5311 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.6357 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5399 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.6054 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.2288 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4598 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5187 -INFO:root:Best student 10 dist=0.2288, second_best=0.4598 -INFO:root:Distance ratio (best/second) = 0.4977 -{'data': {'name': 'TON GIA KHANH', 'time_string': '2025-12-30 07:00:07.827074', 'status': 'check in', 'created_at': '2025-12-30T00:00:07.000000Z', 'user_id': 12, 'updated_at': '2025-12-30T00:00:07.000000Z', 'id': 19631}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:55130 - "POST /checkin HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.6747 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.6577 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5828 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5413 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5628 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5297 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.6515 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5583 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.6304 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.2423 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4644 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5425 -INFO:root:Best student 10 dist=0.2423, second_best=0.4644 -INFO:root:Distance ratio (best/second) = 0.5218 -INFO: 172.16.6.38:55136 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:49934 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5355 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.4883 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5193 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.2633 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4238 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4567 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.4899 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.4659 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.4761 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.4479 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4610 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.4579 -INFO:root:Best student 4 dist=0.2633, second_best=0.4238 -INFO:root:Distance ratio (best/second) = 0.6213 -{'data': {'name': 'NGUYEN VO TINH', 'time_string': '2025-12-30 07:07:22.158144', 'status': 'check in', 'created_at': '2025-12-30T00:07:22.000000Z', 'user_id': 6, 'updated_at': '2025-12-30T00:07:22.000000Z', 'id': 19632}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:40032 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:40042 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5389 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5077 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5180 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4428 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.3994 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4038 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5318 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.4658 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.4666 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.4595 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.3027 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.4546 -INFO:root:Best student 11 dist=0.3027, second_best=0.3994 -INFO:root:Distance ratio (best/second) = 0.7580 -{'data': {'name': 'PHAM NHUT KHANG', 'time_string': '2025-12-30 07:13:09.975538', 'status': 'check in', 'created_at': '2025-12-30T00:13:10.000000Z', 'user_id': 15, 'updated_at': '2025-12-30T00:13:10.000000Z', 'id': 19633}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:45346 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:45752 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.2498 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5850 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5660 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5519 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5740 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5933 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5636 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5495 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.6237 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.6492 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5315 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5757 -INFO:root:Best student 1 dist=0.2498, second_best=0.5315 -INFO:root:Distance ratio (best/second) = 0.4699 -{'data': {'name': 'PHAN QUOC BAO', 'time_string': '2025-12-30 07:22:40.183689', 'status': 'check in', 'created_at': '2025-12-30T00:22:40.000000Z', 'user_id': 2, 'updated_at': '2025-12-30T00:22:40.000000Z', 'id': 19634}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:35398 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:57968 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:38246 - "GET / HTTP/1.1" 200 OK -INFO: 172.16.6.38:38260 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:38262 - "GET /users HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.6862 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5687 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.6322 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5488 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5295 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.3327 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.6181 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5301 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5956 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5488 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4764 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5817 -INFO:root:Best student 6 dist=0.3327, second_best=0.4764 -INFO:root:Distance ratio (best/second) = 0.6984 -{'data': {'name': 'HUYNH THI HONG GAM', 'time_string': '2025-12-30 07:24:07.530703', 'status': 'check in', 'created_at': '2025-12-30T00:24:07.000000Z', 'user_id': 8, 'updated_at': '2025-12-30T00:24:07.000000Z', 'id': 19635}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:58270 - "POST /checkin HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5512 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.6256 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.6168 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5673 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5185 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.6203 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.3046 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5520 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.6209 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.6101 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5834 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.6013 -INFO:root:Best student 7 dist=0.3046, second_best=0.5185 -INFO:root:Distance ratio (best/second) = 0.5875 -{'data': {'name': 'NGUYEN TRUNG THAT', 'time_string': '2025-12-30 07:24:11.451103', 'status': 'check in', 'created_at': '2025-12-30T00:24:11.000000Z', 'user_id': 9, 'updated_at': '2025-12-30T00:24:11.000000Z', 'id': 19636}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:44504 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:44518 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:44534 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5150 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.4502 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.4888 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4606 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4194 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4043 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5147 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.3382 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.4146 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5086 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4353 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.4893 -INFO:root:Best student 8 dist=0.3382, second_best=0.4043 -INFO:root:Distance ratio (best/second) = 0.8366 -{'data': {'name': 'LE TAN LUAN', 'time_string': '2025-12-30 07:27:00.090216', 'status': 'check in', 'created_at': '2025-12-30T00:27:00.000000Z', 'user_id': 10, 'updated_at': '2025-12-30T00:27:00.000000Z', 'id': 19637}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:36154 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:36900 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5918 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5938 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.6303 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4574 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.1942 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4777 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5027 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5544 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5558 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.4763 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4388 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.4517 -INFO:root:Best student 5 dist=0.1942, second_best=0.4388 -INFO:root:Distance ratio (best/second) = 0.4426 -{'data': {'name': 'DANG TRUNG KIEN', 'time_string': '2025-12-30 07:27:27.112582', 'status': 'check in', 'created_at': '2025-12-30T00:27:27.000000Z', 'user_id': 7, 'updated_at': '2025-12-30T00:27:27.000000Z', 'id': 19638}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:42574 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:52630 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5689 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.2687 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5151 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4635 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4873 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5181 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5476 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.4773 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.4929 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5475 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5034 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5107 -INFO:root:Best student 2 dist=0.2687, second_best=0.4635 -INFO:root:Distance ratio (best/second) = 0.5798 -{'data': {'name': 'PHAM VAN HUYNH', 'time_string': '2025-12-30 07:29:26.138059', 'status': 'check in', 'created_at': '2025-12-30T00:29:26.000000Z', 'user_id': 3, 'updated_at': '2025-12-30T00:29:26.000000Z', 'id': 19640}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:55724 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:55730 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5572 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5130 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.4784 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4614 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4938 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4618 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5843 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5239 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5852 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.4810 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4906 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.3004 -INFO:root:Best student 12 dist=0.3004, second_best=0.4614 -INFO:root:Distance ratio (best/second) = 0.6512 -{'data': {'name': 'NGUYEN HOANG VI', 'time_string': '2025-12-30 07:30:51.579191', 'status': 'check in', 'created_at': '2025-12-30T00:30:51.000000Z', 'user_id': 16, 'updated_at': '2025-12-30T00:30:51.000000Z', 'id': 19641}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:54756 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:54772 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5843 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5274 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.2954 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5241 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5951 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5315 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5878 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.4962 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.6077 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5817 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5192 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5151 -INFO:root:Best student 3 dist=0.2954, second_best=0.4962 -INFO:root:Distance ratio (best/second) = 0.5953 -{'data': {'name': 'VO MINH TRUONG', 'time_string': '2025-12-30 07:34:15.424447', 'status': 'check in', 'created_at': '2025-12-30T00:34:15.000000Z', 'user_id': 4, 'updated_at': '2025-12-30T00:34:15.000000Z', 'id': 19642}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:41068 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:41078 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.6329 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5275 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.6263 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5918 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5349 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4988 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5895 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5286 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.2859 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.6189 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5280 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5666 -INFO:root:Best student 9 dist=0.2859, second_best=0.4988 -INFO:root:Distance ratio (best/second) = 0.5732 -{'data': {'name': 'VO VAN MINH', 'time_string': '2025-12-30 07:34:23.967151', 'status': 'check in', 'created_at': '2025-12-30T00:34:24.000000Z', 'user_id': 11, 'updated_at': '2025-12-30T00:34:24.000000Z', 'id': 19643}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:42666 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:42668 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.6313 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5580 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5653 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5497 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5229 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4813 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5847 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5002 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.2586 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5968 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4980 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5528 -INFO:root:Best student 9 dist=0.2586, second_best=0.4813 -INFO:root:Distance ratio (best/second) = 0.5372 -{'data': {'name': 'VO VAN MINH', 'time_string': '2025-12-30 11:31:43.468665', 'status': 'check out', 'created_at': '2025-12-30T04:31:43.000000Z', 'user_id': 11, 'updated_at': '2025-12-30T04:31:43.000000Z', 'id': 19645}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:60844 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:60854 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5631 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.4458 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.4472 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4914 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4717 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4012 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5012 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.2809 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.4835 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5328 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4577 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5158 -INFO:root:Best student 8 dist=0.2809, second_best=0.4012 -INFO:root:Distance ratio (best/second) = 0.7002 -{'data': {'name': 'LE TAN LUAN', 'time_string': '2025-12-30 11:32:31.494096', 'status': 'check out', 'created_at': '2025-12-30T04:32:31.000000Z', 'user_id': 10, 'updated_at': '2025-12-30T04:32:31.000000Z', 'id': 19646}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:49338 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:49348 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5680 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5871 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5775 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5071 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4668 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5810 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.2654 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5312 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5865 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5719 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5526 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.6040 -INFO:root:Best student 7 dist=0.2654, second_best=0.4668 -INFO:root:Distance ratio (best/second) = 0.5685 -{'data': {'name': 'NGUYEN TRUNG THAT', 'time_string': '2025-12-30 11:33:07.257076', 'status': 'check out', 'created_at': '2025-12-30T04:33:07.000000Z', 'user_id': 9, 'updated_at': '2025-12-30T04:33:07.000000Z', 'id': 19647}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:40894 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:40812 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.6040 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5172 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.6008 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.6008 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5883 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5351 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.6237 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5280 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.4316 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5695 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4906 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5560 -INFO:root:Best student 9 dist=0.4316, second_best=0.4906 -INFO:root:Distance ratio (best/second) = 0.8796 -INFO:root:No confident match: best_distance(0.4316) > threshold(0.42); ratio not confident (0.4316/0.4906) -INFO: 172.16.6.38:49544 - "POST /checkin HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.6688 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5231 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.6039 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5513 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5768 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4854 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.6040 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5210 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.2693 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.6039 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5404 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5736 -INFO:root:Best student 9 dist=0.2693, second_best=0.4854 -INFO:root:Distance ratio (best/second) = 0.5549 -{'data': {'name': 'VO VAN MINH', 'time_string': '2025-12-30 12:59:13.312204', 'status': 'check in', 'created_at': '2025-12-30T05:59:13.000000Z', 'user_id': 11, 'updated_at': '2025-12-30T05:59:13.000000Z', 'id': 19648}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:46278 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:46284 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5295 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5655 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.6128 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5247 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4741 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5748 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.3195 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5468 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5626 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5752 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5519 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.6241 -INFO:root:Best student 7 dist=0.3195, second_best=0.4741 -INFO:root:Distance ratio (best/second) = 0.6738 -{'data': {'name': 'NGUYEN TRUNG THAT', 'time_string': '2025-12-30 13:00:48.985946', 'status': 'check in', 'created_at': '2025-12-30T06:00:49.000000Z', 'user_id': 9, 'updated_at': '2025-12-30T06:00:49.000000Z', 'id': 19649}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:50818 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:58190 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:44626 - "GET / HTTP/1.1" 200 OK -INFO: 172.16.6.38:44630 - "GET /static/assets/index-CDZdzCu6.css HTTP/1.1" 304 Not Modified -INFO: 172.16.6.38:44636 - "GET /static/assets/index-DW_Nku2j.js HTTP/1.1" 304 Not Modified -INFO: 172.16.6.38:44646 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:44638 - "GET /users HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5860 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.4249 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.4529 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5052 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4953 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.3880 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.4795 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.2431 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.4405 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5518 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4872 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5079 -INFO:root:Best student 8 dist=0.2431, second_best=0.3880 -INFO:root:Distance ratio (best/second) = 0.6265 -{'data': {'name': 'LE TAN LUAN', 'time_string': '2025-12-30 13:02:05.456274', 'status': 'check in', 'created_at': '2025-12-30T06:02:05.000000Z', 'user_id': 10, 'updated_at': '2025-12-30T06:02:05.000000Z', 'id': 19650}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:44660 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:44672 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5801 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.6264 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5939 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5677 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5183 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5997 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.3311 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5623 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.6110 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5987 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5624 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.6206 -INFO:root:Best student 7 dist=0.3311, second_best=0.5183 -INFO:root:Distance ratio (best/second) = 0.6387 -{'data': {'name': 'NGUYEN TRUNG THAT', 'time_string': '2025-12-30 16:27:03.835763', 'status': 'check out', 'created_at': '2025-12-30T09:27:03.000000Z', 'user_id': 9, 'updated_at': '2025-12-30T09:27:03.000000Z', 'id': 19652}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:51960 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:51968 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.2819 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.6671 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5678 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.6264 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.6510 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.6519 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5832 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.6076 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.7351 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.6568 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5919 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.6734 -INFO:root:Best student 1 dist=0.2819, second_best=0.5678 -INFO:root:Distance ratio (best/second) = 0.4965 -{'data': {'name': 'PHAN QUOC BAO', 'time_string': '2025-12-30 16:32:01.582401', 'status': 'check out', 'created_at': '2025-12-30T09:32:01.000000Z', 'user_id': 2, 'updated_at': '2025-12-30T09:32:01.000000Z', 'id': 19653}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:41932 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:41944 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5430 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.4694 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.4999 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.3210 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4677 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4805 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5240 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.4913 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5591 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5114 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4456 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.4757 -INFO:root:Best student 4 dist=0.3210, second_best=0.4456 -INFO:root:Distance ratio (best/second) = 0.7204 -{'data': {'name': 'NGUYEN VO TINH', 'time_string': '2025-12-30 16:39:43.517016', 'status': 'check out', 'created_at': '2025-12-30T09:39:43.000000Z', 'user_id': 6, 'updated_at': '2025-12-30T09:39:43.000000Z', 'id': 19654}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:51534 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:51550 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5931 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5799 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5998 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4418 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.2497 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4392 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.4800 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5454 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5795 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.4548 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4634 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.4730 -INFO:root:Best student 5 dist=0.2497, second_best=0.4392 -INFO:root:Distance ratio (best/second) = 0.5685 -{'data': {'name': 'DANG TRUNG KIEN', 'time_string': '2025-12-30 16:53:13.414657', 'status': 'check out', 'created_at': '2025-12-30T09:53:13.000000Z', 'user_id': 7, 'updated_at': '2025-12-30T09:53:13.000000Z', 'id': 19655}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:48608 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:48622 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:45262 - "POST /checkin HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.6895 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.6559 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.6258 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5651 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5982 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5989 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.6426 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.6332 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.6884 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.3094 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5099 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5921 -INFO:root:Best student 10 dist=0.3094, second_best=0.5099 -INFO:root:Distance ratio (best/second) = 0.6067 -{'data': {'name': 'TON GIA KHANH', 'time_string': '2025-12-30 16:54:06.274664', 'status': 'check out', 'created_at': '2025-12-30T09:54:06.000000Z', 'user_id': 12, 'updated_at': '2025-12-30T09:54:06.000000Z', 'id': 19656}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:45274 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:45288 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5073 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.4874 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.4854 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4387 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4033 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4027 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5592 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.4385 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.4895 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.4437 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.2284 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.4565 -INFO:root:Best student 11 dist=0.2284, second_best=0.4027 -INFO:root:Distance ratio (best/second) = 0.5671 -{'data': {'name': 'PHAM NHUT KHANG', 'time_string': '2025-12-30 16:54:34.809762', 'status': 'check out', 'created_at': '2025-12-30T09:54:34.000000Z', 'user_id': 15, 'updated_at': '2025-12-30T09:54:34.000000Z', 'id': 19658}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:57130 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:57144 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:56848 - "GET / HTTP/1.1" 200 OK -INFO: 172.16.6.38:56860 - "GET /static/assets/index-CDZdzCu6.css HTTP/1.1" 304 Not Modified -INFO: 172.16.6.38:56874 - "GET /static/assets/index-DW_Nku2j.js HTTP/1.1" 304 Not Modified -INFO: 172.16.6.38:56892 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:56884 - "GET /users HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5609 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.4971 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.4663 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4271 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5103 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4067 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5922 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.4535 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5680 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.4492 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4430 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.2212 -INFO:root:Best student 12 dist=0.2212, second_best=0.4067 -INFO:root:Distance ratio (best/second) = 0.5440 -{'data': {'name': 'NGUYEN HOANG VI', 'time_string': '2025-12-30 16:55:52.096943', 'status': 'check out', 'created_at': '2025-12-30T09:55:52.000000Z', 'user_id': 16, 'updated_at': '2025-12-30T09:55:52.000000Z', 'id': 19659}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:40290 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:40300 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.6671 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5390 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.6054 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4931 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4884 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.3206 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.6015 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5357 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5025 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5144 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4542 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5645 -INFO:root:Best student 6 dist=0.3206, second_best=0.4542 -INFO:root:Distance ratio (best/second) = 0.7058 -{'data': {'name': 'HUYNH THI HONG GAM', 'time_string': '2025-12-30 16:56:22.081005', 'status': 'check out', 'created_at': '2025-12-30T09:56:22.000000Z', 'user_id': 8, 'updated_at': '2025-12-30T09:56:22.000000Z', 'id': 19660}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:53236 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:53252 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.6439 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5012 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5925 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5474 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5038 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4965 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5977 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5009 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.2188 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5343 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5012 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5659 -INFO:root:Best student 9 dist=0.2188, second_best=0.4965 -INFO:root:Distance ratio (best/second) = 0.4408 -{'data': {'name': 'VO VAN MINH', 'time_string': '2025-12-30 16:59:15.899280', 'status': 'check out', 'created_at': '2025-12-30T09:59:15.000000Z', 'user_id': 11, 'updated_at': '2025-12-30T09:59:15.000000Z', 'id': 19661}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:45114 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:45116 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:35612 - "GET / HTTP/1.1" 200 OK -INFO: 172.16.6.38:35614 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:35616 - "GET /users HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5538 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.4098 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.4678 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4838 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4740 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.3842 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.4599 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.2325 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.4181 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5294 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4704 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5041 -INFO:root:Best student 8 dist=0.2325, second_best=0.3842 -INFO:root:Distance ratio (best/second) = 0.6051 -{'data': {'name': 'LE TAN LUAN', 'time_string': '2025-12-30 17:06:55.502867', 'status': 'check out', 'created_at': '2025-12-30T10:06:55.000000Z', 'user_id': 10, 'updated_at': '2025-12-30T10:06:55.000000Z', 'id': 19662}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:35618 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:35630 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5741 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5821 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.3171 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5300 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.6158 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5710 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5891 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.4945 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.6312 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5944 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5431 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5235 -INFO:root:Best student 3 dist=0.3171, second_best=0.4945 -INFO:root:Distance ratio (best/second) = 0.6413 -{'data': {'name': 'VO MINH TRUONG', 'time_string': '2025-12-30 17:12:18.845539', 'status': 'check out', 'created_at': '2025-12-30T10:12:18.000000Z', 'user_id': 4, 'updated_at': '2025-12-30T10:12:18.000000Z', 'id': 19663}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:49234 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:55276 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:36760 - "GET / HTTP/1.1" 200 OK -INFO: 172.16.6.38:36772 - "GET /static/assets/index-CDZdzCu6.css HTTP/1.1" 304 Not Modified -INFO: 172.16.6.38:36780 - "GET /static/assets/index-DW_Nku2j.js HTTP/1.1" 304 Not Modified -INFO: 172.16.6.38:36790 - "GET /users HTTP/1.1" 500 Internal Server Error -ERROR: Exception in ASGI application -Traceback (most recent call last): - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/connections.py", line 813, in _write_bytes - self._sock.sendall(data) -ConnectionResetError: [Errno 104] Connection reset by peer - -During handling of the above exception, another exception occurred: - -Traceback (most recent call last): - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1967, in _exec_single_context - self.dialect.do_execute( - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/default.py", line 952, in do_execute - cursor.execute(statement, parameters) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/cursors.py", line 153, in execute - result = self._query(query) - ^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/cursors.py", line 322, in _query - conn.query(q) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/connections.py", line 574, in query - self._execute_command(COMMAND.COM_QUERY, sql) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/connections.py", line 865, in _execute_command - self._write_bytes(packet) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/connections.py", line 816, in _write_bytes - raise err.OperationalError( -pymysql.err.OperationalError: (2006, "MySQL server has gone away (ConnectionResetError(104, 'Connection reset by peer'))") - -The above exception was the direct cause of the following exception: - -Traceback (most recent call last): - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/uvicorn/protocols/http/h11_impl.py", line 403, in run_asgi - result = await app( # type: ignore[func-returns-value] - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/uvicorn/middleware/proxy_headers.py", line 60, in __call__ - return await self.app(scope, receive, send) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/fastapi/applications.py", line 1139, in __call__ - await super().__call__(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/applications.py", line 107, in __call__ - await self.middleware_stack(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/middleware/errors.py", line 186, in __call__ - raise exc - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/middleware/errors.py", line 164, in __call__ - await self.app(scope, receive, _send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/middleware/cors.py", line 85, in __call__ - await self.app(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 63, in __call__ - await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app - raise exc - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app - await app(scope, receive, sender) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/fastapi/middleware/asyncexitstack.py", line 18, in __call__ - await self.app(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/routing.py", line 716, in __call__ - await self.middleware_stack(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/routing.py", line 736, in app - await route.handle(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/routing.py", line 290, in handle - await self.app(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/fastapi/routing.py", line 120, in app - await wrap_app_handling_exceptions(app, request)(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app - raise exc - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app - await app(scope, receive, sender) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/fastapi/routing.py", line 106, in app - response = await f(request) - ^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/fastapi/routing.py", line 430, in app - raw_response = await run_endpoint_function( - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/fastapi/routing.py", line 318, in run_endpoint_function - return await run_in_threadpool(dependant.call, **values) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/concurrency.py", line 32, in run_in_threadpool - return await anyio.to_thread.run_sync(func) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/anyio/to_thread.py", line 61, in run_sync - return await get_async_backend().run_sync_in_worker_thread( - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/anyio/_backends/_asyncio.py", line 2525, in run_sync_in_worker_thread - return await future - ^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/anyio/_backends/_asyncio.py", line 986, in run - result = context.run(func, *args) - ^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/main.py", line 395, in get_users - students = db.execute( - ^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/orm/session.py", line 2351, in execute - return self._execute_internal( - ^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/orm/session.py", line 2258, in _execute_internal - result = conn.execute( - ^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1419, in execute - return meth( - ^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/sql/elements.py", line 527, in _execute_on_connection - return connection._execute_clauseelement( - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1641, in _execute_clauseelement - ret = self._execute_context( - ^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1846, in _execute_context - return self._exec_single_context( - ^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1986, in _exec_single_context - self._handle_dbapi_exception( - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 2363, in _handle_dbapi_exception - raise sqlalchemy_exception.with_traceback(exc_info[2]) from e - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1967, in _exec_single_context - self.dialect.do_execute( - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/default.py", line 952, in do_execute - cursor.execute(statement, parameters) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/cursors.py", line 153, in execute - result = self._query(query) - ^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/cursors.py", line 322, in _query - conn.query(q) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/connections.py", line 574, in query - self._execute_command(COMMAND.COM_QUERY, sql) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/connections.py", line 865, in _execute_command - self._write_bytes(packet) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/connections.py", line 816, in _write_bytes - raise err.OperationalError( -sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (2006, "MySQL server has gone away (ConnectionResetError(104, 'Connection reset by peer'))") -[SQL: - SELECT id, name, email, avatar - FROM students - ORDER BY name DESC - ] -(Background on this error at: https://sqlalche.me/e/20/e3q8) -INFO: 172.16.6.38:36798 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.6721 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.6616 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5935 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5301 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5747 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5562 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.6207 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5856 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.6068 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.2619 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5158 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5775 -INFO:root:Best student 10 dist=0.2619, second_best=0.5158 -INFO:root:Distance ratio (best/second) = 0.5077 -{'data': {'name': 'TON GIA KHANH', 'time_string': '2025-12-31 07:00:48.485854', 'status': 'check in', 'created_at': '2025-12-31T00:00:48.000000Z', 'user_id': 12, 'updated_at': '2025-12-31T00:00:48.000000Z', 'id': 19664}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:36800 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:36908 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5690 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5157 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5218 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.1945 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4514 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5098 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5325 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5121 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5405 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.4981 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4729 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.4637 -INFO:root:Best student 4 dist=0.1945, second_best=0.4514 -INFO:root:Distance ratio (best/second) = 0.4308 -{'data': {'name': 'NGUYEN VO TINH', 'time_string': '2025-12-31 07:08:39.084907', 'status': 'check in', 'created_at': '2025-12-31T00:08:39.000000Z', 'user_id': 6, 'updated_at': '2025-12-31T00:08:39.000000Z', 'id': 19665}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:45504 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:59080 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5302 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5731 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5190 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4609 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4578 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4642 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.6156 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5208 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5227 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.4400 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.2391 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.4832 -INFO:root:Best student 11 dist=0.2391, second_best=0.4400 -INFO:root:Distance ratio (best/second) = 0.5433 -{'data': {'name': 'PHAM NHUT KHANG', 'time_string': '2025-12-31 07:14:33.330765', 'status': 'check in', 'created_at': '2025-12-31T00:14:33.000000Z', 'user_id': 15, 'updated_at': '2025-12-31T00:14:33.000000Z', 'id': 19666}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:39628 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:39630 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5676 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5446 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5650 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4667 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.1884 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4041 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.4818 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.4987 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5280 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.4965 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4094 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.4314 -INFO:root:Best student 5 dist=0.1884, second_best=0.4041 -INFO:root:Distance ratio (best/second) = 0.4663 -{'data': {'name': 'DANG TRUNG KIEN', 'time_string': '2025-12-31 07:18:22.974360', 'status': 'check in', 'created_at': '2025-12-31T00:18:23.000000Z', 'user_id': 7, 'updated_at': '2025-12-31T00:18:23.000000Z', 'id': 19667}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:56058 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:56062 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5758 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5125 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.4747 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4521 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4977 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4284 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5827 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.4518 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5579 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.4853 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4621 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.2185 -INFO:root:Best student 12 dist=0.2185, second_best=0.4284 -INFO:root:Distance ratio (best/second) = 0.5101 -{'data': {'name': 'NGUYEN HOANG VI', 'time_string': '2025-12-31 07:22:49.240019', 'status': 'check in', 'created_at': '2025-12-31T00:22:49.000000Z', 'user_id': 16, 'updated_at': '2025-12-31T00:22:49.000000Z', 'id': 19668}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:50788 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:34718 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5758 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5753 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5737 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5346 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4372 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5657 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.3188 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5355 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5348 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5400 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5370 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5878 -INFO:root:Best student 7 dist=0.3188, second_best=0.4372 -INFO:root:Distance ratio (best/second) = 0.7291 -{'data': {'name': 'NGUYEN TRUNG THAT', 'time_string': '2025-12-31 07:25:44.732530', 'status': 'check in', 'created_at': '2025-12-31T00:25:44.000000Z', 'user_id': 9, 'updated_at': '2025-12-31T00:25:44.000000Z', 'id': 19669}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:44534 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:44544 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:52010 - "GET / HTTP/1.1" 200 OK -INFO: 172.16.6.38:52022 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:52020 - "GET /users HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.6623 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5166 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5946 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4986 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4811 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.3176 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5824 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.4918 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.4664 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5391 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4595 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5612 -INFO:root:Best student 6 dist=0.3176, second_best=0.4595 -INFO:root:Distance ratio (best/second) = 0.6911 -{'data': {'name': 'HUYNH THI HONG GAM', 'time_string': '2025-12-31 07:27:15.559743', 'status': 'check in', 'created_at': '2025-12-31T00:27:15.000000Z', 'user_id': 8, 'updated_at': '2025-12-31T00:27:15.000000Z', 'id': 19670}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:54538 - "POST /checkin HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.6749 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5332 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5986 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4905 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4748 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.3280 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5746 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.4868 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.4533 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5474 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4745 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5725 -INFO:root:Best student 6 dist=0.3280, second_best=0.4533 -INFO:root:Distance ratio (best/second) = 0.7237 -INFO: 172.16.6.38:54542 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:54548 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5711 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.2738 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5283 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4678 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4653 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4861 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5479 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.4566 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.4524 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5351 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4954 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.4914 -INFO:root:Best student 2 dist=0.2738, second_best=0.4524 -INFO:root:Distance ratio (best/second) = 0.6053 -{'data': {'name': 'PHAM VAN HUYNH', 'time_string': '2025-12-31 07:30:08.740985', 'status': 'check in', 'created_at': '2025-12-31T00:30:08.000000Z', 'user_id': 3, 'updated_at': '2025-12-31T00:30:08.000000Z', 'id': 19671}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:53382 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:38432 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.2433 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.6178 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5974 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5666 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.6342 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.6320 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5529 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5671 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.6754 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.6538 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5731 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.6530 -INFO:root:Best student 1 dist=0.2433, second_best=0.5529 -INFO:root:Distance ratio (best/second) = 0.4400 -{'data': {'name': 'PHAN QUOC BAO', 'time_string': '2025-12-31 07:30:48.858383', 'status': 'check in', 'created_at': '2025-12-31T00:30:48.000000Z', 'user_id': 2, 'updated_at': '2025-12-31T00:30:48.000000Z', 'id': 19672}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:52604 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:45880 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5768 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5088 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5680 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5309 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4506 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4615 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5081 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.3466 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5043 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5429 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4904 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5552 -INFO:root:Best student 8 dist=0.3466, second_best=0.4506 -INFO:root:Distance ratio (best/second) = 0.7693 -{'data': {'name': 'LE TAN LUAN', 'time_string': '2025-12-31 07:33:23.430347', 'status': 'check in', 'created_at': '2025-12-31T00:33:23.000000Z', 'user_id': 10, 'updated_at': '2025-12-31T00:33:23.000000Z', 'id': 19673}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:42188 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:42190 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.6174 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.4642 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5636 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5038 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4768 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4464 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5494 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.4543 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.2345 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5492 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4833 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5246 -INFO:root:Best student 9 dist=0.2345, second_best=0.4464 -INFO:root:Distance ratio (best/second) = 0.5253 -{'data': {'name': 'VO VAN MINH', 'time_string': '2025-12-31 07:36:01.480237', 'status': 'check in', 'created_at': '2025-12-31T00:36:01.000000Z', 'user_id': 11, 'updated_at': '2025-12-31T00:36:01.000000Z', 'id': 19674}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:45830 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:45846 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:43782 - "POST /checkin HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5459 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5558 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.3024 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5141 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5650 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5672 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5989 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5101 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.6249 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5766 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4849 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.4811 -INFO:root:Best student 3 dist=0.3024, second_best=0.4811 -INFO:root:Distance ratio (best/second) = 0.6286 -{'data': {'name': 'VO MINH TRUONG', 'time_string': '2025-12-31 07:39:11.151771', 'status': 'check in', 'created_at': '2025-12-31T00:39:11.000000Z', 'user_id': 4, 'updated_at': '2025-12-31T00:39:11.000000Z', 'id': 19675}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:42822 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:42830 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.6559 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5788 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.6030 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5344 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5364 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4891 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5974 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5300 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.2424 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.6123 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5161 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5731 -INFO:root:Best student 9 dist=0.2424, second_best=0.4891 -INFO:root:Distance ratio (best/second) = 0.4957 -{'data': {'name': 'VO VAN MINH', 'time_string': '2025-12-31 11:31:12.428475', 'status': 'check out', 'created_at': '2025-12-31T04:31:12.000000Z', 'user_id': 11, 'updated_at': '2025-12-31T04:31:12.000000Z', 'id': 19676}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:49542 - "POST /checkin HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.6507 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5717 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5922 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5313 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5259 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4844 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5933 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5189 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.2284 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.6007 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5063 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5679 -INFO:root:Best student 9 dist=0.2284, second_best=0.4844 -INFO:root:Distance ratio (best/second) = 0.4715 -INFO: 172.16.6.38:49550 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:49562 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5936 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.6579 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.6491 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.6071 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5806 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.6380 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.3359 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5902 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.6444 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.6530 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.6055 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.6574 -INFO:root:Best student 7 dist=0.3359, second_best=0.5806 -INFO:root:Distance ratio (best/second) = 0.5784 -{'data': {'name': 'NGUYEN TRUNG THAT', 'time_string': '2025-12-31 11:31:50.435976', 'status': 'check out', 'created_at': '2025-12-31T04:31:50.000000Z', 'user_id': 9, 'updated_at': '2025-12-31T04:31:50.000000Z', 'id': 19677}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:46058 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:34748 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:35374 - "GET / HTTP/1.1" 200 OK -INFO: 172.16.6.38:35376 - "GET /static/assets/index-CDZdzCu6.css HTTP/1.1" 304 Not Modified -INFO: 172.16.6.38:35380 - "GET /static/assets/index-DW_Nku2j.js HTTP/1.1" 304 Not Modified -INFO: 172.16.6.38:59144 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:59130 - "GET /users HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5995 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.4204 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.4650 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5040 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4770 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.3814 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.4756 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.2507 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.4589 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5393 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4517 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.4737 -INFO:root:Best student 8 dist=0.2507, second_best=0.3814 -INFO:root:Distance ratio (best/second) = 0.6572 -{'data': {'name': 'LE TAN LUAN', 'time_string': '2025-12-31 11:32:27.796101', 'status': 'check out', 'created_at': '2025-12-31T04:32:27.000000Z', 'user_id': 10, 'updated_at': '2025-12-31T04:32:27.000000Z', 'id': 19678}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:59148 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:55130 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5806 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.4678 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5130 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5022 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4735 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4082 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5266 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.2543 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.4742 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5265 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4344 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.4690 -INFO:root:Best student 8 dist=0.2543, second_best=0.4082 -INFO:root:Distance ratio (best/second) = 0.6230 -{'data': {'name': 'LE TAN LUAN', 'time_string': '2025-12-31 13:02:00.813345', 'status': 'check in', 'created_at': '2025-12-31T06:02:00.000000Z', 'user_id': 10, 'updated_at': '2025-12-31T06:02:00.000000Z', 'id': 19679}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:56362 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:42176 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5602 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5967 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5689 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5358 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5252 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5840 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.3656 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5085 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5521 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5982 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5347 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5969 -INFO:root:Best student 7 dist=0.3656, second_best=0.5085 -INFO:root:Distance ratio (best/second) = 0.7190 -{'data': {'name': 'NGUYEN TRUNG THAT', 'time_string': '2025-12-31 13:02:10.726601', 'status': 'check in', 'created_at': '2025-12-31T06:02:10.000000Z', 'user_id': 9, 'updated_at': '2025-12-31T06:02:10.000000Z', 'id': 19680}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:42192 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:34300 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.6458 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5456 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.6031 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.6031 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5745 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5085 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.6444 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5354 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.3738 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5861 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5008 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5634 -INFO:root:Best student 9 dist=0.3738, second_best=0.5008 -INFO:root:Distance ratio (best/second) = 0.7465 -{'data': {'name': 'VO VAN MINH', 'time_string': '2025-12-31 13:02:24.084485', 'status': 'check in', 'created_at': '2025-12-31T06:02:24.000000Z', 'user_id': 11, 'updated_at': '2025-12-31T06:02:24.000000Z', 'id': 19681}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:60700 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:60714 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5358 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.4846 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5519 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.2749 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4752 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5059 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5256 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5166 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5885 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.4721 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4980 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5202 -INFO:root:Best student 4 dist=0.2749, second_best=0.4721 -INFO:root:Distance ratio (best/second) = 0.5824 -{'data': {'name': 'NGUYEN VO TINH', 'time_string': '2025-12-31 16:26:59.604565', 'status': 'check out', 'created_at': '2025-12-31T09:26:59.000000Z', 'user_id': 6, 'updated_at': '2025-12-31T09:26:59.000000Z', 'id': 19682}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:56426 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:37524 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5572 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5800 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.6191 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5000 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.2379 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4859 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.4778 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5504 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5743 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.4966 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4785 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5049 -INFO:root:Best student 5 dist=0.2379, second_best=0.4778 -INFO:root:Distance ratio (best/second) = 0.4979 -{'data': {'name': 'DANG TRUNG KIEN', 'time_string': '2025-12-31 16:27:24.294251', 'status': 'check out', 'created_at': '2025-12-31T09:27:24.000000Z', 'user_id': 7, 'updated_at': '2025-12-31T09:27:24.000000Z', 'id': 19683}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:54926 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:54934 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5764 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5940 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5708 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4667 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4959 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5068 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5853 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5432 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5960 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.2260 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4237 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5057 -INFO:root:Best student 10 dist=0.2260, second_best=0.4237 -INFO:root:Distance ratio (best/second) = 0.5333 -{'data': {'name': 'TON GIA KHANH', 'time_string': '2025-12-31 16:27:38.915060', 'status': 'check out', 'created_at': '2025-12-31T09:27:38.000000Z', 'user_id': 12, 'updated_at': '2025-12-31T09:27:38.000000Z', 'id': 19685}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:48158 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:60992 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.2872 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.6092 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5909 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.6455 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.6472 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.6337 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5426 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5935 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.6865 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.6730 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5887 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.6502 -INFO:root:Best student 1 dist=0.2872, second_best=0.5426 -INFO:root:Distance ratio (best/second) = 0.5294 -{'data': {'name': 'PHAN QUOC BAO', 'time_string': '2025-12-31 16:32:23.561999', 'status': 'check out', 'created_at': '2025-12-31T09:32:23.000000Z', 'user_id': 2, 'updated_at': '2025-12-31T09:32:23.000000Z', 'id': 19686}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:55840 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:55856 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.6006 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5709 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.2876 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5447 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5802 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5635 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.6064 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5285 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.6388 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5402 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4975 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5584 -INFO:root:Best student 3 dist=0.2876, second_best=0.4975 -INFO:root:Distance ratio (best/second) = 0.5780 -{'data': {'name': 'VO MINH TRUONG', 'time_string': '2025-12-31 16:36:06.313901', 'status': 'check out', 'created_at': '2025-12-31T09:36:06.000000Z', 'user_id': 4, 'updated_at': '2025-12-31T09:36:06.000000Z', 'id': 19687}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:56908 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:56920 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5232 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5151 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.4734 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4637 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4315 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4126 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5734 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.4519 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.4946 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.4612 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.2509 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.4335 -INFO:root:Best student 11 dist=0.2509, second_best=0.4126 -INFO:root:Distance ratio (best/second) = 0.6081 -{'data': {'name': 'PHAM NHUT KHANG', 'time_string': '2025-12-31 16:47:49.642931', 'status': 'check out', 'created_at': '2025-12-31T09:47:49.000000Z', 'user_id': 15, 'updated_at': '2025-12-31T09:47:49.000000Z', 'id': 19688}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:42534 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:33046 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:53930 - "GET / HTTP/1.1" 200 OK -INFO: 172.16.6.38:53934 - "GET /static/assets/index-CDZdzCu6.css HTTP/1.1" 304 Not Modified -INFO: 172.16.6.38:53936 - "GET /static/assets/index-DW_Nku2j.js HTTP/1.1" 304 Not Modified -INFO: 172.16.6.38:53940 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:53942 - "GET /users HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.6105 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5300 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5626 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5153 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4331 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.2093 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5814 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.4629 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.4916 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5035 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.3542 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.4696 -INFO:root:Best student 6 dist=0.2093, second_best=0.3542 -INFO:root:Distance ratio (best/second) = 0.5909 -{'data': {'name': 'HUYNH THI HONG GAM', 'time_string': '2025-12-31 16:49:37.594977', 'status': 'check out', 'created_at': '2025-12-31T09:49:37.000000Z', 'user_id': 8, 'updated_at': '2025-12-31T09:49:37.000000Z', 'id': 19689}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:53960 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:52978 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5557 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.4930 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.4401 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4405 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5351 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4306 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.6077 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.4616 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5863 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.4819 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4619 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.2679 -INFO:root:Best student 12 dist=0.2679, second_best=0.4306 -INFO:root:Distance ratio (best/second) = 0.6223 -{'data': {'name': 'NGUYEN HOANG VI', 'time_string': '2025-12-31 16:49:48.817894', 'status': 'check out', 'created_at': '2025-12-31T09:49:48.000000Z', 'user_id': 16, 'updated_at': '2025-12-31T09:49:48.000000Z', 'id': 19690}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:52994 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:45390 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5380 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.6134 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.6094 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5493 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4569 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5590 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.2775 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.4908 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5870 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.6059 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5581 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5789 -INFO:root:Best student 7 dist=0.2775, second_best=0.4569 -INFO:root:Distance ratio (best/second) = 0.6074 -{'data': {'name': 'NGUYEN TRUNG THAT', 'time_string': '2025-12-31 16:50:10.552943', 'status': 'check out', 'created_at': '2025-12-31T09:50:10.000000Z', 'user_id': 9, 'updated_at': '2025-12-31T09:50:10.000000Z', 'id': 19691}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:40684 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:40644 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5297 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.4987 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5488 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4754 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4505 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.3612 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5479 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.4058 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5047 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5027 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4166 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.4764 -INFO:root:Best student 6 dist=0.3612, second_best=0.4058 -INFO:root:Distance ratio (best/second) = 0.8901 -INFO:root:No confident match: ratio not confident (0.3612/0.4058) -INFO: 172.16.6.38:40646 - "POST /checkin HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.6559 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5429 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.6205 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5950 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5571 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5140 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5915 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5446 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.2477 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5900 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5272 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5847 -INFO:root:Best student 9 dist=0.2477, second_best=0.5140 -INFO:root:Distance ratio (best/second) = 0.4819 -{'data': {'name': 'VO VAN MINH', 'time_string': '2025-12-31 16:50:22.760500', 'status': 'check out', 'created_at': '2025-12-31T09:50:22.000000Z', 'user_id': 11, 'updated_at': '2025-12-31T09:50:22.000000Z', 'id': 19692}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:42040 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:42050 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5427 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.4533 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.4965 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4929 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4622 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4263 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.4710 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.2820 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.4423 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5304 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4868 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.4822 -INFO:root:Best student 8 dist=0.2820, second_best=0.4263 -INFO:root:Distance ratio (best/second) = 0.6614 -{'data': {'name': 'LE TAN LUAN', 'time_string': '2025-12-31 16:59:51.813496', 'status': 'check out', 'created_at': '2025-12-31T09:59:51.000000Z', 'user_id': 10, 'updated_at': '2025-12-31T09:59:51.000000Z', 'id': 19693}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:51590 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:51594 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:58842 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:58856 - "GET / HTTP/1.1" 200 OK -INFO: 172.16.6.38:54386 - "GET /static/assets/index-CDZdzCu6.css HTTP/1.1" 304 Not Modified -INFO: 172.16.6.38:54390 - "GET /static/assets/index-DW_Nku2j.js HTTP/1.1" 304 Not Modified -INFO: 172.16.6.38:54392 - "GET / HTTP/1.1" 200 OK -INFO: 172.16.6.38:54404 - "GET /users HTTP/1.1" 500 Internal Server Error -ERROR: Exception in ASGI application -Traceback (most recent call last): - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/connections.py", line 813, in _write_bytes - self._sock.sendall(data) -ConnectionResetError: [Errno 104] Connection reset by peer - -During handling of the above exception, another exception occurred: - -Traceback (most recent call last): - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1967, in _exec_single_context - self.dialect.do_execute( - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/default.py", line 952, in do_execute - cursor.execute(statement, parameters) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/cursors.py", line 153, in execute - result = self._query(query) - ^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/cursors.py", line 322, in _query - conn.query(q) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/connections.py", line 574, in query - self._execute_command(COMMAND.COM_QUERY, sql) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/connections.py", line 865, in _execute_command - self._write_bytes(packet) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/connections.py", line 816, in _write_bytes - raise err.OperationalError( -pymysql.err.OperationalError: (2006, "MySQL server has gone away (ConnectionResetError(104, 'Connection reset by peer'))") - -The above exception was the direct cause of the following exception: - -Traceback (most recent call last): - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/uvicorn/protocols/http/h11_impl.py", line 403, in run_asgi - result = await app( # type: ignore[func-returns-value] - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/uvicorn/middleware/proxy_headers.py", line 60, in __call__ - return await self.app(scope, receive, send) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/fastapi/applications.py", line 1139, in __call__ - await super().__call__(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/applications.py", line 107, in __call__ - await self.middleware_stack(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/middleware/errors.py", line 186, in __call__ - raise exc - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/middleware/errors.py", line 164, in __call__ - await self.app(scope, receive, _send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/middleware/cors.py", line 85, in __call__ - await self.app(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 63, in __call__ - await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app - raise exc - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app - await app(scope, receive, sender) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/fastapi/middleware/asyncexitstack.py", line 18, in __call__ - await self.app(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/routing.py", line 716, in __call__ - await self.middleware_stack(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/routing.py", line 736, in app - await route.handle(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/routing.py", line 290, in handle - await self.app(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/fastapi/routing.py", line 120, in app - await wrap_app_handling_exceptions(app, request)(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app - raise exc - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app - await app(scope, receive, sender) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/fastapi/routing.py", line 106, in app - response = await f(request) - ^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/fastapi/routing.py", line 430, in app - raw_response = await run_endpoint_function( - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/fastapi/routing.py", line 318, in run_endpoint_function - return await run_in_threadpool(dependant.call, **values) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/concurrency.py", line 32, in run_in_threadpool - return await anyio.to_thread.run_sync(func) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/anyio/to_thread.py", line 61, in run_sync - return await get_async_backend().run_sync_in_worker_thread( - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/anyio/_backends/_asyncio.py", line 2525, in run_sync_in_worker_thread - return await future - ^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/anyio/_backends/_asyncio.py", line 986, in run - result = context.run(func, *args) - ^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/main.py", line 395, in get_users - students = db.execute( - ^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/orm/session.py", line 2351, in execute - return self._execute_internal( - ^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/orm/session.py", line 2258, in _execute_internal - result = conn.execute( - ^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1419, in execute - return meth( - ^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/sql/elements.py", line 527, in _execute_on_connection - return connection._execute_clauseelement( - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1641, in _execute_clauseelement - ret = self._execute_context( - ^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1846, in _execute_context - return self._exec_single_context( - ^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1986, in _exec_single_context - self._handle_dbapi_exception( - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 2363, in _handle_dbapi_exception - raise sqlalchemy_exception.with_traceback(exc_info[2]) from e - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1967, in _exec_single_context - self.dialect.do_execute( - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/default.py", line 952, in do_execute - cursor.execute(statement, parameters) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/cursors.py", line 153, in execute - result = self._query(query) - ^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/cursors.py", line 322, in _query - conn.query(q) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/connections.py", line 574, in query - self._execute_command(COMMAND.COM_QUERY, sql) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/connections.py", line 865, in _execute_command - self._write_bytes(packet) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/connections.py", line 816, in _write_bytes - raise err.OperationalError( -sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (2006, "MySQL server has gone away (ConnectionResetError(104, 'Connection reset by peer'))") -[SQL: - SELECT id, name, email, avatar - FROM students - ORDER BY name DESC - ] -(Background on this error at: https://sqlalche.me/e/20/e3q8) -INFO: 172.16.6.38:54406 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:54438 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:54422 - "GET /users HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.7156 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.6334 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.6092 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5233 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5896 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5779 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.6358 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5830 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.6150 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.2552 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5292 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5745 -INFO:root:Best student 10 dist=0.2552, second_best=0.5233 -INFO:root:Distance ratio (best/second) = 0.4877 -{'data': {'name': 'TON GIA KHANH', 'time_string': '2026-01-02 07:02:00.099048', 'status': 'check in', 'created_at': '2026-01-02T00:02:00.000000Z', 'user_id': 12, 'updated_at': '2026-01-02T00:02:00.000000Z', 'id': 19694}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:54444 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:33308 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5292 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5199 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.2536 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4948 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5430 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4614 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5645 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.4559 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5793 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5078 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4199 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.4670 -INFO:root:Best student 3 dist=0.2536, second_best=0.4199 -INFO:root:Distance ratio (best/second) = 0.6041 -{'data': {'name': 'VO MINH TRUONG', 'time_string': '2026-01-02 07:38:19.468008', 'status': 'check in', 'created_at': '2026-01-02T00:38:19.000000Z', 'user_id': 4, 'updated_at': '2026-01-02T00:38:19.000000Z', 'id': 19695}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:51508 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:33268 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.6593 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5862 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5951 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4852 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5481 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5501 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.6137 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5485 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.6033 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.2570 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4665 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5238 -INFO:root:Best student 10 dist=0.2570, second_best=0.4665 -INFO:root:Distance ratio (best/second) = 0.5509 -{'data': {'name': 'TON GIA KHANH', 'time_string': '2026-01-02 14:43:40.354477', 'status': 'check out', 'created_at': '2026-01-02T07:43:40.000000Z', 'user_id': 12, 'updated_at': '2026-01-02T07:43:40.000000Z', 'id': 19696}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:38014 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:36250 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.6124 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5148 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.2485 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5453 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5924 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4986 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.6407 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.4717 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.6139 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5499 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4524 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5133 -INFO:root:Best student 3 dist=0.2485, second_best=0.4524 -INFO:root:Distance ratio (best/second) = 0.5493 -{'data': {'name': 'VO MINH TRUONG', 'time_string': '2026-01-02 16:31:33.589755', 'status': 'check out', 'created_at': '2026-01-02T09:31:33.000000Z', 'user_id': 4, 'updated_at': '2026-01-02T09:31:33.000000Z', 'id': 19697}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:37892 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:37908 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:50438 - "GET /users HTTP/1.1" 500 Internal Server Error -ERROR: Exception in ASGI application -Traceback (most recent call last): - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/connections.py", line 813, in _write_bytes - self._sock.sendall(data) -ConnectionResetError: [Errno 104] Connection reset by peer - -During handling of the above exception, another exception occurred: - -Traceback (most recent call last): - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1967, in _exec_single_context - self.dialect.do_execute( - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/default.py", line 952, in do_execute - cursor.execute(statement, parameters) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/cursors.py", line 153, in execute - result = self._query(query) - ^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/cursors.py", line 322, in _query - conn.query(q) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/connections.py", line 574, in query - self._execute_command(COMMAND.COM_QUERY, sql) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/connections.py", line 865, in _execute_command - self._write_bytes(packet) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/connections.py", line 816, in _write_bytes - raise err.OperationalError( -pymysql.err.OperationalError: (2006, "MySQL server has gone away (ConnectionResetError(104, 'Connection reset by peer'))") - -The above exception was the direct cause of the following exception: - -Traceback (most recent call last): - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/uvicorn/protocols/http/h11_impl.py", line 403, in run_asgi - result = await app( # type: ignore[func-returns-value] - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/uvicorn/middleware/proxy_headers.py", line 60, in __call__ - return await self.app(scope, receive, send) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/fastapi/applications.py", line 1139, in __call__ - await super().__call__(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/applications.py", line 107, in __call__ - await self.middleware_stack(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/middleware/errors.py", line 186, in __call__ - raise exc - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/middleware/errors.py", line 164, in __call__ - await self.app(scope, receive, _send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/middleware/cors.py", line 85, in __call__ - await self.app(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 63, in __call__ - await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app - raise exc - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app - await app(scope, receive, sender) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/fastapi/middleware/asyncexitstack.py", line 18, in __call__ - await self.app(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/routing.py", line 716, in __call__ - await self.middleware_stack(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/routing.py", line 736, in app - await route.handle(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/routing.py", line 290, in handle - await self.app(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/fastapi/routing.py", line 120, in app - await wrap_app_handling_exceptions(app, request)(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app - raise exc - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app - await app(scope, receive, sender) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/fastapi/routing.py", line 106, in app - response = await f(request) - ^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/fastapi/routing.py", line 430, in app - raw_response = await run_endpoint_function( - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/fastapi/routing.py", line 318, in run_endpoint_function - return await run_in_threadpool(dependant.call, **values) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/concurrency.py", line 32, in run_in_threadpool - return await anyio.to_thread.run_sync(func) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/anyio/to_thread.py", line 61, in run_sync - return await get_async_backend().run_sync_in_worker_thread( - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/anyio/_backends/_asyncio.py", line 2525, in run_sync_in_worker_thread - return await future - ^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/anyio/_backends/_asyncio.py", line 986, in run - result = context.run(func, *args) - ^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/main.py", line 395, in get_users - students = db.execute( - ^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/orm/session.py", line 2351, in execute - return self._execute_internal( - ^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/orm/session.py", line 2258, in _execute_internal - result = conn.execute( - ^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1419, in execute - return meth( - ^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/sql/elements.py", line 527, in _execute_on_connection - return connection._execute_clauseelement( - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1641, in _execute_clauseelement - ret = self._execute_context( - ^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1846, in _execute_context - return self._exec_single_context( - ^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1986, in _exec_single_context - self._handle_dbapi_exception( - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 2363, in _handle_dbapi_exception - raise sqlalchemy_exception.with_traceback(exc_info[2]) from e - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1967, in _exec_single_context - self.dialect.do_execute( - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/default.py", line 952, in do_execute - cursor.execute(statement, parameters) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/cursors.py", line 153, in execute - result = self._query(query) - ^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/cursors.py", line 322, in _query - conn.query(q) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/connections.py", line 574, in query - self._execute_command(COMMAND.COM_QUERY, sql) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/connections.py", line 865, in _execute_command - self._write_bytes(packet) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/connections.py", line 816, in _write_bytes - raise err.OperationalError( -sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (2006, "MySQL server has gone away (ConnectionResetError(104, 'Connection reset by peer'))") -[SQL: - SELECT id, name, email, avatar - FROM students - ORDER BY name DESC - ] -(Background on this error at: https://sqlalche.me/e/20/e3q8) -INFO: 172.16.6.38:50448 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5912 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5438 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5671 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4742 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.2019 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4189 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5018 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5136 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5224 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.4781 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4038 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.4487 -INFO:root:Best student 5 dist=0.2019, second_best=0.4038 -INFO:root:Distance ratio (best/second) = 0.4998 -{'data': {'name': 'DANG TRUNG KIEN', 'time_string': '2026-01-05 07:10:59.881909', 'status': 'check in', 'created_at': '2026-01-05T00:10:59.000000Z', 'user_id': 7, 'updated_at': '2026-01-05T00:10:59.000000Z', 'id': 19698}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:54644 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:52762 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5196 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.4942 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5000 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.3897 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4160 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4090 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5498 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.4711 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.4444 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.4735 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.2672 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.4818 -INFO:root:Best student 11 dist=0.2672, second_best=0.3897 -INFO:root:Distance ratio (best/second) = 0.6856 -{'data': {'name': 'PHAM NHUT KHANG', 'time_string': '2026-01-05 07:11:27.660721', 'status': 'check in', 'created_at': '2026-01-05T00:11:27.000000Z', 'user_id': 15, 'updated_at': '2026-01-05T00:11:27.000000Z', 'id': 19699}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:49722 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:49738 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.2814 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.6292 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.6089 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5979 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.6173 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.6239 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5592 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.6003 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.6800 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.6831 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5774 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.6451 -INFO:root:Best student 1 dist=0.2814, second_best=0.5592 -INFO:root:Distance ratio (best/second) = 0.5033 -{'data': {'name': 'PHAN QUOC BAO', 'time_string': '2026-01-05 07:22:16.178015', 'status': 'check in', 'created_at': '2026-01-05T00:22:16.000000Z', 'user_id': 2, 'updated_at': '2026-01-05T00:22:16.000000Z', 'id': 19700}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:43732 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:43736 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5611 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.4984 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5255 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.2381 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4802 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5223 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5131 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5120 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.4878 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.4554 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5076 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.4874 -INFO:root:Best student 4 dist=0.2381, second_best=0.4554 -INFO:root:Distance ratio (best/second) = 0.5228 -{'data': {'name': 'NGUYEN VO TINH', 'time_string': '2026-01-05 07:25:53.367591', 'status': 'check in', 'created_at': '2026-01-05T00:25:53.000000Z', 'user_id': 6, 'updated_at': '2026-01-05T00:25:53.000000Z', 'id': 19701}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:52008 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:52012 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5392 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5917 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5850 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5984 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5370 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.6245 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.2967 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.6116 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5597 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.6480 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5922 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.6245 -INFO:root:Best student 7 dist=0.2967, second_best=0.5370 -INFO:root:Distance ratio (best/second) = 0.5525 -{'data': {'name': 'NGUYEN TRUNG THAT', 'time_string': '2026-01-05 07:26:32.715384', 'status': 'check in', 'created_at': '2026-01-05T00:26:32.000000Z', 'user_id': 9, 'updated_at': '2026-01-05T00:26:32.000000Z', 'id': 19702}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:36462 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:36466 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:52634 - "GET / HTTP/1.1" 200 OK -INFO: 172.16.6.38:52636 - "GET /static/assets/index-CDZdzCu6.css HTTP/1.1" 200 OK -INFO: 172.16.6.38:52638 - "GET /static/assets/index-DW_Nku2j.js HTTP/1.1" 200 OK -INFO: 172.16.6.38:52652 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:52640 - "GET /users HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.6057 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5228 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5690 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4335 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4264 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.3583 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5685 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5104 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.4558 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.4932 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4091 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5221 -INFO:root:Best student 6 dist=0.3583, second_best=0.4091 -INFO:root:Distance ratio (best/second) = 0.8758 -INFO:root:No confident match: ratio not confident (0.3583/0.4091) -INFO: 172.16.6.38:57452 - "POST /checkin HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5911 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5371 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5801 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4729 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4166 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.3326 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5438 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5070 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.4764 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.4860 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4154 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5370 -INFO:root:Best student 6 dist=0.3326, second_best=0.4154 -INFO:root:Distance ratio (best/second) = 0.8005 -{'data': {'name': 'HUYNH THI HONG GAM', 'time_string': '2026-01-05 07:27:43.340399', 'status': 'check in', 'created_at': '2026-01-05T00:27:43.000000Z', 'user_id': 8, 'updated_at': '2026-01-05T00:27:43.000000Z', 'id': 19703}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:54770 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:54774 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:52070 - "GET / HTTP/1.1" 200 OK -INFO: 172.16.6.38:52096 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:52086 - "GET /users HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.6508 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5794 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5906 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4845 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5417 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5643 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5873 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5470 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.6003 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.2799 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4884 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5296 -INFO:root:Best student 10 dist=0.2799, second_best=0.4845 -INFO:root:Distance ratio (best/second) = 0.5777 -{'data': {'name': 'TON GIA KHANH', 'time_string': '2026-01-05 07:31:24.145077', 'status': 'check in', 'created_at': '2026-01-05T00:31:24.000000Z', 'user_id': 12, 'updated_at': '2026-01-05T00:31:24.000000Z', 'id': 19704}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:52104 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:52120 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.6058 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5408 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.6045 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5698 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5262 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5067 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5710 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5452 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.2367 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5960 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5170 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5733 -INFO:root:Best student 9 dist=0.2367, second_best=0.5067 -INFO:root:Distance ratio (best/second) = 0.4671 -{'data': {'name': 'VO VAN MINH', 'time_string': '2026-01-05 07:33:01.663036', 'status': 'check in', 'created_at': '2026-01-05T00:33:01.000000Z', 'user_id': 11, 'updated_at': '2026-01-05T00:33:01.000000Z', 'id': 19705}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:33658 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:33668 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5904 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.2522 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.4986 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4392 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4750 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4942 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5447 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.4609 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.4908 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5363 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4808 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.4791 -INFO:root:Best student 2 dist=0.2522, second_best=0.4392 -INFO:root:Distance ratio (best/second) = 0.5742 -{'data': {'name': 'PHAM VAN HUYNH', 'time_string': '2026-01-05 07:33:34.457379', 'status': 'check in', 'created_at': '2026-01-05T00:33:34.000000Z', 'user_id': 3, 'updated_at': '2026-01-05T00:33:34.000000Z', 'id': 19706}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:56528 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:56542 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5837 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5320 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.3182 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5182 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.6018 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5955 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.6010 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5201 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.6070 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5846 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5028 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5139 -INFO:root:Best student 3 dist=0.3182, second_best=0.5028 -INFO:root:Distance ratio (best/second) = 0.6328 -{'data': {'name': 'VO MINH TRUONG', 'time_string': '2026-01-05 07:39:05.450614', 'status': 'check in', 'created_at': '2026-01-05T00:39:05.000000Z', 'user_id': 4, 'updated_at': '2026-01-05T00:39:05.000000Z', 'id': 19707}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:53402 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:53406 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.6325 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5476 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5872 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5479 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5097 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4956 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.6071 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5190 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.2538 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5637 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4934 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5366 -INFO:root:Best student 9 dist=0.2538, second_best=0.4934 -INFO:root:Distance ratio (best/second) = 0.5144 -{'data': {'name': 'VO VAN MINH', 'time_string': '2026-01-05 11:32:20.484217', 'status': 'check out', 'created_at': '2026-01-05T04:32:20.000000Z', 'user_id': 11, 'updated_at': '2026-01-05T04:32:20.000000Z', 'id': 19708}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:52706 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:38338 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:41848 - "POST /checkin HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.6362 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.6276 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5894 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5114 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5461 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5513 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5842 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5711 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.6325 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.2740 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4905 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5492 -INFO:root:Best student 10 dist=0.2740, second_best=0.4905 -INFO:root:Distance ratio (best/second) = 0.5585 -{'data': {'name': 'TON GIA KHANH', 'time_string': '2026-01-05 11:34:02.481828', 'status': 'check out', 'created_at': '2026-01-05T04:34:02.000000Z', 'user_id': 12, 'updated_at': '2026-01-05T04:34:02.000000Z', 'id': 19709}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:40734 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:40748 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5415 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5989 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5922 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5272 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4565 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5852 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.2563 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5206 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5747 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5809 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5448 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5894 -INFO:root:Best student 7 dist=0.2563, second_best=0.4565 -INFO:root:Distance ratio (best/second) = 0.5616 -{'data': {'name': 'NGUYEN TRUNG THAT', 'time_string': '2026-01-05 11:35:39.007329', 'status': 'check out', 'created_at': '2026-01-05T04:35:39.000000Z', 'user_id': 9, 'updated_at': '2026-01-05T04:35:39.000000Z', 'id': 19710}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:54162 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:54174 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.6905 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.6062 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.6369 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.6236 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5364 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5201 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5996 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5660 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.3852 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5893 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5269 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.6201 -INFO:root:Best student 9 dist=0.3852, second_best=0.5201 -INFO:root:Distance ratio (best/second) = 0.7406 -{'data': {'name': 'VO VAN MINH', 'time_string': '2026-01-05 12:59:47.935829', 'status': 'check in', 'created_at': '2026-01-05T05:59:47.000000Z', 'user_id': 11, 'updated_at': '2026-01-05T05:59:47.000000Z', 'id': 19711}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:43718 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:43728 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5131 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5290 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5089 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5346 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4944 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5406 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.3499 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.4841 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5241 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5899 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5322 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5712 -INFO:root:Best student 7 dist=0.3499, second_best=0.4841 -INFO:root:Distance ratio (best/second) = 0.7229 -{'data': {'name': 'NGUYEN TRUNG THAT', 'time_string': '2026-01-05 13:01:19.952439', 'status': 'check in', 'created_at': '2026-01-05T06:01:19.000000Z', 'user_id': 9, 'updated_at': '2026-01-05T06:01:20.000000Z', 'id': 19712}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:57666 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:51022 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:35380 - "GET / HTTP/1.1" 200 OK -INFO: 172.16.6.38:35392 - "GET /static/assets/index-CDZdzCu6.css HTTP/1.1" 304 Not Modified -INFO: 172.16.6.38:35404 - "GET /static/assets/index-DW_Nku2j.js HTTP/1.1" 304 Not Modified -INFO: 172.16.6.38:35420 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:35406 - "GET /users HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.6540 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.6220 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5789 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5024 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5396 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5291 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.6182 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5507 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.6231 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.2016 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4723 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5292 -INFO:root:Best student 10 dist=0.2016, second_best=0.4723 -INFO:root:Distance ratio (best/second) = 0.4269 -{'data': {'name': 'TON GIA KHANH', 'time_string': '2026-01-05 13:19:26.358172', 'status': 'check in', 'created_at': '2026-01-05T06:19:26.000000Z', 'user_id': 12, 'updated_at': '2026-01-05T06:19:26.000000Z', 'id': 19713}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:35428 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:35436 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.3168 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.6563 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5232 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.6434 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.6249 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.6005 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5773 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5714 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.6869 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.6506 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5679 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.6331 -INFO:root:Best student 1 dist=0.3168, second_best=0.5232 -INFO:root:Distance ratio (best/second) = 0.6056 -{'data': {'name': 'PHAN QUOC BAO', 'time_string': '2026-01-05 16:32:22.664281', 'status': 'check out', 'created_at': '2026-01-05T09:32:22.000000Z', 'user_id': 2, 'updated_at': '2026-01-05T09:32:22.000000Z', 'id': 19714}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:47838 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:47854 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:50240 - "GET / HTTP/1.1" 200 OK -INFO: 172.16.6.38:50256 - "GET /static/assets/index-DW_Nku2j.js HTTP/1.1" 304 Not Modified -INFO: 172.16.6.38:50262 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:50260 - "GET /users HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.6423 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.4931 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.4667 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4564 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4522 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.2601 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5856 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.4405 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5041 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5305 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.3803 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.4908 -INFO:root:Best student 6 dist=0.2601, second_best=0.3803 -INFO:root:Distance ratio (best/second) = 0.6841 -{'data': {'name': 'HUYNH THI HONG GAM', 'time_string': '2026-01-05 16:37:51.456250', 'status': 'check out', 'created_at': '2026-01-05T09:37:51.000000Z', 'user_id': 8, 'updated_at': '2026-01-05T09:37:51.000000Z', 'id': 19715}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:60450 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:60466 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5527 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.4774 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5435 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.2103 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4696 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5078 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5344 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5120 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5667 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.4766 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4800 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.4914 -INFO:root:Best student 4 dist=0.2103, second_best=0.4696 -INFO:root:Distance ratio (best/second) = 0.4479 -{'data': {'name': 'NGUYEN VO TINH', 'time_string': '2026-01-05 16:38:38.720265', 'status': 'check out', 'created_at': '2026-01-05T09:38:38.000000Z', 'user_id': 6, 'updated_at': '2026-01-05T09:38:38.000000Z', 'id': 19716}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:57630 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:57642 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5873 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5924 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.6180 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4871 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.2182 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4361 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5025 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5469 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5849 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.4885 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4624 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.4695 -INFO:root:Best student 5 dist=0.2182, second_best=0.4361 -INFO:root:Distance ratio (best/second) = 0.5004 -{'data': {'name': 'DANG TRUNG KIEN', 'time_string': '2026-01-05 16:38:47.856130', 'status': 'check out', 'created_at': '2026-01-05T09:38:47.000000Z', 'user_id': 7, 'updated_at': '2026-01-05T09:38:47.000000Z', 'id': 19717}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:36128 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:36132 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5081 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5076 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.4957 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4454 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4002 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.3957 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5654 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.4662 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.4441 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.4364 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.2286 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.4586 -INFO:root:Best student 11 dist=0.2286, second_best=0.3957 -INFO:root:Distance ratio (best/second) = 0.5777 -{'data': {'name': 'PHAM NHUT KHANG', 'time_string': '2026-01-05 16:39:06.092855', 'status': 'check out', 'created_at': '2026-01-05T09:39:06.000000Z', 'user_id': 15, 'updated_at': '2026-01-05T09:39:06.000000Z', 'id': 19718}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:37980 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:37992 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:49508 - "POST /checkin HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.6646 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.6052 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5785 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4869 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5619 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5660 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.6239 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5786 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.6393 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.2542 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4943 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5389 -INFO:root:Best student 10 dist=0.2542, second_best=0.4869 -INFO:root:Distance ratio (best/second) = 0.5220 -{'data': {'name': 'TON GIA KHANH', 'time_string': '2026-01-05 16:48:52.793460', 'status': 'check out', 'created_at': '2026-01-05T09:48:52.000000Z', 'user_id': 12, 'updated_at': '2026-01-05T09:48:52.000000Z', 'id': 19720}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:39040 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:39052 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5585 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5258 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.2517 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5283 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5572 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5575 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5618 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.4956 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.6173 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5612 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5174 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5215 -INFO:root:Best student 3 dist=0.2517, second_best=0.4956 -INFO:root:Distance ratio (best/second) = 0.5079 -{'data': {'name': 'VO MINH TRUONG', 'time_string': '2026-01-05 16:57:55.972057', 'status': 'check out', 'created_at': '2026-01-05T09:57:56.000000Z', 'user_id': 4, 'updated_at': '2026-01-05T09:57:56.000000Z', 'id': 19721}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:47870 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:47886 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.6182 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5553 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5856 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5774 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5414 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4900 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5875 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5293 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.2444 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.6206 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5249 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.6130 -INFO:root:Best student 9 dist=0.2444, second_best=0.4900 -INFO:root:Distance ratio (best/second) = 0.4989 -{'data': {'name': 'VO VAN MINH', 'time_string': '2026-01-05 17:00:01.128305', 'status': 'check out', 'created_at': '2026-01-05T10:00:01.000000Z', 'user_id': 11, 'updated_at': '2026-01-05T10:00:01.000000Z', 'id': 19722}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:54872 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:54874 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5564 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.6421 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.6009 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5344 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5334 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.6130 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.3241 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5554 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.6232 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.6396 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5699 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.6137 -INFO:root:Best student 7 dist=0.3241, second_best=0.5334 -INFO:root:Distance ratio (best/second) = 0.6077 -{'data': {'name': 'NGUYEN TRUNG THAT', 'time_string': '2026-01-05 17:06:23.951399', 'status': 'check out', 'created_at': '2026-01-05T10:06:23.000000Z', 'user_id': 9, 'updated_at': '2026-01-05T10:06:24.000000Z', 'id': 19723}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:60412 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:60422 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:34778 - "POST /checkin HTTP/1.1" 500 Internal Server Error -ERROR: Exception in ASGI application -Traceback (most recent call last): - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/connections.py", line 813, in _write_bytes - self._sock.sendall(data) -ConnectionResetError: [Errno 104] Connection reset by peer - -During handling of the above exception, another exception occurred: - -Traceback (most recent call last): - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1967, in _exec_single_context - self.dialect.do_execute( - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/default.py", line 952, in do_execute - cursor.execute(statement, parameters) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/cursors.py", line 153, in execute - result = self._query(query) - ^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/cursors.py", line 322, in _query - conn.query(q) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/connections.py", line 574, in query - self._execute_command(COMMAND.COM_QUERY, sql) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/connections.py", line 865, in _execute_command - self._write_bytes(packet) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/connections.py", line 816, in _write_bytes - raise err.OperationalError( -pymysql.err.OperationalError: (2006, "MySQL server has gone away (ConnectionResetError(104, 'Connection reset by peer'))") - -The above exception was the direct cause of the following exception: - -Traceback (most recent call last): - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/uvicorn/protocols/http/h11_impl.py", line 403, in run_asgi - result = await app( # type: ignore[func-returns-value] - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/uvicorn/middleware/proxy_headers.py", line 60, in __call__ - return await self.app(scope, receive, send) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/fastapi/applications.py", line 1139, in __call__ - await super().__call__(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/applications.py", line 107, in __call__ - await self.middleware_stack(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/middleware/errors.py", line 186, in __call__ - raise exc - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/middleware/errors.py", line 164, in __call__ - await self.app(scope, receive, _send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/middleware/cors.py", line 93, in __call__ - await self.simple_response(scope, receive, send, request_headers=headers) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/middleware/cors.py", line 144, in simple_response - await self.app(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 63, in __call__ - await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app - raise exc - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app - await app(scope, receive, sender) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/fastapi/middleware/asyncexitstack.py", line 18, in __call__ - await self.app(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/routing.py", line 716, in __call__ - await self.middleware_stack(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/routing.py", line 736, in app - await route.handle(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/routing.py", line 290, in handle - await self.app(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/fastapi/routing.py", line 120, in app - await wrap_app_handling_exceptions(app, request)(scope, receive, send) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app - raise exc - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app - await app(scope, receive, sender) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/fastapi/routing.py", line 106, in app - response = await f(request) - ^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/fastapi/routing.py", line 430, in app - raw_response = await run_endpoint_function( - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/fastapi/routing.py", line 316, in run_endpoint_function - return await dependant.call(**values) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/main.py", line 220, in checkin - rows = db.execute( - ^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/orm/session.py", line 2351, in execute - return self._execute_internal( - ^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/orm/session.py", line 2258, in _execute_internal - result = conn.execute( - ^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1419, in execute - return meth( - ^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/sql/elements.py", line 527, in _execute_on_connection - return connection._execute_clauseelement( - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1641, in _execute_clauseelement - ret = self._execute_context( - ^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1846, in _execute_context - return self._exec_single_context( - ^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1986, in _exec_single_context - self._handle_dbapi_exception( - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 2363, in _handle_dbapi_exception - raise sqlalchemy_exception.with_traceback(exc_info[2]) from e - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1967, in _exec_single_context - self.dialect.do_execute( - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/sqlalchemy/engine/default.py", line 952, in do_execute - cursor.execute(statement, parameters) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/cursors.py", line 153, in execute - result = self._query(query) - ^^^^^^^^^^^^^^^^^^ - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/cursors.py", line 322, in _query - conn.query(q) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/connections.py", line 574, in query - self._execute_command(COMMAND.COM_QUERY, sql) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/connections.py", line 865, in _execute_command - self._write_bytes(packet) - File "/var/www/html/ManagementSystem/TrackingToolWeb/venv/lib/python3.11/site-packages/pymysql/connections.py", line 816, in _write_bytes - raise err.OperationalError( -sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (2006, "MySQL server has gone away (ConnectionResetError(104, 'Connection reset by peer'))") -[SQL: - SELECT s.id AS student_id, s.name AS student_name, se.encoding AS encoding_blob - FROM student_encodings se - JOIN students s ON s.id = se.student_id - ] -(Background on this error at: https://sqlalche.me/e/20/e3q8) -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.6645 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5940 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5749 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4858 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5225 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5175 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5968 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5554 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5629 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.1969 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4548 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5382 -INFO:root:Best student 10 dist=0.1969, second_best=0.4548 -INFO:root:Distance ratio (best/second) = 0.4329 -{'data': {'name': 'TON GIA KHANH', 'time_string': '2026-01-06 06:58:05.118868', 'status': 'check in', 'created_at': '2026-01-05T23:58:05.000000Z', 'user_id': 12, 'updated_at': '2026-01-05T23:58:05.000000Z', 'id': 19724}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:34786 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:34792 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5399 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.4892 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5298 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4743 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4222 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.3501 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5174 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.3192 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.4550 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5181 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4327 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.4983 -INFO:root:Best student 8 dist=0.3192, second_best=0.3501 -INFO:root:Distance ratio (best/second) = 0.9118 -INFO:root:No confident match: ratio not confident (0.3192/0.3501) -INFO: 172.16.6.38:42144 - "POST /checkin HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5182 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.4622 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5140 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5412 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4744 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4678 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.4963 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.3288 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.4536 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5763 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5094 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5522 -INFO:root:Best student 8 dist=0.3288, second_best=0.4536 -INFO:root:Distance ratio (best/second) = 0.7249 -{'data': {'name': 'LE TAN LUAN', 'time_string': '2026-01-06 07:09:06.344931', 'status': 'check in', 'created_at': '2026-01-06T00:09:06.000000Z', 'user_id': 10, 'updated_at': '2026-01-06T00:09:06.000000Z', 'id': 19725}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:37068 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:37074 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5009 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.4752 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.4688 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4727 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4074 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4236 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5734 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.4965 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.4898 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.3958 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.2999 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.4471 -INFO:root:Best student 11 dist=0.2999, second_best=0.3958 -INFO:root:Distance ratio (best/second) = 0.7578 -{'data': {'name': 'PHAM NHUT KHANG', 'time_string': '2026-01-06 07:10:21.507332', 'status': 'check in', 'created_at': '2026-01-06T00:10:21.000000Z', 'user_id': 15, 'updated_at': '2026-01-06T00:10:21.000000Z', 'id': 19726}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:51086 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:51094 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:46324 - "POST /checkin HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5579 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.4832 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5089 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.2647 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4654 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4911 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.4867 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5023 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5235 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.4756 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4956 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.4718 -INFO:root:Best student 4 dist=0.2647, second_best=0.4654 -INFO:root:Distance ratio (best/second) = 0.5687 -{'data': {'name': 'NGUYEN VO TINH', 'time_string': '2026-01-06 07:21:31.902472', 'status': 'check in', 'created_at': '2026-01-06T00:21:31.000000Z', 'user_id': 6, 'updated_at': '2026-01-06T00:21:31.000000Z', 'id': 19727}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:48488 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:48498 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:56846 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:56830 - "GET /users HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5470 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5154 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5008 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5181 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4790 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5128 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.3498 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.4942 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5295 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5690 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5244 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5597 -INFO:root:Best student 7 dist=0.3498, second_best=0.4790 -INFO:root:Distance ratio (best/second) = 0.7301 -{'data': {'name': 'NGUYEN TRUNG THAT', 'time_string': '2026-01-06 07:22:04.962187', 'status': 'check in', 'created_at': '2026-01-06T00:22:04.000000Z', 'user_id': 9, 'updated_at': '2026-01-06T00:22:05.000000Z', 'id': 19728}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:60150 - "POST /checkin HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5674 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5475 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5765 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4876 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4027 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.2781 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5558 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.4517 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5001 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5383 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.3779 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5143 -INFO:root:Best student 6 dist=0.2781, second_best=0.3779 -INFO:root:Distance ratio (best/second) = 0.7360 -{'data': {'name': 'HUYNH THI HONG GAM', 'time_string': '2026-01-06 07:22:06.554360', 'status': 'check in', 'created_at': '2026-01-06T00:22:06.000000Z', 'user_id': 8, 'updated_at': '2026-01-06T00:22:06.000000Z', 'id': 19729}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:60156 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:60162 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:60174 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.2853 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.6485 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.6001 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.6309 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.6390 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.6556 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5387 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.6225 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.6758 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.6989 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.6102 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.6732 -INFO:root:Best student 1 dist=0.2853, second_best=0.5387 -INFO:root:Distance ratio (best/second) = 0.5297 -{'data': {'name': 'PHAN QUOC BAO', 'time_string': '2026-01-06 07:24:38.891515', 'status': 'check in', 'created_at': '2026-01-06T00:24:38.000000Z', 'user_id': 2, 'updated_at': '2026-01-06T00:24:38.000000Z', 'id': 19730}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:42128 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:42132 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5534 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5725 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.6221 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4918 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.2406 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4619 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.4772 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5504 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5476 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5042 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4556 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.4942 -INFO:root:Best student 5 dist=0.2406, second_best=0.4556 -INFO:root:Distance ratio (best/second) = 0.5281 -{'data': {'name': 'DANG TRUNG KIEN', 'time_string': '2026-01-06 07:25:42.447925', 'status': 'check in', 'created_at': '2026-01-06T00:25:42.000000Z', 'user_id': 7, 'updated_at': '2026-01-06T00:25:42.000000Z', 'id': 19731}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:51320 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:51322 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5297 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5388 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.4934 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4611 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4725 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4840 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5702 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5219 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.6075 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.4924 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4699 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.3030 -INFO:root:Best student 12 dist=0.3030, second_best=0.4611 -INFO:root:Distance ratio (best/second) = 0.6571 -{'data': {'name': 'NGUYEN HOANG VI', 'time_string': '2026-01-06 07:26:53.678145', 'status': 'check in', 'created_at': '2026-01-06T00:26:53.000000Z', 'user_id': 16, 'updated_at': '2026-01-06T00:26:53.000000Z', 'id': 19732}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:42926 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:42934 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5620 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.4951 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5580 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.6029 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5456 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4680 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5308 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.4988 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.3455 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.6397 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5411 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5884 -INFO:root:Best student 9 dist=0.3455, second_best=0.4680 -INFO:root:Distance ratio (best/second) = 0.7383 -{'data': {'name': 'VO VAN MINH', 'time_string': '2026-01-06 07:36:22.343519', 'status': 'check in', 'created_at': '2026-01-06T00:36:22.000000Z', 'user_id': 11, 'updated_at': '2026-01-06T00:36:22.000000Z', 'id': 19733}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:40886 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:40902 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:49346 - "POST /checkin HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5873 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.6293 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.4151 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5575 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.6711 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.6544 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.6222 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5977 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.7105 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.6807 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5874 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5419 -INFO:root:Best student 3 dist=0.4151, second_best=0.5419 -INFO:root:Distance ratio (best/second) = 0.7660 -{'data': {'name': 'VO MINH TRUONG', 'time_string': '2026-01-06 07:36:43.327424', 'status': 'check in', 'created_at': '2026-01-06T00:36:43.000000Z', 'user_id': 4, 'updated_at': '2026-01-06T00:36:43.000000Z', 'id': 19734}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:52536 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:52552 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5671 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.2777 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5379 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.4734 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5034 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5348 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5803 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.4641 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5151 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5593 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5199 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5097 -INFO:root:Best student 2 dist=0.2777, second_best=0.4641 -INFO:root:Distance ratio (best/second) = 0.5984 -{'data': {'name': 'PHAM VAN HUYNH', 'time_string': '2026-01-06 07:38:10.129104', 'status': 'check in', 'created_at': '2026-01-06T00:38:10.000000Z', 'user_id': 3, 'updated_at': '2026-01-06T00:38:10.000000Z', 'id': 19735}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:50798 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:44026 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.6098 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5162 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5642 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5379 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.4967 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4644 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.5943 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5100 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.2075 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5693 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.4839 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5176 -INFO:root:Best student 9 dist=0.2075, second_best=0.4644 -INFO:root:Distance ratio (best/second) = 0.4468 -{'data': {'name': 'VO VAN MINH', 'time_string': '2026-01-06 11:31:47.323546', 'status': 'check out', 'created_at': '2026-01-06T04:31:47.000000Z', 'user_id': 11, 'updated_at': '2026-01-06T04:31:47.000000Z', 'id': 19736}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:51464 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:51478 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5483 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5498 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5404 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5644 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5713 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.6079 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.3894 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5757 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5818 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.6730 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5972 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5642 -INFO:root:Best student 7 dist=0.3894, second_best=0.5404 -INFO:root:Distance ratio (best/second) = 0.7206 -{'data': {'name': 'NGUYEN TRUNG THAT', 'time_string': '2026-01-06 11:31:57.735107', 'status': 'check out', 'created_at': '2026-01-06T04:31:57.000000Z', 'user_id': 9, 'updated_at': '2026-01-06T04:31:57.000000Z', 'id': 19737}, 'check_status': 'check out', 'status': True} -INFO: 172.16.6.38:58090 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:58100 - "GET /logs HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5999 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5709 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5874 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5884 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5785 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.6080 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.4448 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5554 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.6136 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5965 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.6005 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.6089 -INFO:root:Best student 7 dist=0.4448, second_best=0.5554 -INFO:root:Distance ratio (best/second) = 0.8010 -INFO:root:No confident match: best_distance(0.4448) > threshold(0.42) -INFO: 172.16.6.38:56944 - "POST /checkin HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.5511 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.5652 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5716 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5193 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5086 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.5745 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.3245 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.4656 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.5266 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5676 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5554 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5694 -INFO:root:Best student 7 dist=0.3245, second_best=0.4656 -INFO:root:Distance ratio (best/second) = 0.6970 -{'data': {'name': 'NGUYEN TRUNG THAT', 'time_string': '2026-01-06 13:00:52.106751', 'status': 'check in', 'created_at': '2026-01-06T06:00:52.000000Z', 'user_id': 9, 'updated_at': '2026-01-06T06:00:52.000000Z', 'id': 19738}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:45484 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:45490 - "GET /logs HTTP/1.1" 200 OK -INFO: 172.16.6.38:33802 - "POST /checkin HTTP/1.1" 200 OK -INFO:root:Student 1 (PHAN QUOC BAO) min_dist = 0.6257 -INFO:root:Student 2 (PHAM VAN HUYNH) min_dist = 0.4944 -INFO:root:Student 3 (VO MINH TRUONG) min_dist = 0.5518 -INFO:root:Student 4 (NGUYEN VO TINH) min_dist = 0.5266 -INFO:root:Student 5 (DANG TRUNG KIEN) min_dist = 0.5143 -INFO:root:Student 6 (HUYNH THI HONG GAM) min_dist = 0.4607 -INFO:root:Student 7 (NGUYEN TRUNG THAT) min_dist = 0.6056 -INFO:root:Student 8 (LE TAN LUAN) min_dist = 0.5018 -INFO:root:Student 9 (VO VAN MINH) min_dist = 0.2318 -INFO:root:Student 10 (TON GIA KHANH) min_dist = 0.5735 -INFO:root:Student 11 (PHAM NHUT KHANG) min_dist = 0.5015 -INFO:root:Student 12 (NGUYEN HOANG VI) min_dist = 0.5657 -INFO:root:Best student 9 dist=0.2318, second_best=0.4607 -INFO:root:Distance ratio (best/second) = 0.5032 -{'data': {'name': 'VO VAN MINH', 'time_string': '2026-01-06 13:01:04.255655', 'status': 'check in', 'created_at': '2026-01-06T06:01:04.000000Z', 'user_id': 11, 'updated_at': '2026-01-06T06:01:04.000000Z', 'id': 19739}, 'check_status': 'check in', 'status': True} -INFO: 172.16.6.38:33808 - "POST /checkin HTTP/1.1" 200 OK -INFO: 172.16.6.38:33814 - "GET /logs HTTP/1.1" 200 OK +INFO: 172.16.6.38:57742 - "GET / HTTP/1.1" 200 OK +INFO: 172.16.6.38:57748 - "GET /static/assets/index-CDZdzCu6.css HTTP/1.1" 304 Not Modified +INFO: 172.16.6.38:57764 - "GET /static/assets/index-DW_Nku2j.js HTTP/1.1" 304 Not Modified +INFO: 172.16.6.38:57790 - "GET /logs HTTP/1.1" 200 OK +INFO: 172.16.6.38:57776 - "GET /users HTTP/1.1" 200 OK