Tuần 13–14Cất Nóc & Deploy (B25–B28)
-
B25
Mô hình triển khai: Từ máy cá nhân lên đám mây Hiểu bản chất Server là máy chủ hoạt động 24/7. Phân biệt môi trường phát triển (Localhost) và môi trường công cộng (Internet) để thợ và chủ nhà truy cập được.
📋 Giáo án Giảng viên & Thực hành B25 (60 phút)Instructor Kit
🎯 Mục tiêu bài dạy & Kế hoạch 60 phút
⏱️ 10' Tình huống: Tắt laptop thì web trên điện thoại có mở được không? ⏱️ 25' Live Code: Kiến trúc Client-Server, Port mạng, requirements.txt ⏱️ 20' Thực hành: Đóng gói danh mục thư viện phụ thuộc ⏱️ 5' Nghiệm thu & Giải đápMục tiêu: Học viên hiểu đường đi từ code Python trên máy tính → GitHub Repository → Cloud Server → Màn hình điện thoại; tạo file
requirements.txtchuẩn.💡 Bẫy lỗi thường gặp & Mẹo sư phạm
- Thiếu file requirements.txt: Server không biết máy học viên cài những thư viện gì nếu không có file này. Giảng viên hướng dẫn: "File requirements.txt giống như bảng kê vật liệu gửi cho nhà máy".
🛠️ Bài tập thực hành tại lớp
Bài 1 (Cơ bản): Tạo filerequirements.txtchứa các thư viện cần thiết:streamlit,pandas.Bài 2 (Thực chiến nâng cao): Dùng lệnh Terminalpip freeze > requirements.txtđể tự động xuất phiên bản chính xác các gói thư viện đang cài đặt.Cấu hình triển khai · File chuẩn B25requirements.txt# BUỔI 25: FILE DANH MỤC THƯ VIỆN BẮT BUỘC KHI DEPLOY streamlit>=1.28.0 pandas>=2.0.0 # Lưu ý: sqlite3 đã tích hợp sẵn trong Python, không cần khai báo
# Kiểm tra danh mục cài đặt trong Terminal: pip install -r requirements.txt ✅ Môi trường sẵn sàng cho việc xuất bản lên Server! -
B26
Làm quen Ubuntu VPS & Dòng lệnh Linux cơ bản Làm quen với hệ điều hành máy chủ phổ biến nhất thế giới: Các lệnh sống còn
ssh,ls,cd, quản lý tiến trình nền và giữ bí mật thông tin tài khoản.📋 Giáo án Giảng viên & Thực hành B26 (60 phút)Instructor Kit
🎯 Mục tiêu bài dạy & Kế hoạch 60 phút
⏱️ 10' Tình huống: Thuê máy chủ đám mây giá rẻ 5$/tháng ⏱️ 25' Live Code: Lệnh Linux SSH, mkdir, git clone, chạy nền nohup / tmux ⏱️ 20' Thực hành: Viết kịch bản tự động khởi chạy app ⏱️ 5' Nghiệm thu & Lưu ý bảo mậtMục tiêu: Học viên không sợ màn hình đen của Linux; biết cách kết nối SSH và chạy ứng dụng Streamlit ở chế độ nền (background process).
💡 Bẫy lỗi thường gặp & Mẹo sư phạm
- Tắt cửa sổ SSH làm tắt luôn App: Nếu chạy
streamlit run app.pythông thường, khi đóng cửa sổ terminal thì app cũng chết theo! Dạy lệnhnohup streamlit run app.py &hoặc dùngtmuxđể giữ app luôn sống.
🛠️ Bài tập thực hành tại lớp
Bài 1 (Cơ bản): Viết kịch bản dòng lệnh Linux tải mã nguồn từ GitHub về thư mục/var/www/remodeling-crm.Bài 2 (Thực chiến nâng cao): Viết lệnh mở cổng mạng firewall (UFW) cho cổng8501:sudo ufw allow 8501.Bash Shell · Kịch bản chạy trên máy chủ VPS B26deploy_vps.sh#!/bin/bash # BUỔI 26: KỊCH BẢN TỰ ĐỘNG CHUẨN BỊ MÁY CHỦ UBUNTU echo "=== BẮT ĐẦU THIẾT LẬP MÁY CHỦ REMODELING CRM ===" # 1. Cập nhật hệ điều hành sudo apt update && sudo apt upgrade -y # 2. Cài đặt Python và Pip sudo apt install -y python3-pip python3-venv git # 3. Tạo môi trường ảo và cài đặt thư viện python3 -m venv venv source venv/bin/activate pip install -r requirements.txt # 4. Mở cổng mạng tường lửa cho Streamlit sudo ufw allow 8501/tcp # 5. Khởi động app chạy nền độc lập nohup streamlit run mini_crm_app.py --server.port 8501 --server.address 0.0.0.0 > app.log 2>&1 & echo "✅ App đang chạy nền tại cổng 8501! Kiểm tra nhật ký: tail -f app.log"
# Kết quả: Máy chủ VPS sẵn sàng phục vụ 24/7. - Tắt cửa sổ SSH làm tắt luôn App: Nếu chạy
-
B27
Xuất bản lên Streamlit Cloud (Miễn phí & Nhanh gọn) Giải pháp xuất bản tối ưu nhất cho giám sát xây dựng: Kết nối tài khoản GitHub với
share.streamlit.iođể biến code thành một đường link web chính thức có bảo mật SSL HTTPS.📋 Giáo án Giảng viên & Thực hành B27 (60 phút)Instructor Kit
🎯 Mục tiêu bài dạy & Kế hoạch 60 phút
⏱️ 10' Tình huống: Gửi link cho chủ thầu bấm vào xem ngay ⏱️ 25' Live: Tạo repo GitHub, đăng nhập share.streamlit.io, chọn nhánh main ⏱️ 20' Học viên deploy Mini-CRM của riêng mình ⏱️ 5' Nhận link web công khai & Kiểm traMục tiêu: Mỗi học viên có 1 đường link web cá nhân (dạng
https://ten-hoc-vien-crm.streamlit.app) mở được trên bất kỳ thiết bị nào.💡 Bẫy lỗi thường gặp & Mẹo sư phạm
- Lỗi ModuleNotFoundError trên Cloud: Xảy ra khi học viên quên commit file
requirements.txtlên GitHub. Dặn học viên kiểm tra kỹ trên trang github.com trước khi bấm Deploy.
🛠️ Bài tập thực hành tại lớp
Quy trình thực hành 3 bước:
1. Push mã nguồn hoàn chỉnh lên GitHub repository:git add . && git commit -m "Deploy CRM" && git push
2. Truy cậphttps://share.streamlit.io, bấm "New App".
3. Chọn Repository, Branchmain, Main file pathmini_crm_app.pyvà bấm "Deploy!".Checklist cấu hình xuất bản Cloud B27deploy_checklist.txt# CHECKLIST XUẤT BẢN STREAMLIT CLOUD THÀNH CÔNG: [✓] Kho chứa GitHub đã được đặt ở chế độ Public hoặc cấp quyền. [✓] Tệp chính nằm ở thư mục gốc: mini_crm_app.py [✓] Tệp khai báo thư viện: requirements.txt (có streamlit, pandas) [✓] Tệp dữ liệu mẫu: khach_hang.csv hoặc cong_trinh.db đã được đẩy lên. [✓] Đường link công khai hoàn tất: https://cong-trinh-crm.streamlit.app
# Trạng thái trên Streamlit Cloud: Status: Running 🟢 | HTTPS Secured 🔒 - Lỗi ModuleNotFoundError trên Cloud: Xảy ra khi học viên quên commit file
-
B28
Tối ưu & Nghiệm thu trải nghiệm trên iPhone Kiểm tra thực tế thao tác dưới ánh sáng ngoài công trường: Nút bấm đủ to cho ngón tay chạm, font chữ tương phản cao, hướng dẫn thêm Web App ra màn hình chính (Add to Home Screen) như một Native App.
📋 Giáo án Giảng viên & Thực hành B28 (60 phút)Instructor Kit
🎯 Mục tiêu bài dạy & Kế hoạch 60 phút
⏱️ 10' Cầm điện thoại mở trực tiếp link vừa deploy ⏱️ 25' Live: Tối ưu UI mobile, kiểm tra tốc độ tải mạng 4G/5G ⏱️ 20' Thao tác thêm biểu tượng icon vào màn hình iPhone ⏱️ 5' Tổng kết hoàn thành sản phẩm DeployMục tiêu: Học viên tự tay mở app trên điện thoại của mình, thêm phím tắt Home Screen và thử nhập 1 công trình thực tế ngoài sân.
💡 Bẫy lỗi thường gặp & Mẹo sư phạm
- Thao tác Add to Home Screen: Hướng dẫn trên trình duyệt Safari của iPhone: Bấm nút Share (hình vuông có mũi tên trỏ lên) → Chọn "Add to Home Screen" (Thêm vào MH chính). App sẽ có icon chuyên nghiệp và mở toàn màn hình không có thanh địa chỉ Safari!
🛠️ Bài tập thực hành tại lớp
Bài tập nghiệm thu: Mở iPhone/Android, truy cập URL Cloud của bạn. Nhập thông tin 1 căn hộ thực tế, kiểm tra số tiền tính toán và chụp ảnh màn hình lưu vào hồ sơ báo cáo khóa học.Quy trình nghiệm thu thực địa B28iphone_qa_check.txt# TIÊU CHUẨN NGHIỆM THU 5 SAO TRÊN IPHONE: 1. Tốc độ mở trang dưới 3 giây qua kết nối 4G/5G công trường. 2. Các nút "TÍNH BÁO GIÁ", "LƯU HỒ SƠ" to rõ, bấm chính xác bằng 1 tay. 3. Bảng dữ liệu tự động căn lề, không bị cắt cụt số tiền. 4. Trạng thái dự án hiển thị màu rõ ràng: Khảo sát (Vàng), Thi công (Xanh lam), Bàn giao (Xanh lá). 5. Biểu tượng ứng dụng nằm trang trọng trên màn hình chính iPhone.
# Kết quả: Ứng dụng Mini-CRM chính thức đi vào vận hành thực tế!
Mini-CRM Online trên Cloud
URL công khai + Chạy trên iPhone