ManagementSystem/TrackingToolWeb/log.log

6307 lines
429 KiB
Plaintext

nohup: ignoring input
INFO: Started server process [17100]
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