Python Visualize Data - Xây dựng hệ thống báo cáo, quản lý nội bộ
Khóa học hướng dẫn lập trình Python chuyên sâu về trực quan hóa dữ liệu và xây dựng hệ thống báo cáo, dashboard, phần mềm quản lý nội bộ doanh nghiệp với Streamlit và SQLite.
Giới thiệu khóa học
Khóa học giúp học viên từ tư duy lập trình Python cơ bản tiến thẳng tới việc xây dựng các ứng dụng Web Dashboard báo cáo tự động, hệ thống quản lý dữ liệu nội bộ doanh nghiệp chuyên nghiệp và bảo mật bằng Streamlit và SQL Server.
Điểm Khác Biệt Chỉ Có Tại KD Educode
- Học qua dự án thực tế: Xây dựng trực tiếp hệ thống Quản lý Quy trình và Dashboard báo cáo doanh nghiệp.
- Làm chủ Streamlit: Thư viện Python giúp dựng giao diện Web App nhanh nhất thế giới.
- Phân quyền và bảo mật: Tích hợp màn hình đăng nhập, phân quyền Role và bảo vệ cơ sở dữ liệu.
- Tích hợp Trí tuệ nhân tạo (AI): Gọi Gemini API để tự động tóm tắt và phân tích đề xuất kinh doanh.
Lộ Trình 16 Buổi Học Chi Tiết
- Buổi 1: Khởi tạo App & Kiểu dữ liệu Chuỗi
- Streamlit UI: st.title(), st.write(), st.text_input(), st.text_area().
- Python: Biến, Kiểu chuỗi, f-string.
- Buổi 2: Nút bấm & Luồng điều kiện
- Streamlit UI: st.button(), st.success(), st.error(), st.warning().
- Python: Cấu trúc điều kiện if/elif/else, toán tử logic.
- Buổi 3: Lựa chọn danh mục & Cấu trúc danh sách
- Streamlit UI: st.selectbox(), st.multiselect(), st.radio().
- Python: List [], Tuple (), kiểm tra phần tử.
- Buổi 4: Lưu trữ tạm thời & Cấu trúc Từ điển
- Streamlit UI: st.session_state để lưu dữ liệu khi reload trang.
- Python: Dictionary {key: value}.
- Buổi 5: Kết nối DB & Xử lý ngoại lệ
- Streamlit UI: st.spinner() biểu tượng chờ.
- Python: Kết nối SQL Server (pyodbc), bẫy lỗi try...except.
- Buổi 6: Đẩy dữ liệu (INSERT) & Đóng gói Hàm
- Streamlit UI: st.form(), st.form_submit_button().
- Python: Viết hàm (def) tái sử dụng, câu lệnh INSERT INTO tham số hóa.
- Buổi 7: Kéo dữ liệu về (SELECT) & Thư viện Pandas
- Streamlit UI: st.dataframe(), st.data_editor() bảng tương tác.
- Python: Pandas DataFrame, pd.read_sql().
- Buổi 8: Bộ lọc & Vòng lặp
- Streamlit UI: st.sidebar menu bên trái.
- Python: Lọc dữ liệu trực tiếp trên Pandas DataFrame, vòng lặp for.
- Buổi 9: Cập nhật Trạng thái (UPDATE) & Tabs
- Streamlit UI: st.tabs() phân nhánh giao diện.
- Python: SQL UPDATE dựa trên ID dòng.
- Buổi 10: Xử lý Thời gian & Cột dữ liệu mới
- Streamlit UI: st.date_input(), st.time_input().
- Python: Thư viện datetime, tính toán số ngày trễ hạn SLA.
- Buổi 11: Đăng nhập & Cơ chế Phân quyền
- Streamlit UI: st.empty() dọn dẹp giao diện.
- Python: So sánh mật khẩu, phân quyền Role (Admin, Staff).
- Buổi 12: Thao tác File & Chuyển đổi số liệu
- Streamlit UI: st.file_uploader(), st.download_button().
- Python: Import file Excel qua Pandas và INSERT hàng loạt; Export dữ liệu ra Excel.
- Buổi 13: Căn chỉnh Bố cục & Thẻ Chỉ số
- Streamlit UI: st.columns(), st.metric() thẻ KPI hiển thị số lớn.
- Python: Pandas groupby(), sum(), count().
- Buổi 14: Vẽ biểu đồ Pyecharts (Tĩnh)
- Streamlit UI: streamlit_echarts vẽ biểu đồ tương tác.
- Python: Cấu hình Dictionary thông số Echarts.
- Buổi 15: Biểu đồ động & Tích hợp API
- Streamlit UI: Realtime chart inputs.
- Python: Tích hợp Gemini API phân tích và tóm tắt đề xuất tự động.
- Buổi 16: Refactor Code & Đóng gói App
- Streamlit UI: Tùy biến CSS cơ bản (đổi font, màu nền).
- Python: Tổ chức source code đa file (ui.py, database.py, logic.py).
Hình ảnh hoạt động lớp học
Chương trình học chi tiết
01Buổi 1: Khởi tạo App & Kiểu dữ liệu Chuỗi
120 phútXem thử miễn phí
Buổi 1: Khởi tạo App & Kiểu dữ liệu Chuỗi
Thành phần Streamlit: st.title(), st.write(), st.text_input(), st.text_area(). Cú pháp Python: Biến (Variables), Kiểu chuỗi (String), f-string để ghép chữ. Kết quả: Chạy thành công giao diện Web có tiêu đề "Hệ Thống Quản Lý Quy Trình", kèm các ô nhập Tên yêu cầu và Mô tả chi tiết.
02Buổi 2: Nút bấm & Luồng điều kiện
120 phútBài học khóa
Buổi 2: Nút bấm & Luồng điều kiện
Thành phần Streamlit: st.button(), st.success(), st.error(), st.warning(). Cú pháp Python: Câu lệnh if/elif/else, các phép toán logic (==, !=, and, or). Kết quả: Khi bấm nút "Tạo yêu cầu", hệ thống tự động kiểm tra xem ô "Tên yêu cầu" có bị bỏ trống không. Nếu trống báo lỗi đỏ, nếu đủ báo xanh.
03Buổi 3: Lựa chọn danh mục & Cấu trúc danh sách
120 phútBài học khóa
Buổi 3: Lựa chọn danh mục & Cấu trúc danh sách
Thành phần Streamlit: st.selectbox(), st.multiselect(), st.radio(). Cú pháp Python: Cấu trúc List [], Tuple (), kiểm tra phần tử (in, not in). Kết quả: Thêm Dropdown chọn "Phòng ban" (Marketing, IT, Hành chính) và chọn "Người duyệt".
04Buổi 4: Lưu trữ tạm thời & Cấu trúc Từ điển
120 phútBài học khóa
Buổi 4: Lưu trữ tạm thời & Cấu trúc Từ điển
Thành phần Streamlit: st.session_state (cực kỳ quan trọng để lưu dữ liệu khi reload trang). Cú pháp Python: Cấu trúc Dictionary {key: value}. Kết quả: Gom toàn bộ thông tin người dùng vừa nhập vào một Dictionary và hiển thị bản nháp (Draft) sang cột bên cạnh để xem trước khi gửi.
05Buổi 5: Kết nối DB & Xử lý ngoại lệ
120 phútBài học khóa
Buổi 5: Kết nối DB & Xử lý ngoại lệ
Thành phần Streamlit: st.spinner() (biểu tượng xoay chờ load). Cú pháp Python: Thư viện pyodbc, khối bẫy lỗi try...except. Kết quả: Bấm nút "Kết nối Hệ thống", app hiện vòng xoay. Nếu kết nối SQL Server thành công báo xanh, nếu rớt mạng báo lỗi chi tiết mà không làm sập App.
06Buổi 6: Đẩy dữ liệu (INSERT) & Đóng gói Hàm
120 phútBài học khóa
Buổi 6: Đẩy dữ liệu (INSERT) & Đóng gói Hàm
Thành phần Streamlit: st.form(), st.form_submit_button(). Cú pháp Python: Viết Hàm (def) để tái sử dụng, câu lệnh INSERT INTO có tham số chống hack. Kết quả: Đóng gói toàn bộ các ô nhập liệu vào một Form. Khi Submit, dữ liệu thực sự được ghi vào bảng Requests trong SQL Server.
07Buổi 7: Kéo dữ liệu về (SELECT) & Thư viện Pandas
120 phútBài học khóa
Buổi 7: Kéo dữ liệu về (SELECT) & Thư viện Pandas
Thành phần Streamlit: st.dataframe(), st.data_editor() (bảng tương tác). Cú pháp Python: import pandas as pd, pd.read_sql(). Kết quả: Hiển thị danh sách tất cả các Yêu cầu đang nằm trong SQL Server lên App dưới dạng lưới dữ liệu đẹp mắt.
08Buổi 8: Bộ lọc & Vòng lặp
120 phútBài học khóa
Buổi 8: Bộ lọc & Vòng lặp
Thành phần Streamlit: st.sidebar (menu bên trái) kết hợp các ô input lọc. Cú pháp Python: Vòng lặp for, tính năng lọc dữ liệu trực tiếp trên Pandas DataFrame. Kết quả: Tạo bộ lọc bên thanh Sidebar. Lọc danh sách Yêu cầu theo "Trạng thái" (Đang xử lý, Hoàn thành) hoặc "Phòng ban".
09Buổi 9: Cập nhật Trạng thái (UPDATE) & Tabs
120 phútBài học khóa
Buổi 9: Cập nhật Trạng thái (UPDATE) & Tabs
Thành phần Streamlit: st.tabs() (chia tab giao diện). Cú pháp Python: SQL UPDATE dựa trên ID. Kết quả: Giao diện có 2 tab: "Cần xử lý" và "Đã hoàn thành". Cấp quản lý bấm nút "Duyệt" trên một dòng, dòng đó tự động chuyển trạng thái và bay sang tab "Đã hoàn thành".
10Buổi 10: Xử lý Thời gian & Cột dữ liệu mới
120 phútBài học khóa
Buổi 10: Xử lý Thời gian & Cột dữ liệu mới
Thành phần Streamlit: st.date_input(), st.time_input(). Cú pháp Python: Thư viện datetime, tính toán số ngày giữa 2 mốc thời gian. Kết quả: Hệ thống tự động tính ra số ngày "Trễ SLA" của một công việc dựa trên ngày tạo và ngày cam kết.
11Buổi 11: Đăng nhập & Cơ chế Phân quyền
120 phútBài học khóa
Buổi 11: Đăng nhập & Cơ chế Phân quyền
Thành phần Streamlit: st.empty() (xóa giao diện cũ). Cú pháp Python: Logic so sánh Password, cấp quyền Role (Admin, Staff). Kết quả: Mở app hiện màn hình Login. Nhân viên đăng nhập chỉ thấy nút "Tạo đề xuất", Trưởng phòng đăng nhập thấy thêm nút "Phê duyệt".
12Buổi 12: Thao tác File & Chuyển đổi số liệu
120 phútBài học khóa
Buổi 12: Thao tác File & Chuyển đổi số liệu
Thành phần Streamlit: st.file_uploader(), st.download_button(). Cú pháp Python: Dùng Pandas đọc file Excel upload lên và dùng vòng lặp for để INSERT hàng loạt vào SQL Server. Kết quả: Tính năng Import danh sách công việc cũ từ file Excel và nút Export dữ liệu từ App ra lại Excel để báo cáo.
13Buổi 13: Căn chỉnh Bố cục & Thẻ Chỉ số
120 phútBài học khóa
Buổi 13: Căn chỉnh Bố cục & Thẻ Chỉ số
Thành phần Streamlit: st.columns(), st.metric() (thẻ hiển thị số lớn có mũi tên tăng/giảm). Cú pháp Python: Pandas groupby(), sum(), count(). Kết quả: Tạo một Dashboard Tổng quan với các thẻ KPI: Tổng số Yêu cầu, Tỷ lệ trễ hạn, Số lượng đang tồn đọng.
14Buổi 14: Vẽ biểu đồ Pyecharts (Tĩnh)
120 phútBài học khóa
Buổi 14: Vẽ biểu đồ Pyecharts (Tĩnh)
Thành phần Streamlit: streamlit_echarts. Cú pháp Python: Cấu hình Dictionary phức tạp cho Echarts. Kết quả: Vẽ biểu đồ Cột thể hiện số lượng công việc theo từng phòng ban và biểu đồ Tròn thể hiện tỷ trọng trạng thái Yêu cầu.
15Buổi 15: Biểu đồ động & Tích hợp API
120 phútBài học khóa
Buổi 15: Biểu đồ động & Tích hợp API
Thành phần Streamlit: Tích hợp input thay đổi biểu đồ realtime. Cú pháp Python: Gọi API bên ngoài (ví dụ: Gọi Gemini API để phân tích văn bản). Kết quả: Cấp quản lý chọn khoảng thời gian, biểu đồ tự động nhảy số. Tích hợp nút AI: Bấm vào để AI tự đọc và tóm tắt một Đề xuất dài 5 trang thành 3 gạch đầu dòng.
16Buổi 16: Refactor Code & Đóng gói App
120 phútBài học khóa
Buổi 16: Refactor Code & Đóng gói App
Thành phần Streamlit: Tùy biến CSS cơ bản để app đẹp hơn (đổi font, màu nền). Cú pháp Python: Tổ chức lại source code thành nhiều file nhỏ (ui.py, database.py, logic.py) cho dễ quản lý. Kết quả: Một Web App hoàn chỉnh, chạy trơn tru, sẵn sàng triển khai cho doanh nghiệp sử dụng.
Khóa học này thiết kế dành cho ai?
Chuyên viên phân tích dữ liệu (Data Analyst / BI)
Muốn làm chủ Python để tự động hóa quy trình làm sạch dữ liệu, trực quan hóa và xây dựng dashboard báo cáo động thay cho Excel.
Kỹ sư & Lập trình viên hệ thống
Muốn xây dựng nhanh các ứng dụng Web quản lý dữ liệu nội bộ (CRUD), tích hợp xác thực và phân quyền mà không cần code frontend phức tạp.
Quản lý, Trưởng phòng & Tech Lead
Cần giải pháp xây dựng cổng thông tin quản trị doanh nghiệp, Dashboard báo cáo thời gian thực giúp đưa ra quyết định dựa trên dữ liệu.
Sinh viên ngành Kinh tế, Kỹ thuật, IT
Trang bị kỹ năng lập trình Python ứng dụng thực tế để làm đồ án tốt nghiệp, tạo lợi thế cạnh tranh cực lớn khi ứng tuyển doanh nghiệp.
Nhận xét từ học viên thành công
“Khóa học thực chiến tuyệt vời. Từ các tệp Excel rời rạc và lộn xộn, mình đã dùng Python và Streamlit dựng lên Dashboard phân tích doanh thu động, tự động cập nhật mỗi ngày.”
“Nội dung phân quyền admin/user và kết nối database SQLite rất trực quan. Mình đã xây dựng thành công ứng dụng quản lý kho nội bộ cho phòng ban chỉ sau 8 buổi học.”
“Giảng viên hướng dẫn rất chi tiết từ cách deploy lên Streamlit Cloud đến đồng bộ Git. Đồ án môn học của em đạt điểm tối đa nhờ giao diện tương tác quá chuyên nghiệp.”

Khóa học này bao gồm:
- 16 buổi học tương tác thực tế (120 phút/buổi)
- Bộ tài liệu, source code mẫu & data thực hành
- Học qua các dự án xây dựng dashboard báo cáo thực tế
- Tự tay thiết kế ứng dụng quản lý dữ liệu nội bộ
- Hỗ trợ giải đáp thắc mắc trực tiếp từ giảng viên
- Cấp chứng nhận hoàn thành từ KD Educode
