Khách quét QR trên kiosk, chọn khung và chỉnh ảnh trên điện thoại, bấm Print thì kiosk in ngay một bản; muốn thêm bản thì chạm ảnh của mình ở kiosk. Sổ tay này dành cho KTV tại sự kiện: setup, vận hành, theo dõi, sự cố.
Ảnh minh họa chụp với sự kiện Halloween của Client Jose Cuervo.
1. Việc của KTV và thứ cần có
Kiosk — PC Windows màn cảm ứng, Chrome kiosk mode, màn dọc hoặc ngang. Luôn hiện QR cỡ lớn; nơi khách chạm ảnh để in thêm.
Điện thoại khách — trang s.fotokio.com, không cài app. Mở bằng QR hoặc gõ mã 3 ký tự.
Print-agent — chạy ngầm trên PC kiosk, nhận lệnh in và báo máy in, giấy mỗi 60 giây.
Console — app.fotokio.com, mở được trên điện thoại. Sự kiện, khung, màn hình, kiosk, báo cáo, sức khỏe.
Môi trường thử có tiền tố demo-: dùng để tập, không tính vào báo cáo thật.
Thứ cần có
Lấy ở đâu
Tài khoản Console
Nút "Đăng nhập Google" với email được cấp. Báo "Email này chưa được cấp quyền": nhờ Admin cấp.
PIN cá nhân (4–8 số)
Tự đặt ở Console → Tài khoản (mục 2.1). Chưa có PIN thì không được gán kiosk.
Điện thoại đăng nhập sẵn Console
Để quét QR mở khóa nhân viên tại kiosk (mục 4.1).
Mã kiosk (ví dụ K001)
Tự tạo ở Console → Kiosk. Khóa kiosk không hiện cho người; chỉ có mã cài đặt một lần.
Gói print-agent
GitHub Actions → lần chạy CI gần nhất trên main → artifact print-agent-<sha>. Chưa có thì nhờ Admin.
KTV tự làm
Tạo sự kiện, chọn Client, khung ảnh, 4 màn hình, kiosk, mã cài đặt, máy in, PIN.
Phải nhờ Admin
Cấp email, "Xoay khóa" kiosk, hạn mức dịch vụ, gán sự kiện cho người khác.
2. Setup
2.1 Tài khoản và PIN cá nhân
Mở app.fotokio.com → Đăng nhập Google bằng email được cấp.
Menu Tài khoản → nhập PIN 4–8 chữ số → Lưu PIN. PIN chỉ của bạn; quên thì đặt PIN mới ở đây.
Tại kiosk, giữ góc trên trái 3 giây rồi nhập PIN. Sai 5 lần liên tiếp thì bạn bị khóa 2 phút ở kiosk đó (lần sau gấp đôi, tối đa 15 phút); KTV khác vẫn dùng được.
2.2 Tạo sự kiện và chọn Client
Console → Sự kiện → tạo sự kiện: tên, giờ bắt đầu / kết thúc, trạng thái live.
Tab Quyền truy cập → chọn Client đặt dịch vụ → Lưu Client. Không thấy Client cần chọn: nhờ Admin.
Ô Số bản tối đa mỗi ảnh (N, mặc định 2) tính cả bản tự in khi Print. Đặt 1 để tắt in thêm; kiosk và điện thoại cập nhật trong 30 giây.
Tab Kiosk của sự kiện: gán đúng mã kiosk sẽ dùng. Cột trạng thái cho biết kiosk, print-agent, máy in, giấy.
2.3 Khung ảnh
Tab Template: mỗi khung có nền PNG trong suốt ở ô ảnh và các ô.
Mở khung trong trình sửa, kéo-thả ô cho khớp. Hết cảnh báo thì bấm Lưu.
Tổng quan → Kiểm tra ngay có dòng "Render thử" cho từng khung. ✓ là khung dựng được.
2.4 Bốn màn hình: màn chính, trang chào điện thoại, hàng chờ, hoàn thành
Tab Màn hình kiosk: chọn một trong 4 màn, đặt tiêu đề, nền, logo, màu chữ, màu nhấn. Xem trước ngay bên phải.
Màn Trang chào điện thoại có ảnh nền, logo, tên chương trình và nút Bắt đầu. Khách thấy ở phiên mới.
Hiện "Tương phản thấp" ở ô màu nhấn: đổi màu khác, nếu không nút trên kiosk khó thấy. Vẫn lưu được.
Bấm Lưu: kiosk nhận thay đổi trong 30 giây.
2.5 Tạo kiosk và mã cài đặt
Console → Kiosk & máy in → tạo kiosk (K001, K002...): máy in, khổ giấy 4x6, thời gian chờ. In tự động luôn bật; số bản đặt theo sự kiện.
Bấm Tạo mã cài đặt: 8 ký tự, dùng một lần, hết hạn sau 15 phút. Tạo ngay trước khi cài.
Gán kiosk vào sự kiện ở tab Kiosk của sự kiện.
2.6 Cài PC kiosk bằng install.ps1
Cài Node.js 22+ và driver máy in, in thử một trang từ Windows, giải nén gói print-agent. Mở PowerShell quyền Administrator trong thư mục gói, chạy lệnh dưới (hỏi mã cài đặt, hoặc thêm -InstallCode <mã>).
Chạy script trước, mở trang kiosk sau. Chrome tự lấy khóa từ print-agent trong 10 phút đầu; quá 10 phút thì khởi động lại tác vụ "Fotokio Print Agent" rồi mở lại trang.
Hiện màn Cài đặt kiosk (chỉ khi không tự lấy được khóa): nhập mã kiosk và mã cài đặt mới. Đừng nhập mã khác sau khi script đã đổi mã, print-agent sẽ mất khóa.
Báo "Ma da dung hoac het han" hoặc "Sai ma kiosk": tạo mã mới, kiểm tra -KioskCode và -Env (demo / prod).
2.7 Máy in
Tên trong -PrinterName đúng như Windows → Printers; đủ giấy và ribbon 4x6, không kẹt, cáp USB chắc. Không thấy máy in thì script bật máy in ảo (ảnh ra C:\Fotokio\prints), chỉ để thử.
In thật cần PRINT_DRY_RUN=0 trong print-agent.env. In thử một vòng đầy đủ (mục 5.1) trước giờ mở.
2.8 Kiosk ngang 16:9
Tại kiosk giữ góc trên trái 3 giây, nhập PIN, chọn Hướng màn hình = Ngang (hoặc Tự động / Dọc). Lựa chọn lưu riêng trên từng PC.
Console → Màn hình kiosk: mỗi màn (chính, hàng chờ, hoàn thành) có ô Nền ngang (16:9). Tải ảnh 1920×1080; chưa có thì kiosk dùng nền dọc.
Nút Dọc / Ngang cạnh khung xem trước để kiểm cả hai hướng.
Kiosk ngang: QR bên trái, câu chào và nút In thêm bên phải.
Kiosk: màn chính. Luôn hiện QR cỡ lớn, mã 3 ký tự dự phòng và câu chào. Khách không phải chạm gì.
Khách quét QR. Kiosk đổi sang QR mới trong 1 giây; không ai quét thì 2 phút tự đổi. Không quét được thì gõ mã 3 ký tự ở s.fotokio.com.
Điện thoại: trang chào theo bộ nhận diện sự kiện, nút Bắt đầu. Không bấm trong 2 phút thì phiên hủy, khách quét lại QR.
Chọn khung và ảnh. Chạm từng ô chọn ảnh, rồi xoay, phóng, kéo căn. Sự kiện chỉ có một khung thì bỏ qua bước chọn khung.
Xong (bật khi đủ ảnh) hiện thành phẩm với Tải về và Print. Chưa Print thì vẫn chỉnh lại được.
Print: kiosk tự in một bản (xếp hàng nếu máy đang in) và hiện "Đang in ảnh của bạn". Nút Print khóa.
In thêm: khách mở hàng chờ, chạm ảnh mình, bấm In. Mỗi ảnh tối đa N bản (mục 2.2), hết thì kiosk báo "Nhờ nhân viên".
Hoàn thành 10 giây rồi về màn chính; hàng chờ 3 phút không chạm cũng về màn chính.
3.2 Việc của KTV trong giờ chạy
Đứng gần kiosk 15 phút đầu; nhắc khách bấm "Print" sẽ tự in một bản.
Theo dõi giấy và ribbon, đổi khi máy in báo.
Mở Console trên điện thoại: tab Kiosk, Tổng quan, Sức khỏe (mục 5).
Không tắt Chrome hay PC. Cần thao tác Windows thì thoát kiosk bằng PIN (mục 6.11).
4. Hỗ trợ khách
Mỗi bước dưới đây là một tình huống khách hay gặp và cách xử lý.
"Không quét được QR". Bảo khách mở s.fotokio.com và gõ mã 3 ký tự dưới QR (không phân biệt hoa thường). Gõ sai nhiều lần liên tục trên cả sự kiện thì tạm chỉ nhận QR.
"QR đổi mất rồi" / "Mã này đã được dùng". QR và mã chỉ dùng một lần. Bảo khách quét QR đang hiện trên kiosk; ảnh chụp QR gửi người khác không vào được.
"Chưa kịp bấm Bắt đầu, báo hủy". Quá 2 phút không bấm Bắt đầu thì phiên hủy. Khách quét lại QR, không mất gì.
"Nút Xong bị mờ". Còn ô bắt buộc chưa có ảnh (dòng "Còn N ô chưa có ảnh" ngay trên nút). Chạm ô trống để thêm ảnh.
"Muốn lưu ảnh về máy". Bấm Tải về ở màn thành phẩm, dùng được cả trước và sau Print, trong 30 ngày. Không tải được thì bấm lại để lấy link mới.
"Print rồi mà chưa ra ảnh". Kiosk có "Đang in ảnh của bạn" là đang xếp hàng; mất mạng hoặc print-agent tắt thì lệnh giữ tối đa 15 phút. Quá 15 phút khách phải nhờ nhân viên in lại (mục 4.1).
"Muốn in thêm". Khách mở hàng chờ, chạm ảnh mình, bấm In. Mỗi ảnh tối đa N bản; hết lượt thì KTV in qua Nhân viên (không giới hạn).
"Không thấy ảnh mình trong hàng chờ". Hàng chờ chỉ có ảnh đã Print: bảo khách bấm Print trên điện thoại. Xem mục 6.7.
"Muốn sửa ảnh sau khi Print". Chưa Print: bấm Chỉnh lại. Đã Print: làm phiên mới bằng cách quét QR lại; ảnh cũ vẫn Tải về được.
"Link báo phiên hết hạn". Phiên chỉ sống trong trình duyệt đã quét QR. Đổi trình duyệt hoặc điện thoại thì quét QR mới.
"Có người in nhầm ảnh của tôi". In thêm không cần xác thực nên có thể in nhầm. KTV mở khóa Nhân viên và xóa ảnh khỏi hàng chờ; sự kiện hay bị thì đặt N = 1 (mục 2.2).
4.1 Nhân viên mở khóa: QR Google hoặc PIN cá nhân
Chạm ảnh trong hàng chờ → Nhân viên, rồi chọn một trong hai cách mở khóa.
QR: quét bằng điện thoại đã đăng nhập Console, xác nhận trên điện thoại. Cần mạng; kiosk vào chế độ nhân viên 10 phút và hiện email của bạn.
PIN: chọn tên mình trong danh sách rồi nhập PIN cá nhân. Làm được cả khi mất mạng; danh sách chỉ có người được gán kiosk này.
Chọn số bản rồi In: không giới hạn N. Mọi lần in ghi email người làm và số bản vào nhật ký và báo cáo.
5. Theo dõi tình trạng để xử lý sớm
5.1 Checklist trước sự kiện
Console → sự kiện → Tổng quan → Kiểm tra ngay. Mọi mục phải ✓; hệ thống cũng tự chạy 24 giờ và 2 giờ trước giờ mở và báo Telegram.
Chạy thử một vòng bằng điện thoại của bạn: quét QR, Bắt đầu, đủ ảnh, Xong, Tải về, Print. Kiosk tự in một bản; ảnh in đúng khổ, không viền trắng lạ.
Chạm ảnh trong hàng chờ để in thêm một bản, rồi thử PIN cá nhân một lần ở Nhân viên.
Giấy và ribbon đủ cho cả sự kiện, có cuộn dự phòng; N đúng ý khách hàng. Kiosk về màn chính, QR quét được từ 1,5 m, lau màn hình, cất bàn phím và chuột.
Khi một dòng Kiểm tra ngay là ✗:
Mục
Làm gì
Kiosk / Print-agent trực tuyến
PC bật, Chrome kiosk mở, mạng (mục 6.2); tác vụ "Fotokio Print Agent" (mục 6.5).
Mở khung trong trình sửa, sửa cảnh báo, Lưu. Còn ✗: nhờ Admin.
Hạn mức, cơ sở dữ liệu, kho ảnh
Chạy lại sau 1 phút; vẫn ✗ thì nhờ Admin.
Có kiosk / có template
Gán kiosk (mục 2.5) hoặc tạo khung (mục 2.3).
5.2 Dấu hiệu sớm và việc làm ngay
Tab Kiosk: kiosk hoặc print-agent offline (quá 2 phút không báo nhịp tim), giấy báo không OK. Xử lý ngay khi chưa có khách xếp hàng: mục 6.2, 6.4, 6.5.
Trang Sức khỏe: thanh hạn mức vàng (60–85%) hoặc đỏ (trên 85%), dải "giảm tải", cảnh báo đang mở. Đọc dòng hành động "→" và báo Admin; tin Telegram (nhãn demo / prod) báo cùng nội dung.
Trên kiosk: dải đỏ "Mất kết nối mạng", hoặc cảnh báo "Máy in lỗi N lần liên tiếp". Xử lý theo mục 6.2 hoặc 6.4.
Trên PC kiosk: mở nhật ký in bằng Notepad: mỗi dòng một lệnh in. Nhiều dòng ok:false là in lỗi; offline:true là in lúc mất mạng.
C:\Fotokio\print-log.jsonl
5.3 Kiểm tra định kỳ trong sự kiện (mỗi 30–60 phút)
Giấy: nhìn máy in thật, ước lượng số tờ còn so với khách đang xếp hàng. Mỗi khách Print tốn ít nhất 1 tờ, tối đa N tờ.
Hàng chờ: kiosk phải hiện ảnh vừa Print. Ảnh nằm lâu không ai in thêm là bình thường.
Số bản in khớp: số bản ở Tổng quan ≈ số tờ ra khỏi máy in ≈ số dòng ok:true trong print-log.jsonl. Lệch nhiều thì kiểm tra kẹt giấy hoặc in lỗi.
Sức khỏe: kiosk và print-agent online, "lần cuối" dưới 2 phút, không có cảnh báo mới (kể cả "nhiều lệnh in của khách"), thanh hạn mức không đổi màu.
6. Xử lý sự cố
Ưu tiên: khách vẫn in được (chuyển sang Nhân viên nếu cần), tìm đúng thông báo, làm theo mục dưới. Quá 5 phút chưa hết thì giữ khách in qua Nhân viên và báo Admin kèm ảnh màn hình, mã kiosk, giờ xảy ra.
Kiosk 6.1 Hiện "Cài đặt kiosk", "Sai mã kiosk" hoặc "Khóa kiosk đã được thay"
Kiosk hỏi mã kiosk và mã cài đặt thay vì màn chính.
Console → Kiosk & máy in → Tạo mã cài đặt, rồi chạy lại install.ps1 -KioskCode ... -InstallCode <mã> và mở lại trang kiosk. Mỗi mã dùng một lần; "sai mã" thì kiểm tra mã kiosk trong URL.
Kiosk 6.2 Dải đỏ "Mất kết nối mạng"
Không tạo được QR mới; ảnh đã tải trong hàng chờ vẫn hiện.
Cắm lại dây hoặc Wi-Fi của PC; có mạng lại thì dải tự ẩn và QR mới tự hiện. Khách bấm Print lúc này được giữ tối đa 15 phút, quá thì phải nhờ nhân viên.
Kiosk 6.3 In khi mất mạng
Khách in thêm được trong giới hạn N (kiosk đếm tại máy); ảnh Print sau khi mất mạng chưa có trong máy kiosk.
KTV chạm ảnh → Nhân viên → chọn tên, nhập PIN → In; print-agent in từ ảnh đã tải sẵn và báo số lần in khi có mạng lại. Mở khóa bằng QR không dùng được lúc mất mạng.
Kiosk 6.4 "Máy in chưa phản hồi" / "Máy in báo lỗi" / "Máy in lỗi N lần liên tiếp"
Bản in tự động hoặc nút In thêm báo lỗi; sau 2 lần lỗi liên tiếp kiosk hiện dải cảnh báo.
Nạp giấy, gỡ kẹt, bật lại máy in rồi xem cột máy in ở tab Kiosk (cập nhật 60 giây). Chạm ảnh → Nhân viên → In lại; vẫn lỗi thì xóa hàng đợi in trong Windows → Printers hoặc khởi động lại PC.
Print-agent 6.5 Print-agent offline, hoặc kiosk in lỗi dù máy in bình thường
Tab Kiosk không thấy nhịp tim print-agent; Kiểm tra ngay ✗ print-agent.
Trên PC kiosk (thoát kiosk, mục 6.11): Task Scheduler → "Fotokio Print Agent" → Run, rồi chạy tay print-agent để xem lỗi. "Khóa kiosk không còn hợp lệ" nghĩa là phải cài lại bằng mã cài đặt mới (mục 6.1).
Ảnh trong hàng chờ mờ đi; N tính cả bản kiosk tự in.
KTV mở khóa Nhân viên (mục 4.1), chọn số bản, In: không giới hạn. Muốn khách tự in nhiều hơn thì tăng N ở Console (mục 2.2).
Kiosk 6.7 Khách đã bấm Print nhưng ảnh không hiện trong hàng chờ
Hàng chờ chỉ có ảnh đã Print của sự kiện.
Kiểm tra điện thoại khách có báo "Đang in tại kiosk" chưa (chưa thì bảo khách bấm lại), kiosk có mất mạng không (mục 6.2), ảnh có bị nhân viên xóa không. Rồi giữ góc trên trái 3 giây → PIN → Tải lại cấu hình.
Kiosk 6.8 Đổi màn hình hoặc khung trên Console nhưng kiosk không đổi
Bình thường kiosk cập nhật trong 30 giây.
Kiểm tra đã bấm Lưu, đúng sự kiện, kiosk không mất mạng, rồi Tải lại cấu hình (mục 6.11).
Kiosk 6.9 Kiosk tự về màn chính giữa chừng
Màn hoàn thành về màn chính sau 10 giây; hàng chờ 3 phút không chạm cũng về.
Ảnh khách vẫn ở hàng chờ: bấm "In thêm" ở màn chính là thấy lại. QR ở màn chính không bao giờ tắt.
Điện thoại 6.10 Khách thấy "Mã này đã được dùng", "Phiên hết hạn" hoặc "Đến kiosk nhờ nhân viên in"
QR đã đổi, phiên bị hủy hoặc hết hạn, hoặc lệnh Print không in được trong 15 phút.
Bảo khách quét QR mới trên kiosk. "Đến kiosk nhờ nhân viên in": KTV in qua Nhân viên (mục 4.1); khách vẫn Tải về được ảnh.
Kiosk 6.11 Thoát kiosk thao tác Windows, tải lại cấu hình
Giữ góc trên trái 3 giây → chọn tên, nhập PIN cá nhân → bảng quản trị.
Bảng có Hướng màn hình, Tải lại cấu hình, Gỡ cài đặt kiosk này, Đóng. Ra Windows: cắm bàn phím, Alt+F4; không bấm "Gỡ cài đặt kiosk này" trừ khi Admin yêu cầu.
Hệ thống tự giảm tải và báo Telegram. KTV không xử lý tại chỗ: báo Admin, tiếp tục vận hành.
Khác 6.13 Gọi Admin ngay
Cần cấp email, "Xoay khóa" kiosk, đổi hạn mức, gán người khác vào sự kiện; hoặc Kiểm tra ngay ✗ mà chạy lại không hết.
Cả sự kiện không tạo được QR dù mạng tốt cũng báo Admin, kèm giờ và mã kiosk. Quên PIN thì tự đặt lại (mục 2.1).
7. Cuối sự kiện
Console → sự kiện → Báo cáo in: tổng bản in theo kiosk / giờ, Xuất Excel. Số bản tranh cãi thì đối chiếu C:\Fotokio\print-log.jsonl.
Thư viện ảnh: tải thành phẩm, in lại từ xa nếu khách quay lại. Ảnh gốc của khách tự xóa sau 24 giờ; thành phẩm giữ 30 ngày.
Đưa kiosk về màn chính, tắt máy in trước rồi tắt PC bình thường (không gỡ cài đặt kiosk).
Ghi lại sự cố đã gặp (giờ, mã kiosk, cách xử lý) và báo Admin.
8. Rủi ro đã chấp nhận của in thêm tại kiosk
In thêm bằng cách chạm ảnh trong hàng chờ không xác thực, để khách không phải nhớ gì. Khách có thể in nhầm hoặc cố ý in ảnh người khác, một người có thể dùng hết N suất của ảnh khác, và tốn giấy hơn (tối đa N bản mỗi khách).
KTV có thể xóa ảnh khỏi hàng chờ (Nhân viên), đặt N = 1 để tắt in thêm, xem nhật ký lệnh in của khách kèm mã kiosk. Để ý cảnh báo "nhiều lệnh in của khách" (hơn 10 lệnh một phút trên một kiosk) ở trang Sức khỏe.