ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN TOÁN ỨNG DỤNG VÀ TIN HỌC ĐỒ ÁN TỐT NGHIỆP XÂY DỰNG HỆ THỐNG QUẢN LÝ ĐƠN HÀNG CHO CÔNG TY SẢN XUẤT XE ĐẠP Lê Thị Kiều Trang trang.ltk195930@sis.hust.edu.vn Ngành Toán Tin Giảng viên hướng dẫn: TS. Phạm Huyền Linh Chữ kí của GVHD Bộ môn: Toán Tin Viện: Toán ứng dụng và Tin học HÀ NỘI, 7/2023 ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN TOÁN ỨNG DỤNG VÀ TIN HỌC ĐỒ ÁN TỐT NGHIỆP XÂY DỰNG HỆ THỐNG QUẢN LÝ ĐƠN HÀNG CHO CÔNG TY SẢN XUẤT XE ĐẠP Lê Thị Kiều Trang trang.ltk195930@is.hust.edu.vn Ngành Toán Tin Giảng viên hướng dẫn: TS. Phạm Huyền Linh Chữ kí của GVHD Bộ môn: Toán Tin Viện: Toán ứng dụng và Tin học HÀ NỘI, 7/2023 i NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN 1. Mục tiêu và nội dung của đồ án (a) Mục tiêu: (b) Nội dung: 2. Kết quả đạt được (a) (b) (c) 3. Ý thức làm việc của sinh viên: (a) (b) (c) Hà Nội, ngày 31 tháng 7 năm 2023 Giảng viên hướng dẫn ThS. Phạm Huyền Linh ii Lời cảm ơn Trong thời gian hoàn thành đồ án này, em đã nhận được rất nhiều sự quan tâm giúp đỡ và khích lệ từ thầy cô, bạn bè và gia đình. Em xin chân thành gửi lời cảm ơn tới các Thầy Cô tại Viện Toán ứng dụng và Tin học. Thầy cô đã truyền đạt cho em những kiến thức và tạo điều kiện cho em hoàn thành được đồ án này. Đặc biệt, em xin gửi lời cảm ơn sâu sắc tới cô Phạm Huyền Linh. Cô là người đã trực tiếp hướng dẫn em nghiên cứu đề tài này. Cô đã định hướng và truyền đạt những kinh nghiệm quý giá để em có thể hoàn thành đồ án một cách tốt nhất. Cô đã cho em những lời khuyên hữu ích nhất để có thể định hướng công việc của mình trong tương lai. Đồ án của em không tránh khỏi những thiếu xót, em rất mong nhận được những ý kiến đóng góp của Thầy Cô và các bạn để Đồ án ngày một hoàn thiện hơn. Em xin trân trọng cảm ơn! Hà Nội, tháng 7 năm 2023 Tác giả đồ án Lê Thị Kiều Trang iii Nội dung đồ án của em gồm 4 phần 1. Mở đầu. Thực hiện tìm hiểu, tổng quan về mô hình. 2. Khảo sát hệ thống. Khảo sát hệ thống phân tích, cụ thể. 3. Phân tích và thiết kế hệ thống. Tập trung xác định các yêu cầu mà hệ thống cần đáp ứng. Xác định các chức năng cần có, luồng dữ liệu và các thực thể trong hệ thống. 4. Xây dựng hệ thống phân tích dữ liệu. (a) Xây dựng giao diện website sử dụng (b) Xây dựng phân hệ Phân tích dữ liệu và Báo cáo để ra các Báo cáo cho doanh nghiệp Hà Nội, tháng 7 năm 2023 Tác giả đồ án Lê Thị Kiều Trang iv Mục lục Danh sách bảng 1 Danh sách hình vẽ 1 Chương 1. Chương MỞ ĐẦU 4 1.1 1.2 1.3 1.4 Mở đầu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.1.1 Vấn đề thực tế và lý do chọn đề tài . . . . . . . . . . . . . 4 1.1.2 Mục tiêu và nội dung nghiên cứu . . . . . . . . . . . . . . 5 Một số khái niệm cơ bản . . . . . . . . . . . . . . . . . . . . . . . 5 1.2.1 Tổng quan về Web . . . . . . . . . . . . . . . . . . . . . . 5 1.2.2 Kinh doanh thông minh (Bussiness Intelligence) . . . . . . 13 Kiến trúc kho dữ liệu . . . . . . . . . . . . . . . . . . . . . . . . . 16 1.3.1 Khái niệm kho dữ liệu . . . . . . . . . . . . . . . . . . . . 16 1.3.2 Mô hình dữ liệu đa chiều . . . . . . . . . . . . . . . . . . . 18 Các công nghê sử dụng . . . . . . . . . . . . . . . . . . . . . . . . 20 1.4.1 Mô hình MVC . . . . . . . . . . . . . . . . . . . . . . . . . 20 1.4.2 HTML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 1.4.3 CSS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 1.4.4 JavaScript . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 1.4.5 Bootstrap . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 1.4.6 PHP laravel . . . . . . . . . . . . . . . . . . . . . . . . . . 24 1.4.7 SQL Server . . . . . . . . . . . . . . . . . . . . . . . . . . 25 1.4.8 Công cụ trực quan hóa dữ liệu Power BI . . . . . . . . . . 26 Chương 2. Chương KHẢO SÁT 2.1 29 Hệ thống hiện tại doanh nghiệp sử dụng . . . . . . . . . . . . . . 29 v 2.2 Khảo sát nghiệp vụ . . . . . . . . . . . . . . . . . . . . . . . . . . 31 2.2.1 Quy trình nghiệp vụ thực tế . . . . . . . . . . . . . . . . . 31 2.2.2 Quy mô bộ dữ liệu . . . . . . . . . . . . . . . . . . . . . . 35 2.2.3 Luồng dữ liệu . . . . . . . . . . . . . . . . . . . . . . . . . 36 2.2.4 Trạng thái đơn hàng . . . . . . . . . . . . . . . . . . . . . 36 2.3 Yêu cầu của hệ thống mới . . . . . . . . . . . . . . . . . . . . . . 37 Chương 3. Chương PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 3.1 3.2 40 Phân tích và thiết kế hệ thống quản lí đơn hàng . . . . . . . . . . 40 3.1.1 Sơ đồ phân cấp chức năng . . . . . . . . . . . . . . . . . . 40 3.1.2 Sơ đồ luồng dữ liệu . . . . . . . . . . . . . . . . . . . . . . 41 3.1.3 Sơ đồ thực thể liên kết . . . . . . . . . . . . . . . . . . . . 43 3.1.4 Kiến trúc hệ thống Quản lý đơn hàng . . . . . . . . . . . . 43 3.1.5 Mô hình dữ liệu quan hệ . . . . . . . . . . . . . . . . . . . 48 3.1.6 Thiết kế giao diện hệ thống (Mockup) . . . . . . . . . . . 55 Phân tích và thiết kế phân hệ Phân tích dữ liệu và Báo cáo . . . . 57 3.2.1 Kiến trúc hệ thống Phân tích dữ liệu . . . . . . . . . . . . 57 3.2.2 Khám phá dữ liệu . . . . . . . . . . . . . . . . . . . . . . . 57 3.2.3 Phân tích các chiều, chủ điểm phân tích . . . . . . . . . . 66 3.2.4 Kiến trúc hệ thống phân tích dữ liệu . . . . . . . . . . . . 67 3.2.5 Thiết kế cơ sở dữ liệu hệ thống OLAP . . . . . . . . . . . 67 Chương 4. Chương XÂY DỰNG HỆ THỐNG 75 4.1 Xây dựng hệ thống quản lý đơn hàng . . . . . . . . . . . . . . . . 75 4.2 Xây dựng các báo cáo dashboard . . . . . . . . . . . . . . . . . . 83 Tổng kết 94 1 Danh sách hình vẽ 1.1 Mô hình Client-Server . . . . . . . . . . . . . . . . . . . . . . . . 7 1.2 Mô hình Single-Page Application (SPA) . . . . . . . . . . . . . . 8 1.3 Mô hình Microservices . . . . . . . . . . . . . . . . . . . . . . . . 9 1.4 Mô hình Serverless . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1.5 Quy trình kinh doanh thông minh . . . . . . . . . . . . . . . . . . 14 1.6 Ảnh Bussiness Intelligence . . . . . . . . . . . . . . . . . . . . . . 15 1.7 Ảnh mô tả kho dữ liệu . . . . . . . . . . . . . . . . . . . . . . . . 17 1.8 Minh họa lược đồ hình sao . . . . . . . . . . . . . . . . . . . . . . 18 1.9 Minh họa lược đồ bông tuyết . . . . . . . . . . . . . . . . . . . . 19 1.10 SQL Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 1.11 Ảnh mô tả Power BI . . . . . . . . . . . . . . . . . . . . . . . . . 27 2.1 Hệ thống cũ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 2.2 Hệ thống cũ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 2.3 Quy trình xử lí đơn hàng . . . . . . . . . . . . . . . . . . . . . . . 31 2.4 Mô hình chuỗi cửa hàng bán lẻ . . . . . . . . . . . . . . . . . . . 32 2.5 Luồng nghiệp vụ . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 2.6 Luồng nghiệp vụ . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 2.7 Các trạng thái đơn hàng . . . . . . . . . . . . . . . . . . . . . . . 37 3.1 Sơ đồ phân cấp chức năng . . . . . . . . . . . . . . . . . . . . . . 40 3.2 Sơ đồ luồng dữ liệu mức ngữ cảnh . . . . . . . . . . . . . . . . . . 41 3.3 Sơ đồ luồng dữ liệu . . . . . . . . . . . . . . . . . . . . . . . . . . 42 2 3.4 Sơ đồ thực thể liên kết . . . . . . . . . . . . . . . . . . . . . . . . 43 3.5 Mô hình MVC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 3.6 Các lớp trong Models . . . . . . . . . . . . . . . . . . . . . . . . . 45 3.7 Các lớp trong View . . . . . . . . . . . . . . . . . . . . . . . . . . 47 3.8 Các lớp trong Controllers . . . . . . . . . . . . . . . . . . . . . . . 48 3.9 Mô hình dữ liệu OLTP . . . . . . . . . . . . . . . . . . . . . . . . 54 3.10 Giao diện đăng nhập mock up . . . . . . . . . . . . . . . . . . . . 55 3.11 Giao diện đăng ký mock up . . . . . . . . . . . . . . . . . . . . . 55 3.12 Giao diện Quản lý đơn hàng mockup . . . . . . . . . . . . . . . . 56 3.13 Giao diện Phân hệ Phân tích dữ liệu và Báo cáo . . . . . . . . . . 56 3.14 Kiến trúc hệ thống phân tích dữ liệu . . . . . . . . . . . . . . . . 57 3.15 Doanh thu theo tuổi và giới tính của khách hàng . . . . . . . . . . 57 3.16 Doanh số theo tuổi và giới tính của khách hàng . . . . . . . . . . 58 3.17 Doanh thu theo thương hiệu và chủng loại . . . . . . . . . . . . . 59 3.18 Doanh số theo thương hiệu và chủng loại . . . . . . . . . . . . . . 59 3.19 Doanh thu theo thời gian . . . . . . . . . . . . . . . . . . . . . . . 60 3.20 Doanh số theo thời gian . . . . . . . . . . . . . . . . . . . . . . . 60 3.21 Doanh thu theo phương thức thanh toán . . . . . . . . . . . . . . 61 3.22 Doanh số theo theo phương thức thanh toán . . . . . . . . . . . . 62 3.23 Doanh thu theo nhân viên . . . . . . . . . . . . . . . . . . . . . . 63 3.24 Doanh số theo nhân viên . . . . . . . . . . . . . . . . . . . . . . . 64 3.25 Top 5 sản phẩm có số lượng tồn kho cao nhất . . . . . . . . . . . 64 3.26 Số lượng tồn kho theo chủng loại và hãng . . . . . . . . . . . . . . 65 3.27 Kiến trúc hệ thống phân tích dữ liệu . . . . . . . . . . . . . . . . 68 3.28 Mô hình dữ liệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 3.29 Mô hình dữ liệu quan hệ hệ thống OLAP . . . . . . . . . . . . . . 69 4.1 Giao diện đăng nhập . . . . . . . . . . . . . . . . . . . . . . . . . 75 4.2 Giao diện đăng ký tài khoản . . . . . . . . . . . . . . . . . . . . . 76 4.3 Giao diện Quản lý Sản phẩm . . . . . . . . . . . . . . . . . . . . 76 3 4.4 Giao diện quản lý đơn hàng . . . . . . . . . . . . . . . . . . . . . 77 4.5 Giao diện quản lý khách hàng . . . . . . . . . . . . . . . . . . . . 77 4.6 Giao diện quản lý kho hàng . . . . . . . . . . . . . . . . . . . . . 78 4.7 Giao diện quản lý cửa hàng . . . . . . . . . . . . . . . . . . . . . 78 4.8 Giao diện quản lý danh mục sản phẩm . . . . . . . . . . . . . . . 79 4.9 Giao diện quản lý nhãn hàng . . . . . . . . . . . . . . . . . . . . 79 4.10 Giao diện quản lý nhân viên . . . . . . . . . . . . . . . . . . . . . 80 4.11 Giao diện dashboard vận hành bán hàng . . . . . . . . . . . . . . 80 4.12 Giao diện dashboard phân tích . . . . . . . . . . . . . . . . . . . . 81 4.13 Giao diện dashboard chân dung khách hàng . . . . . . . . . . . . 81 4.14 Giao diện phân quyền cho các nhóm nghiệp vụ . . . . . . . . . . . 82 4.15 Giao diện quản lý tài khoản người dùng . . . . . . . . . . . . . . 82 4.16 Danh mục các báo cáo . . . . . . . . . . . . . . . . . . . . . . . . 83 4.17 PD200 - Dasboard phân tích doanh thu . . . . . . . . . . . . . . . 84 4.18 PD200 - Dasboard phân tích doanh thu (tiếp) . . . . . . . . . . . 85 4.19 PS300 - Dasboard phân tích số lượng đơn hàng . . . . . . . . . . 86 4.20 PS100 - Dasboard phân tích số lượng sản phẩm bán . . . . . . . . 87 4.21 PS400 - Dasboard phân tích số lượng sản phẩm tổn kho . . . . . 88 4.22 TK500 - Dasboard chân dung Khách hàng . . . . . . . . . . . . . 89 4.23 TK500 - Dasboard chân dung Khách hàng (tiếp) . . . . . . . . . . 90 4.24 VS200 - Dasboard báo cáo doanh thu theo tháng . . . . . . . . . 91 4.25 VS200 - Dasboard báo cáo doanh thu theo tháng (tiếp) . . . . . . 92 4.26 VS300 - Dasboard báo cáo số lượng đơn hàng theo tháng . . . . . 93 4 Chương 1 MỞ ĐẦU 1.1 1.1.1 Mở đầu Vấn đề thực tế và lý do chọn đề tài Ngày nay, nền kinh tế ngày càng phát triển, thị trường kinh doanh ngày căng mở rộng với một kho dữ liệu lớn. Kỉ nguyên công nghệ đang phát triển như vũ bão và trung tâm của kỉ nguyên ngày chính là dữ liệu số. Để giữ vững nền kinh tế doanh nghiệp và phát triển hơn nữa thì việc phân tích dữ liệu ngày càng quan trọng, hỗ trợ doanh nghiệp đưa ra các quyết định kinh doanh hiệu quả và đúng đắn, từ đó gia tăng lợi thế về cạnh tranh trên thị trường. Yêu cầu phân tích dữ liệu cao tuy nhiên cơ sở dữ liệu thông thường không đáp ứng đủ. Các cơ sở dữ liệu nghiệp vụ (operational database) hoặc hệ thống xử lí giao dịch thời gian thực (online transaction processing – OLTP) chỉ thỏa mãn được những nghiệp vụ hang ngày và đảm bảo toàn vẹn dữ liệu, truy cập song song và xử lí các dữ liệu nhanh. Nền công nghệ ngày càng phát triển đòi hỏi các doanh nghiệp cần nhanh chóng đổi mới, áp dụng công nghệ vào hệ thống kinh doanh thông minh để thuận tiện cho việc quản lí và phân tích kinh doanh. Phân tích dữ liệu bán hàng giúp cho doanh nghiệp có được cái nhìn bao quát và chi tiết nhất về các sản phẩm mình đang kinh doanh, từ đó có những định hướng tốt hơn cho những phát triển tương lai. Để giải quyết các vấn đề và yêu cầu đó, hệ thống kinh doanh thông 5 minh với một mô hình dữ liệu được chuẩn hóa cấu trúc sẽ đem lại hiệu quả cao hơn rất nhiều. Từ đó em lựa chọn đề tài " Xây dựng hệ thống quản lí đơn hàng cho công ty sản xuất xe đạp" làm đề tài nghiên cứu cho đồ án tốt nghiệp của bản thân. 1.1.2 Mục tiêu và nội dung nghiên cứu Sau khi hoàn thành đồ án phân tích dữ liệu, em sẽ hoàn thành được các mục đích sau: - Nắm được cái khái niệm cơ bản về Phân tích dữ liệu (Data Analysis), Trí Tuệ kinh doanh (Business Intelligence), Phân tích kinh doanh (Business Data Analysis) theo ngôn ngữ thực tế và mô phỏng quy trình một cách trực quan, sinh động. - Nắm được các khái niệm OLAP và OLTP và minh họa được trên dữ liệu thực tế. - Ứng dụng rõ ràng các khái niệm trên vào triển khai công việc thực tiễn. - Làm chủ được các công cụ trực quan hóa dữ liệu Power BI cho việc Phân tích dữ liệu. - Phân biệt được ưu nhược điểm của các loại công cụ PowerBI, Hệ quản trị CSDL để lựa chọn được giải pháp trong thực tế. - Học được cách phân tích và xây dựng hệ thống, làm website 1.2 1.2.1 Một số khái niệm cơ bản Tổng quan về Web a) Định nghĩa Web (World Wide Web viết tắt là WWW): là một hệ thống thông tin toàn cầu dựa trên internet, nó cho phép người dùng truy cập và chia sẻ thông tin qua các trình duyệt web. Web là một mạng lưới các tài liệu liên kết với nhau thông 6 qua các liên kết siêu văn bản (hyperlink). Không những thế nó còn cho phép người dùng duyệt và tương tác với các trang web, các ứng dụng web, các tệp tin đa phương tiện (hình ảnh, video, âm thanh), và các dịch vụ trực tuyến khác. Web được xây dựng trên giao thức HTTP (Hypertext Transfer Protocol) để truyền tải dữ liệu giữa máy chủ web và trình duyệt web. Mỗi trang web có một địa chỉ duy nhất, được gọi là URL (Uniform Resource Locator), để người dùng có thể truy cập vào nội dung cụ thể của trang web đó. Các thành phần cơ bản của một trang web bao gồm: - HTML (Hypertext Markup Language): Ngôn ngữ đánh dấu siêu văn bản để xây dựng nội dung và cấu trúc của trang web. - JavaScript: Ngôn ngữ lập trình để tạo ra các hiệu ứng tương tác và chức năng động trên trang web. - CSS (Cascading Style Sheets): Ngôn ngữ định dạng để định kiểu và trình bày trang web. Web đã thay đổi cách chúng ta tìm kiếm thông tin, giao tiếp, mua sắm và làm việc. Nó đã trở thành một phần không thể thiếu trong đời sống hàng ngày và đóng vai trò quan trọng trong việc kết nối mọi người trên toàn cầu. b) Một số mô hình Web: Mô hình Client-Server Đây là mô hình web cơ bản nhất, trong đó máy chủ (server) cung cấp dữ liệu và các dịch vụ cho các máy khách (client) thông qua giao thức HTTP. Khi client gửi yêu cầu đến máy chủ và máy chủ trả về kết quả tương ứng. Mô hình này cho phép tách biệt giữa phần giao diện người dùng (client-side) và phần xử lý dữ liệu (server-side). 7 Hình 1.1: Mô hình Client-Server - Máy khách (Client): Máy khách là phần giao diện người dùng của ứng dụng. Client chịu trách nhiệm hiển thị thông tin cho người dùng và chấp nhận đầu vào từ họ. Nó có thể là trình duyệt web, ứng dụng di động hoặc bất kỳ ứng dụng nào tương tác trực tiếp với người dùng. Máy khách gửi yêu cầu đến máy chủ và nhận kết quả từ máy chủ để hiển thị cho người dùng. - Máy chủ (Server): Máy chủ là nơi lưu trữ và xử lý dữ liệu cũng như cung cấp các dịch vụ cho máy khách. Nó có thể là một máy chủ vật lý hoặc một môi trường đám mây. Máy chủ nhận yêu cầu từ máy khách, xử lý yêu cầu đó và trả về kết quả tương ứng. Nó có thể thực hiện các tác vụ như xử lý dữ liệu, truy xuất cơ sở dữ liệu, xử lý logic kinh doanh và trả về dữ liệu được yêu cầu. Thông qua mô hình Client-Server, máy khách và máy chủ có thể hoạt động độc lập và chia sẻ dữ liệu thông qua giao thức mạng. Mô hình này cho phép tách biệt giao diện người dùng (client-side) và xử lý logic (server-side), điều này mang lại nhiều lợi ích bao gồm: - Tính mở rộng: Mô hình Client-Server cho phép mở rộng hệ thống bằng cách thêm các máy chủ để xử lý công việc tăng lên hoặc tải cân bằng giữa các máy 8 chủ. - Bảo mật: Máy chủ có thể thực hiện các biện pháp bảo mật để bảo vệ dữ liệu và người dùng trước - Tính linh hoạt: Với phân chia rõ ràng giữa client và server, ta có thể thay đổi hoặc nâng cấp một phần của hệ thống mà không ảnh hưởng đến phần còn lại. Mô hình Single-Page Application (SPA) Hình 1.2: Mô hình Single-Page Application (SPA) Trong mô hình này, tất cả các tài nguyên cần thiết (HTML, CSS, JavaScript) được tải xuống từ máy chủ trong một lần duy nhất khi trang web được truy cập ban đầu. Sau đó, các thay đổi và tương tác trên trang web được xử lý mà không cần tải lại trang hoặc điều hướng mới. Điều này tạo ra một trải nghiệm tương tự ứng dụng máy tính, với khả năng tương tác nhanh và mượt mà hơn. Các lợi ích của mô hình SPA bao gồm: - Tăng trải nghiệm người dùng: Với SPA, người dùng trải nghiệm một ứng dụng tương tự như các ứng dụng máy tính với khả năng tương tác mượt mà và thân thiện. Không có sự gián đoạn khi tải lại toàn bộ trang, điều này tạo ra trải nghiệm liền mạch và nhanh chóng. - Tải nhanh và tiết kiệm băng thông: Do chỉ cần tải về một lần ban đầu, SPA giảm thiểu thời gian tải trang và tiết kiệm băng thông mạng. Chỉ cần cập nhật dữ liệu và các thành phần cần thiết, giúp giảm tải cho máy chủ và cải thiện hiệu 9 suất. - Phân chia rõ ràng giữa client và server: SPA cho phép tách biệt rõ ràng giữa phần giao diện người dùng (client-side) và phần xử lý dữ liệu (server-side). Việc này giúp tái sử dụng mã và quản lý dễ dàng hơn. - Cải thiện UX: Với SPA, có thể tạo ra các hiệu ứng tương tác, chuyển động mượt mà và trải nghiệm đáng chú ý khác để cung cấp trải nghiệm người dùng tốt hơn. Tuy nhiên, mô hình SPA cũng có nhược điểm như khả năng SEO thấp (do không có các trang riêng biệt) và yêu cầu khả năng Mô hình Microservices Hình 1.3: Mô hình Microservices Trong mô hình này, ứng dụng web được chia thành các thành phần nhỏ hơn gọi là microservices, mỗi microservice đảm nhận một nhiệm vụ cụ thể trong ứng dụng. Mỗi microservice có thể được phát triển và triển khai độc lập, cho phép linh hoạt và mở rộng hệ thống. Các microservice giao tiếp với nhau thông qua giao thức HTTP hoặc các giao thức khác. Các đặc điểm của mô hình Microservices bao gồm: - Phân tách chức năng: Ứng dụng được chia thành các microservices độc 10 lập nhau, mỗi microservice có một chức năng cụ thể. Ví dụ, một microservice có thể xử lý việc đăng nhập, một microservice khác quản lý giỏ hàng, và một microservice khác xử lý thanh toán. Sự phân tách này giúp tách biệt chức năng và phát triển mỗi microservice một cách độc lập. - Độc lập triển khai và mở rộng: Mỗi microservice có thể được triển khai và mở rộng độc lập. Điều này giúp tăng tính linh hoạt và khả năng mở rộng của hệ thống. Bạn có thể triển khai và mở rộng các microservice chỉ khi cần thiết, mà không cần phải triển khai toàn bộ ứng dụng. - Giao tiếp thông qua giao thức: Các microservice giao tiếp với nhau thông qua giao thức mạng như HTTP, giao thức message queue hoặc giao thức RPC (Remote Procedure Call). Điều này cho phép các microservice trao đổi dữ liệu và tương tác với nhau. - Tái sử dụng và quản lý dễ dàng: Mô hình Microservices khuyến khích việc tái sử dụng mã nguồn và các thành phần đã phát triển. Mỗi microservice có thể được phát triển, triển khai và quản lý độc lập, giúp dễ dàng bảo trì và nâng cấp ứng dụng. - Khả năng mở rộng: Với mô hình Microservices, bạn có thể mở rộng các microservice một cách độc lập dựa trên yêu cầu và tải công việc. Chỉ cần mở rộng các microservice cần thiết, giúp tối ưu hiệu suất và tài nguyên. Mô hình Microservices cho phép phân chia ứng dụng thành các thành phần nhỏ hơn, linh hoạt và dễ quản lý. Tuy nhiên, việc triển khai và quản lý nhiều microservices cần đảm bảo khả năng kiểm soát Mô hình Serverless Mô hình Serverless cho phép phát triển ứng dụng web mà không cần quản lý cơ sở hạ tầng máy chủ. Thay vì tự quản lý máy chủ, các dịch vụ đám mây như AWS Lambda hay Azure Functions được sử dụng để chạy mã và xử lý các yêu cầu từ người dùng. Mô hình này giúp giảm bớt công việc quản lý cơ sở hạ tầng và tăng tính mở rộng linh hoạt. 11 Hình 1.4: Mô hình Serverless Các đặc điểm của mô hình Serverless bao gồm: - Không có máy chủ cần quản lý: Trong mô hình Serverless, nhà phát triển không cần lo lắng về việc triển khai, quản lý và mở rộng máy chủ. Các nhà cung cấp dịch vụ đám mây như AWS Lambda, Microsoft Azure Functions, hoặc Google Cloud Functions tự động quản lý máy chủ và tài nguyên liên quan. - Hệ thống hỗ trợ sự kiện: Mô hình Serverless dựa trên sự kiện (event-driven). Ứng dụng được kích hoạt bởi các sự kiện như yêu cầu HTTP, thay đổi trong cơ sở dữ liệu hoặc thông báo từ hệ thống khác. Khi có sự kiện xảy ra, ứng dụng được khởi chạy để xử lý sự kiện đó. - Trả phí theo sử dụng thực tế: Trong mô hình Serverless, bạn chỉ trả tiền cho số lượng tài nguyên và thời gian thực tế mà ứng dụng sử dụng. Khi ứng dụng không hoạt động, không có chi phí phát sinh. - Tự động mở rộng: Các nhà cung cấp dịch vụ Serverless tự động mở rộng tài nguyên máy chủ để đáp ứng nhu cầu tải cao và thu hẹp tài nguyên khi không cần thiết. Điều này giúp đảm bảo hiệu suất và khả năng mở rộng của ứng dụng 12 mà không cần can thiệp của nhà phát triển. - Tái sử dụng và tích hợp dễ dàng: Mô hình Serverless khuyến khích việc tái sử dụng mã nguồn và tích hợp dễ dàng với các dịch vụ và công cụ khác trong hệ sinh thái đám mây. Các nhà cung cấp dịch vụ thường cung cấp các thư vi c) Các lớp trong kiến trúc ứng dụng Web Trong kiến trúc sử dụng web, có thể sử dụng nhiều lớp khác nhau để tổ chức và phân tách các thành phần của ứng dụng. Dưới đây là một số lớp phổ biến thường được sử dụng trong kiến trúc web: Presentation Layer (Lớp Trình bày) Lớp này chịu trách nhiệm hiển thị thông tin cho người dùng và tương tác với họ. Nó bao gồm các thành phần giao diện người dùng như HTML, CSS, JavaScript và các thư viện/framework UI như Angular, React, hoặc Vue.js. Lớp này thường tương tác với lớp Logic Layer để nhận dữ liệu và hiển thị nó cho người dùng. Logic Layer (Lớp Logic) Lớp này chứa các logic xử lý dữ liệu và điều khiển hoạt động của ứng dụng. Nó bao gồm các thành phần như API, server-side scripting, xử lý dữ liệu và logic kinh doanh. Lớp này tương tác với lớp Presentation Layer để nhận yêu cầu từ người dùng và trả về kết quả tương ứng. Data Layer (Lớp Dữ liệu) Lớp này quản lý truy cập và lưu trữ dữ liệu. Nó bao gồm cơ sở dữ liệu (database) và các thành phần khác như hệ thống quản lý cơ sở dữ liệu (DBMS) và trình điều khiển (driver) để tương tác với cơ sở dữ liệu. Lớp này được sử dụng để lưu trữ, truy vấn và cập nhật dữ liệu trong ứng dụng. Integration Layer (Lớp tích hợp) Lớp này được sử dụng để tích hợp các thành phần khác nhau của hệ thống, bao gồm cả bên trong và bên ngoài ứng dụng web. Nó có thể bao gồm các thành phần như dịch vụ web, giao thức truyền tải dữ liệu (ví dụ: REST, SOAP), các công nghệ tích hợp (ví dụ: messaging, file system) và các lớp giao tiếp với hệ 13 thống bên ngoài. Mỗi lớp có trách nhiệm riêng biệt và tương tác với các lớp khác để tạo nên một kiến trúc sử dụng web hoàn chỉnh. Tuy nhiên, kiến trúc cụ thể sẽ phụ thuộc vào yêu cầu và quy mô của ứng dụng web cũng như các công nghệ được sử dụng trong việc phát triển. 1.2.2 Kinh doanh thông minh (Bussiness Intelligence) a) Khái niệm: Kinh doanh thông minh (BI): bao gồm các chiến lược và công nghệ được các doanh nghiệp sử dụng kết hợp phân tích kinh doanh, khai thác dữ liệu, trực quan hóa dữ liệu, công cụ và cơ sở hạ tầng dữ liệu cũng như các phương pháp hay nhất để giúp các tổ chức đưa ra quyết định dựa trên dữ liệu nhiều hơn. Các chức năng phổ biến của công nghệ thông minh kinh doanh bao gồm báo cáo, xử lý phân tích trực tuyến, phân tích, phát triển bảng điều khiển, khai thác dữ liệu, khai thác quy trình, xử lý sự kiện phức tạp, quản lý hiệu suất kinh doanh, đo điểm chuẩn, khai thác văn bản, phân tích dự đoán và phân tích mô tả. b) Các bước trong quy trình và hệ thống kinh doanh thông minh: – Nguồn dữ liệu(Data Source): là cơ sở dữ liệu thô (thường là cơ sở dữ liệu quan hệ) đến từ nhiều nguồn khác nhau. Trong tầng đầu tiên của thành phần kiến trúc hệ thông BI, cần phải tập hợp các dữ liệu được chứa trong nhiều nguồn trực tiếp và nguồn gián tiếp không đồng nhất về xuất xứ và loại. – Kho dữ liệu và khối dữ liệu: là chỗ chứa trước tiên nhất cho việc phát triển kiến trúc của hệ BI. Khối dữ liệu là các hệ thống thu thập tất cả các dữ liệu yêu cầu bởi một phòng ban nào đó của doanh nghiệp như đánh giá, tiếp thị, cho mục đích phân tích một vài chức năng của hệ thống BI. – Khai thác, thăm dò dữ liệu (Data exploration): tìm kiếm thông tin được sử dụng bởi người dùng dữ liệu để phân tích đúng từ những thông tin thu thập được. Các kỹ thuật công cụ được sử dụng hỗ trợ cho hệ thống BI được sử dụng như là các câu truy vấn và tạo ra các báo cáo, thống kê. Có tác dụng quyết định 14 Hình 1.5: Quy trình kinh doanh thông minh phân tích dữ liệu, trả lời các câu hỏi và kiểm tra tính nguyên bản của dữ liệu. – Khai phá dữ liệu (Data mining): đây là phần rất quan trọng trong hệ thống BI, là quá trình phân loại, sắp xếp các tập hợp dữ liệu lớn để xác định các mẫu và thiết lập các mối liên hệ nhằm giải quyết các vấn đề nhờ phân tích dữ liệu. Nghĩa là các phần sẽ biến đổi từ dữ liệu thô, khai thác những thông tin cần thiết để đưa ra và hỗ trợ trong việc ra quyết định. Bao gồm tri thức từ tập dữ liệu, các kỹ thuật trích xuất thông tin, gồm cả các mô hình toán học , học máy và các kỹ thuật của khai phá dữ liệu. – Tối ưu hóa (Optimization): cho phép xác định giải pháp tốt nhất đến từ tập hợp các hành động liên quan. Tập các hành động này có thể rất rộng và đôi khi không xác định. – Quyết định (Decisions): là việc lựa chọn và thực thi phương thức quyết định nào đó dựa trên sự tính toán, so sánh đối chiếu của các phương thức toán học. Tuy nhiên, mặc dù cách thức lựa chọn được thông qua do cách thức toán học, việc quyết định theo hướng nào đó lại phụ thuộc vào người ra quyết định. 15 Hệ thống BI có thể được xem là sự kết hợp của 3 thành phần chính như sau: Hình 1.6: Ảnh Bussiness Intelligence - Kho dữ liệu (Data Warehouse): là cơ sở dữ liệu được thiết kế theo mô hình Online Analytical Processing (OLAP), dữ liệu trong data warehouse chỉ có thể đọc, không được ghi hay xóa mà chỉ được update bởi gói ETL chuyển đổi dữ liệu từ Data Sources vào Data Warehouse. - Khai thác dữ liệu (Data mining): là quá trình phân tích khối lượng lớn dữ liệu để khám phá thông tin kinh doanh giúp các công ty giải quyết vấn đề, giảm thiểu rủi ro và nắm bắt cơ hội mới. Một số tính năng chính của Data Mining: + Dự đoán các mẫu dựa trên xu hướng trong dữ liệu. + Tập trung vào cơ sở dữ liệu lớn hơn. + Tạo thông tin phản hồi để phân tích, phân cụm dữ liệu trực quan. + Tính toán dự đoán kết quả. - Business Analyst (Phân tích kinh Doanh): qquyết định chiến lược đối với hoạt động kinh doanh của doanh nghiệp.Các nhiệm vụ chính của BI: 16 + Khai thác dữ liệu (Data mining). + Hỗ trợ quyết định (Decision support). + Phân tích xử lý trực tuyến (Online analytical processing (OLAP). + Truy vấn và báo cáo (Query and reporting). + Dự đoán (Forecasting). + Phân tích thống kê (Statistical analysis). Những lợi ích chính mà doanh nghiệp có thể nhận được từ các ứng dụng BI có thể giúp các công ty đưa ra quyết định thông minh hơn, dựa trên dữ liệu bao gồm khả năng: • Tăng tốc và cải thiện việc ra quyết định. • Tối ưu hóa quy trình kinh doanh nội bộ. • Phát hiện các vấn đề kinh doanh cần được giải quyết. • Xác định các xu hướng kinh doanh và thị trường mới nổi. • Cách thức hoạt động của trí thông minh kinh doanh. • Xác định các cách để tăng lợi nhuận. • Đạt được lợi thế cạnh tranh so với các công ty đối thủ. • Phân tích hành vi của khách hàng. 1.3 1.3.1 Kiến trúc kho dữ liệu Khái niệm kho dữ liệu Kho dữ liệu (DW): là kho lưu trữ điện tử của một lượng lớn thông tin của một doanh nghiệp hoặc tổ chức. Kho dữ liệu là một thành phần quan trọng của phân tích kinh doanh, sử dụng các kĩ thuật phân tích trên dữ liệu doanh nghiệp, là quy trình thu thập và quản lý dữ liệu từ nhiều nguồn khác nhau để cung cấp thông tin chi tiết có ý nghĩa về doanh nghiệp. 17 Hình 1.7: Ảnh mô tả kho dữ liệu Kho dữ liệu thường được sử dụng để kết nối và phân tích dữ liệu kinh doanh từ các nguồn không đồng nhất. Chúng lưu trữ dữ liệu lịch sử và hiện tại ở một nơi duy nhất được sử dụng để tạo báo cáo phân tích cho người lao động trong toàn doanh nghiệp. Kho dữ liệu là cốt lõi của hệ thống BI được xây dựng để phân tích và báo cáo dữ liệu. Một kho dữ liệu phải là một kho dữ liệu đồng nhất về ngữ nghĩa phục vụ cho việc đưa ra quyết định, cung cấp và lưu trữ các thông tin mà doanh nghiệp cần để đưa ra quyết định chiến lược. Một kho dữ liệu cũng thường được xem như là một kiến trúc được xây dựng bằng cách tích hợp từ nhiều nguồn dữ liệu không đồng nhất. Dữ liệu có thể là: ccó cấu trúc, Bán cấu trúc và Dữ liệu phi cấu trúc. Dữ liệu được xử lý, chuyển đổi và nhập để người dùng có thể truy cập dữ liệu đã xử lý trong Kho dữ liệu thông qua các công cụ Business Intelligence, ứng dụng khách SQL và bảng tính. Kho dữ liệu kết hợp thông tin đến từ các nguồn khác nhau thành một cơ sở dữ liệu toàn diện. Hiện nay khái niệm kho dữ liệu được phát triển rộng hơn, nó mô tả tập hợp các công nghệ, phương pháp, kỹ thuật có thể kết hợp với nhau thực hiện các chức năng lưu trữ, tích hợp, phân tích dữ liệu và xử lý để cung cấp thông tin cho 18 người dùng. Một kho dữ liệu thường có dung lượng rất lớn lên đến hàng trăm GB thậm chí tính bằng đơn vị TB. 1.3.2 Mô hình dữ liệu đa chiều OLAP (Online analytical processing) - xử lý phân tích trực tuyến là một phần mềm tính toán cho phép người dùng trích xuất và truy vấn dữ liệu một cách chọn lọc và dễ dàng. OLAP là dữ liệu đa chiều, điều này có nghĩa là tất cả thông tin có thể được so sánh theo nhiều cách thức khác nhau. OLAP cho phép bạn tìm ra xu hướng, các con số khủng hoảng và giúp chúng ta nhìn ra bức tranh lớn. Không giống OLTP, hệ thống OLAP làm việc với lượng rất lớn dữ liệu. Vậy nên độ ưu tiên cho tính chính xác và tính toàn vẹn của giao dịch không đặt cao như OLTP. Trong hệ thống OLAP kiểu quan hệ, dữ liệu đa chiều được lưu trữ dưới dạng bảng qua nhiều hệ, tổ chức theo cấu trúc chủ yếu theo lược đồ hình sao, lược đồ hình bông tuyết, ngoài ra còn có lược đồ ánh sao và lược đồ chòm sao. Lược đồ ngôi sao (Star Schema) Hình 1.8: Minh họa lược đồ hình sao 19 Lược đồ ngôi sao (Star Schema): là một kiến trúc mô hình kho dữ liệu (Data Warehouse) mà tại đó một bảng Fact được giải thích chi tiết bằng các bảng Dimension. Với cấu trúc này trong giống như sơ đồ một ngôi sao với bảng fact tại trung tâm và bảng dimension tỏa ra từ nó. Mô hình ngôi sao được sử dụng rộng rãi trong data marts. Ta có thể kết hợp chung trong mô hình top-down. Từ đó ta sẽ phân tích mô hình 2 ngôi sao và kết hợp chúng để tạo ra mô hình đơn giản. Lược đồ bông tuyết (Snowflake schema) Hình 1.9: Minh họa lược đồ bông tuyết Lược đồ bông tuyết (Snowflake schema): Một lược đồ được gọi là lược đồ bông tuyết nếu một hoặc nhiều bảng dimension không kết nối trực tiếp với bảng dữ kiện mà phải kết nối thông qua các bảng dimension khác. Lược đồ bông tuyết là dạng mở rộng của lược đồ hình sao bằng cách bổ sung thêm các Dim. Bảng Fact giống như lược đồ hình sao, các bảng Dim được chuẩn hoá. Các chiều có cấu trúc rõ ràng. Bảng Dim được chia thành hai chiều là chiều chính hay chiều phụ. 20 So sánh giữa Lược đồ ngôi sao (Star Schema) và lược đồ bông tuyết (Snowflake schema) 1.4 1.4.1 Các công nghê sử dụng Mô hình MVC Mô hình MVC (Model-View-Controller) là một mô hình kiến trúc phần mềm phổ biến được sử dụng trong phát triển ứng dụng web và ứng dụng phần mềm. Nó giúp phân chia rõ ràng các thành phần logic, giao diện người dùng và dữ liệu trong ứng dụng. - Mô hình Model: Model đại diện cho dữ liệu và logic xử lý dữ liệu trong ứng 21 dụng. Nó chịu trách nhiệm lưu trữ và xử lý dữ liệu từ các nguồn như cơ sở dữ liệu, tệp tin hoặc dịch vụ web. Model cung cấp các phương thức để truy xuất, cập nhật và xử lý dữ liệu. Nó không biết về View hoặc Controller và hoạt động độc lập. - Mô hình View: View là giao diện người dùng (UI) của ứng dụng. Nó chịu trách nhiệm hiển thị dữ liệu cho người dùng và tương tác với họ. View nhận dữ liệu từ Model và hiển thị nó theo cách thức thích hợp. Nó không chịu trách nhiệm xử lý dữ liệu hoặc thay đổi trạng thái của ứng dụng. - Mô hình Controller: Controller là thành phần trung gian giữa Model và View. Nó chịu trách nhiệm xử lý các yêu cầu từ người dùng, gửi yêu cầu tương ứng đến Model và cập nhật View dựa trên kết quả từ Model. Controller xử lý luồng điều khiển và điều chỉnh sự tương tác giữa Model và View. Mô hình MVC đã trở thành một tiêu chuẩn trong phát triển ứng dụng và cung cấp một cách cấu trúc hóa dự án dễ dàng theo dõi và bảo trì. 1.4.2 HTML HTML (HyperText Markup Language) là ngôn ngữ đánh dấu tiêu chuẩn được sử dụng để xây dựng các trang web. HTML định nghĩa cấu trúc và định dạng nội dung trên trang web, bao gồm văn bản, hình ảnh, liên kết, biểu đồ, bảng, form và nhiều thành phần khác. HTML là một thành phần cơ bản của việc phát triển trang web và được hỗ trợ bởi tất cả các trình duyệt web hiện đại. 1.4.3 CSS CSS (Cascading Style Sheets) là một ngôn ngữ đánh dấu được sử dụng để mô tả cách định dạng và trình bày nội dung trên trang web. CSS cho phép bạn thay đổi màu sắc, kích thước, kiểu chữ, khoảng cách và vị trí của các phần tử trên trang web. CSS hoạt động bằng cách áp dụng các quy tắc (rules) vào các phần tử HTML 22 thông qua việc chọn các phần tử dựa trên các selector. Mỗi quy tắc bao gồm một selector và một khối thuộc tính và giá trị. 1.4.4 JavaScript JavaScript là một ngôn ngữ lập trình phía client được sử dụng phổ biến trong phát triển các ứng dụng web. Nó cho phép thực hiện các tác vụ tương tác, xử lý dữ liệu và thay đổi nội dung trên trang web một cách động. JavaScript có thể được sử dụng để thực hiện các chức năng sau đây trong một trang web: - Tương tác người dùng: JavaScript cho phép xử lý sự kiện người dùng như nhấp chuột, gõ phím và di chuyển con trỏ. Bằng cách gắn kết các hàm JavaScript vào các sự kiện này, bạn có thể tạo ra phản hồi tương tác động từ người dùng trên trang web. - Thay đổi nội dung trang web: JavaScript cho phép bạn thay đổi nội dung của các phần tử HTML. Bạn có thể thêm hoặc xóa các phần tử, thay đổi văn bản, hình ảnh, thuộc tính và cấu trúc của trang web dựa trên hành động của người dùng hoặc các điều kiện khác. - Xử lý và kiểm tra dữ liệu: JavaScript cung cấp các công cụ xử lý dữ liệu mạnh mẽ. Bạn có thể kiểm tra tính hợp lệ của dữ liệu đầu vào, tính toán giá trị, thực hiện các phép tính, và hiển thị kết quả cho người dùng. - Gửi và nhận dữ liệu từ máy chủ: JavaScript cho phép tương tác với máy chủ thông qua các yêu cầu HTTP. Bạn có thể gửi yêu cầu đến máy chủ, nhận dữ liệu trả về và cập nhật nội dung trang web dựa trên kết quả nhận được. - Thao tác với API và dịch vụ web: JavaScript cho phép bạn tương tác với các API và dịch vụ web bên ngoài để lấy dữ liệu hoặc thực hiện các chức năng phức tạp. Bạn có thể tích hợp các dịch vụ bản đồ, thanh toán, xác thực người dùng và nhiều dịch vụ khác vào trang web của mình. 23 1.4.5 Bootstrap Bootstrap là một framework CSS phổ biến được sử dụng để phát triển các trang web và ứng dụng web thân thiện với thiết bị di động. Nó cung cấp một bộ công cụ và các lớp CSS đã được định dạng sẵn để tạo giao diện người dùng hấp dẫn, đáng tin cậy và đáp ứng. Bootstrap giúp giảm thời gian và công sức trong việc xây dựng giao diện bằng cách cung cấp các thành phần sẵn có và kiểu CSS chuẩn. Các thành phần bao gồm các hệ thống lưới linh hoạt, nút bấm, biểu mẫu, thẻ, menu điều hướng, tiện ích JavaScript và nhiều hơn nữa. Một số đặc điểm và lợi ích của Bootstrap bao gồm: - Đáp ứng: Bootstrap hỗ trợ thiết kế đáp ứng, tức là giao diện của trang web có thể tự động thích ứng với các kích thước màn hình khác nhau, bao gồm cả điện thoại di động, máy tính bảng và máy tính để bàn. - Hệ thống lưới: Bootstrap cung cấp một hệ thống lưới linh hoạt dựa trên cột, giúp xây dựng giao diện trang web một cách dễ dàng và linh hoạt. Lưới được chia thành 12 cột và cho phép điều chỉnh kích thước và vị trí của các phần tử trên trang. - Các thành phần UI: Bootstrap cung cấp một loạt các thành phần giao diện người dùng sẵn có như nút bấm, biểu mẫu, thanh điều hướng, tiện ích thông báo, hộp thoại modal, bảng và nhiều thành phần khác. Điều này giúp bạn xây dựng giao diện trực quan và chuyên nghiệp nhanh chóng. - Tùy chỉnh dễ dàng: Bootstrap cho phép tùy chỉnh thông qua việc viết CSS tùy chỉnh hoặc sử dụng trình tạo Bootstrap để tạo ra phiên bản tùy chỉnh của framework. - Hỗ trợ trình duyệt đa nền tảng: Bootstrap tương thích với hầu hết các trình duyệt phổ biến như Chrome, Firefox, Safari, Edge và Internet Explorer. 24 1.4.6 PHP laravel PHP Laravel là một framework phát triển ứng dụng web mã nguồn mở, được viết bằng ngôn ngữ lập trình PHP. Laravel cung cấp một cách tiếp cận dễ dàng và hiệu quả để xây dựng các ứng dụng web phức tạp và mạnh mẽ. Framework là một bộ các công cụ, thư viện và quy tắc được tổ chức một cách cấu trúc nhằm hỗ trợ và giúp bạn nhanh chóng phát triển ứng dụng web. Laravel giúp đơn giản hóa việc xây dựng ứng dụng web bằng cách cung cấp các tính năng tiện ích, như hệ thống routing, hệ thống quản lý cơ sở dữ liệu, xác thực người dùng, giao diện người dùng, và nhiều tính năng khác. Các điểm nổi bật của Laravel bao gồm: - Cú pháp đẹp và dễ đọc: Laravel sử dụng cú pháp đơn giản và dễ hiểu, giúp cho việc viết mã trở nên dễ dàng và dễ quản lý. - Hệ thống routing: Laravel cung cấp một hệ thống routing mạnh mẽ cho phép bạn định nghĩa các tuyến đường (routes) cho ứng dụng của mình, giúp xác định các hành động sẽ được thực thi khi người dùng truy cập các URL cụ thể. - Eloquent ORM: Laravel đi kèm với Eloquent ORM, một công cụ mạnh mẽ giúp bạn tương tác với cơ sở dữ liệu bằng cách sử dụng các đối tượng và cú pháp dễ sử dụng thay vì sử dụng truy vấn SQL trực tiếp. - Hỗ trợ Migration: Laravel cung cấp công cụ Migration giúp bạn duy trì và điều chỉnh cấu trúc cơ sở dữ liệu một cách linh hoạt và dễ dàng. Hệ thống middleware: Laravel cho phép bạn sử dụng middleware để xử lý các yêu cầu trước khi chúng đến đích, giúp kiểm soát và bảo mật ứng dụng một cách linh hoạt. 25 1.4.7 SQL Server Hình 1.10: SQL Server SQL (Structured Query Language): là một dạng ngôn ngữ truy vấn có cấu trúc. SQL là tập hợp các câu lệnh để tương tác với cơ sở dữ liệu. Trong thực tế, SQL là một ngôn ngữ truy vấn tiêu chuẩn, được dùng trong hầu hết các hệ quản trị cơ sở dữ liệu như: SQL Server, MySQL, Oracle, MS Access,. . . SQL Server hay Microsoft SQL Server: là một phần mềm được phát triển bởi Microsoft dùng để lưu trữ, thao tác với dữ liệu theo tiêu chuẩn RDBMS (Relational Database Management System). SQL Server được xây dựng một cách tối ưu để có thể hoạt động trên hệ sơ sở dữ liệu rất lớn, lên đến hàng Terabyte. Nó cung cấp cho người dùng đầy đủ các công cụ, phục vụ việc quản lý dữ liệu đến ngôn ngữ truy vấn SQL. Điểm mạnh của SQL Server là có thể kết hợp được với nhiều nền tảng phổ biến như ASP.NET, C# hoặc là nó cũng có thể hoạt động độc lập. SQL Server được cấu thành từ 7 thành phần khác nhau, mỗi thành phần mang một chức năng riêng. Tất cả tạo nên một hệ thống SQL Server hoàn chỉnh, đáp ứng chức năng phân tích và lưu trữ dữ liệu: • Database Engine: Có chức năng lưu trữ dữ liệu dưới dạng table và support, 26 có thể tự điều chỉnh được. • Integration Services: Là tập hợp các đối tượng lập trình, các công cụ đồ họa, nhằm thực hiện các thao tác sao chép, di chuyển, chuyển đổi dữ liệu. • Full Text Search Services: Đây là thành phần đặc biệt trong việc truy vấn và đánh giá các chỉ mục dữ liệu văn bản được lưu trữ trong database. • Reporting Services: Là một công cụ có chức năng tạo, quản lý và triển khai các báo cáo cho Server và Client. Đây cũng là nền tảng đẩy xây dựng ứng dụng báo cáo. • Service Broker: Là môi trường lập trình tạo ra các ứng dụng. • Notification Services: Là nền tảng phát triển và triển khai các ứng dụng soạn và gửi thông báo. Ngoài ra, dịch vụ này cũng cung cấp tính năng gửi thông báo đến hàng ngàn người đăng ký sử dụng trên các thiết bị khác nhau. • Analysis Services: Là dịch vụ phân tích dữ liệu bằng kỹ thuật khai thác hình khối đa chiều và dữ liệu có sẵn. 1.4.8 Công cụ trực quan hóa dữ liệu Power BI a) Giới thiệu chung Power BI là một phần mềm của Microsoft ra đời năm 2011, là một công cụ hỗ trợ cho phân tích dữ liệu, xây dựng giải pháp và tự động hóa quy trình, giúp các doanh nghiệp thúc đẩy kinh doanh. Power BI đóng vai trò là một công cụ Kinh doanh thông minh (Business Intelligence) có khả năng xử lý, tổ chức, phân tích và trực quan hóa dữ liệu, giúp cho dữ liệu từ dạng thô trở thành các thông tin có giá trị hỗ trợ cho việc ra phân tích từ đó quyết định của các công ty, tổ chức, doanh nghiệp. Sự thể hiện của Power BI là các biểu đồ, bảng điều khiển (dashboard) không chỉ đẹp đẽ mà còn chứa đựng nhiều thông tin có giá trị giúp diễn giải, kiểm soát tình hình kinh doanh và dự báo cho tương lai. b)Các thành phần của Power BI 27 Hình 1.11: Ảnh mô tả Power BI Trong Power BI có các thành phần như sau: - Power Query: là công cụ để làm sạch, chuyển đổi và chuẩn hóa dữ liệu, đưa dữ liệu từ dạng thô trở thành dữ liệu hữu ích, sẵn sàng để đưa vào phân tích. - Power Map: là công cụ trực quan hóa dữ liệu dạng 3-D có chức năng lập bản đồ dữ liệu. Hoạt động dựa trên bản đồ của Bing, nó đã tạo ra các hình ảnh trực quan dựa trên thông tin quốc gia, tiểu bang, thành phố và địa chỉ đường phố hoặc vĩ độ, kinh độ. - Power Pivot: là công cụ mô hình hóa dữ liệu có chức năng thiết lập các liên kết và tạo ra các phép tính với các hàm data analysis expression (DAX). - Power Question and Answer: là tính năng hỏi và đáp (Question and Answer) trong Power BI cho phép bạn khám phá data của mình theo cách mình mong muốn bằng những câu hỏi. Đây là cách nhanh nhất để nhận được câu trả lời từ dữ liệu của bạn bằng ngôn ngữ tự nhiên. - Power View: có chức năng tạo các biểu đồ trực quan, có tính tương tác với nhau, các bộ lọc (filter, slicer) từ đó giúp ta xây dựng nên một dashboard chứa nhiều thông tin hữu ích. - Power BI Website (Power BI Service): là một dạng phần mềm như là dịch vụ Software as a Service (SaaS), có vai trò như là một đám mây lưu trữ, theo 28 dõi và có thể chia sẻ báo cáo với người khác. - Power BI Desktop: là công cụ trung tâm của kiến trúc của Power BI, có chức năng xây dựng và phát triển các giải pháp kinh doanh thông minh và phân tích dữ liệu. - Power BI Mobile Apps: là phiên bản ứng dụng dành cho điện thoại, tạo nên sự thuận tiện và linh hoạt, giúp ta có thể xem báo cáo mọi lúc mọi nơi. 29 Chương 2 KHẢO SÁT 2.1 Hệ thống hiện tại doanh nghiệp sử dụng - Doanh nghiệp đang sử dụng công cụ Google Sheet để lữu trữ các dữ liệu và phân tích dữ liệu bán hàng của doanh nghiệp. - Việc bảo mật khi quản lý qua Google Sheet còn hạn chế. Dù các Sheet có thể cho phép đặt password và phân cấp quyền truy cập dữ liệu nhưng người quàn lý sẽ không thể phân quyền cho nhân viên xem dữ liệu hay sử dụng tính năng nhất định. Vì vậy dẫn đến việc một nhân có thể sửa đổi hoặc xóa dữ liệu của một nhân viên khác và bất cập là phải truy xuất vào lịch sử để xem nội dung đã xóa ra khiến mất thời gian và kiểm soát không cao. - Các file lưu trữ thì chưa được khoa học, tốn khá nhiều thời gian để tìm kiếm khi cần sử dụng. - Các báo cáo chỉ được xây dựng ở mức thống kê theo dạng bảng, chưa được trực quan hóa bằng các biểu đồ nên doanh nghiệp sẽ kó có cái nhìn tổng quan về thực trạng kinh doanh của công ty mình. 30 Hình 2.1: Hệ thống cũ 31 Hình 2.2: Hệ thống cũ 2.2 2.2.1 Khảo sát nghiệp vụ Quy trình nghiệp vụ thực tế Hình 2.3: Quy trình xử lí đơn hàng Khái niệm về nghiệp vụ bán hàng: là quá trình mà người bán tìm hiểu,khám phá, tạo và đáp ứng nhu cầu của người mua và từ đó và từ đó giúp cả hai bên 32 nhận được quyền lời thỏa đáng. Các hình thức bán hàng phổ biến hiện nay: Hình 2.4: Mô hình chuỗi cửa hàng bán lẻ • Bán hàng trực tiếp (Direct selling): Bán hàng bằng cách gặp trực tiếp khách hàng. • Bán lẻ (Retail selling): Sản phẩm được bán cho thông qua kênh phân phối: Siêu thị, shop. . . • Đại diện bán hàng (Agency selling): Sẽ có đơn vị khác thay nhà sản xuất để bán hàng cho người dùng. • Bán hàng qua điện thoại (Telesales): Bán hàng thông qua hình thức gọi điện thoại cho khách hàng. • Bán hàng tận nhà (Door to Door selling): Nhân viên đến tận nhà của khách hàng để tư vấn sản phẩm/dịch vụ, và bán hàng trực tiếp. • Business to business (B2B) selling – Doanh nghiệp này bán hàng cho doanh nghiệp khác. 33 • Business to government selling - Doanh nghiệp cung cấp giải pháp và bán hàng cho chính phủ, nhà nước (Business to government selling) • Bán hàng trực tiếp trên internet (Online Selling). Quản lý đơn hàng (order management): là việc quản lý các quy trình kinh doanh liên quan đến đơn hàng cho hàng hóa hoặc dịch vụ. Quản lí đơn hàng bắt đầu khi khách hàng đặt hàng và kết thúc khi họ nhận được gói hoặc dịch vụ của họ. Nó cho phép một doanh nghiệp điều phối toàn bộ quá trình thực hiện – từ thu thập đơn hàng, tồn kho và khả năng giao hàng đến khả năng cung cấp dịch vụ. Quy trình đặt hàng điển hình: - Bước 1: Nhận đơn đặt hàng - Bước 2: Quản lý việc thực hiện đơn hàng - Bước 3: Quản lý trải nghiệm sau bán hàng 34 Dưới đây là luồng quy trình nghiệp vụ bán hàng của công ty: Hình 2.5: Luồng nghiệp vụ Mô tả luồng nghiệp vụ • Bộ phận Marketing sẽ lên kế hoạch các chiến dịch sẽ thực hiện chạy quảng cáo trên các nền tảng • Nhân viên bán hàng sau khi có được dữ liệu khách hàng, sẽ tư vấn sản phẩm cho khách hàng. • Sau khi tư vấn, nhân viên bán hàng sẽ cập nhật trạng thái khách hàng lên hệ thống. Trường hợp 1 : Nếu khách hàng đồng ý chốt đơn thì nhân viên sẽ tạo đơn hàng, cập nhật trạng thái khách hàng và bàn giao cho bộ phận Điều phối giao vận. 35 Trường hợp 2 : Nếu khách hàng không chốt đơn thì nhân viên bán hàng sẽ cập nhật trạng thái khách hàng và chuyển thông tin sang phần chăm sóc khách hàng • Bộ phận điều phối giao vận tiếp nhận đơn hàng và chuyển cho bên giao vận vẩn chuyển đến cho khách hàng. • Phía công ty giao vận nhận được đơn hàng sẽ gửi file đối soát, nhân viên Điều phối giao vận dựa vào mã vận đơn để theo dõi quá trình vận chuyển đơn hàng của khách và cập nhật trạng thái lên hệ thống. – Nếu khách nhận hàng thì cập nhật trạng thái giao hàng trên hệ thống quản lý khách hàng là “Đã nhận hàng” – Nếu khách hàng không nhận hàng thì nhân viên điều phối giao vận gọi điện lại cho khách hẹn thời gian giao hàng và báo cho bên bưu cục phát lại hàng. – Trường hợp đã liên hệ lại với khách và phát lại hàng nhưng khách không nhận hàng thì hủy đơn, thu hồi lại hàng từ phía bưu cục. 2.2.2 Quy mô bộ dữ liệu Bộ dữ liệu bán hàng bao gồm: 10 bảng, một loạt các chỉ mục, ràng buộc khóa chính và khóa ngoại: • Gần 5000 khách hàng • 6 cửa hàng • 10 nhân viên bán hàng. • Hơn 300 sản phẩm • 9 thương hiệu • 7 phân loại • Gần 200 thành phố của 3 bang tại Mĩ 36 2.2.3 Luồng dữ liệu Bộ dữ liệu chứa thông tin chi tiết về việc bán xe đạp của một công ty. Các thông tin cơ bản: • Thị trường: Mĩ • Lĩnh vực kinh doanh: Bán hàng • Thời gian: 24 tháng từ tháng 01/2016 đến 12/2018 Hình 2.6: Luồng nghiệp vụ 2.2.4 Trạng thái đơn hàng - Sau khi được bàn giao các khách hàng đã chốt đơn hàng và đơn hàng thì bộ phận điều phối giao vận sẽ lên đơn hàng và điều phối nhà vận chuyển có đơn hàng. - Khi nhà vận chuyển giao hàng cho khách, nếu khách hàng đồng ý nhận hàng thì nhân viên điều phối giao vận sẽ cập nhập trạng thái "Đã nhận hàng". Còn 37 Hình 2.7: Các trạng thái đơn hàng nếu khách hàng không đồng ý nhận hàng sẽ cập nhập trạng thái "Hủy đơn" và hàng sẽ được gửi lại về kho hàng. 2.3 Yêu cầu của hệ thống mới Yêu cầu chức năng Em xin làm đề tài Xây dựng hệ thông quản lý đơn hàng, với những chức năng cụ thể được đặt ra như sau: - Quản lý tài khoản: Với chức năng này nhân viên bán hàng sẽ có thể tạo tài khoản mới, đăng nhập để sử dụng hệ thống, thay đổi mật khẩu, đăng xuất khỏi hệ thống. Ngoài ra, chức năng này giúp quản lí có được danh sách tài khoản, phân quyền và cập nhật thông tin tài khoản. - Quản lý danh mục sản phẩm và các sản phẩm: Nhà quản lý có thể quản lý, thêm, xóa, chỉnh sửa thông tin của quản lý danh mục sản phẩm, nhãn hàng, cửa hàng,... Trong khi đó nhân viên bán hàng chỉ có quyền thêm thống tin - Quản lý khách hàng: Chức năng này giúp các nhân viên có thể xem được danh sách các khách hàng mua hàng và có thể thêm mới thông tin khách hàng nếu có khách hàng mới. Chỉ nhân viên quản lý mới có quyền sửa và xóa thông tin - Quản lý đơn hàng: Chức năng này cho các nhân viên xem được các đơn đặt hàng của khách, kiểm soát được trạng thái của các đơn hàng và giá trị của mỗi đơn hàng và có thể thêm mới thông tin đơn hàng nếu có đơn hàng mới. Chỉ nhân viên quản lý mới có quyền sửa và xóa thông tin. 38 - Quản lí nhân viên: Chức năng này cho các nhân viên xem được các thông tin của nhau nhằm nhân viên có thể dễ liên lạc với nhau khi cần. Chỉ có nhân viên quản lí mới có quền thêm, sửa, xóa thông tin cùng với phân công chức vụ, người quản lý cho nhân viên. - Phân tích dữ liệu và báo cáo: Dùng để xem những báo cáo về tình hình kinh doanh và quản lý các khách hàng. Chức năng cho phép tất cả nhân viên xem được các Dashboard như: Dashboard vận hàng bán hàng, Dashboard phân tích các dữ liệu, Dashboard phân tích khách hàng,.... Hệ thống sẽ phục vụ đối tượng chính là: Nhân viên quản lý và nhân viên bán hàng. - Nhân viên quản lý: Là người làm chủ hệ thống, có quyền kiểm soát mọi hoạt động của hệ thống. Quản lý sẽ được cấp một username và password để đăng nhập vào hệ thống thực hiện các chức năng của mình. Nếu như quá trình đăng nhập thành công thì nhà quản lý có những chức năng sau: + Các chức năng cơ bản: thêm, xóa, sửa các danh mục, sản phẩm,.. + Các chức năng Đăng nhập, tạo tài khoản mới, đổi mật khẩu, phân quyền cho các tài khoản.... + Sửa thông tin đơn đặt hàng nếu như khách hàng có nguyện vọng mà phải xác thực thông tin với khách hàng. + Xem được phân hệ Phân tích dữ liệu và báo cáo - Nhân viên bán hàng: Là người có thể, chỉnh sửa các thông tin về khách hàng, đơn hàng. Người này được cấp một username và password để đăng nhập vào hệ thống thực hiện các chức năng của mình. Nếu như quá trình đăng nhập thành công thì nhà quản lý có những chức năng sau: + Các chức năng cơ bản: thêm các danh mục, sản phẩm,.. (không có quyền sửa, xóa) + Các chức năng Đăng nhập, tạo tài khoản mới, đổi mật khẩu,.... + Xem được phân hệ Phân tích dữ liệu và báo cáo Yêu cầu về hệ thống 39 - Hệ thống cần có bố cục dễ nhìn, giao diện dễ sử dụng, màu sắc hài hòa. - Hệ thống bảo mật tốt để đảm bảo các thông tin của khách hàng, đơn hàng, nhân viên, cũng như danh mục sản phẩm không bị rò rỉ ra ngoài. - Hệ thống cần dễ nâng cấp, bảo trì, sửa chữa khi cần bổ sung và cập nhật những tính năng mới. Yêu cầu về phân tích dữ liệu và báo cáo: 1. Độc lập với hệ thống xử lý giao dịch của công ty, chỉ có chức năng tổng hợp, phân tích dữ liệu từ cơ sở dữ liệu của hệ thống giao dịch. 2. Phân tích được dữ liệu theo nhiều chiều, trực quan, dữ liệu chính xác và đã được chuẩn hóa. Hệ thống phân tích dữ liệu ra được các báo cáo sau: - Phân tích doanh thu - Phân tích doanh số - Phân tích số lượng tồn kho - Phân tích khách hàng - Phân tích ARPO, ARPU, ARPE 40 Chương 3 PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 3.1 3.1.1 Phân tích và thiết kế hệ thống quản lí đơn hàng Sơ đồ phân cấp chức năng Hình 3.1: Sơ đồ phân cấp chức năng 41 Từ các yêu cầu khảo sát, em xây dựng hệ thống gồm 6 chức năng chính: - Quản trị hệ thống: quản lý tài khoản, các nhóm người dùng và phân quyền sử dụng hệ thống - Quản lý khách hàng: quản lý thông tin khách hàng như tên, tuổi, số điện thoại, địa chỉ, giới tính, tuổi - Quản lý danh mục: quản lý danh mục sản phẩm, nhãn hàng, cửa hàng,... - Quản lý đơn hàng: quản lý các dữ liệu về đơn hàng như thông tin khách hàng đặt, sản phẩm, số lượng, thành tiền,... - Quản lí nhân viên: quản lí các thông tin về nhân viên bán hàng, nhân viên quản lí như: tên, địa chỉ, số điện thoại,... - Phân tích dữ liệu và báo cáo: quản lý các báo cáo dashboard hỗ trợ cho việc phân tích dữ liệu bán hàng, từ đó giúp nhà quản lý có thể đưa ra được các chiến lược kinh doanh và chăm sóc khách hàng phù hợp. 3.1.2 Sơ đồ luồng dữ liệu Hình 3.2: Sơ đồ luồng dữ liệu mức ngữ cảnh 42 Hình 3.3: Sơ đồ luồng dữ liệu 43 3.1.3 Sơ đồ thực thể liên kết Hình 3.4: Sơ đồ thực thể liên kết 3.1.4 Kiến trúc hệ thống Quản lý đơn hàng Trong phạm vi đồ án này, em lựa chọn kiến trúc MVC (Model – View – Controller) để xây dựng hệ thống Quản lý đơn hàng. Mô hình MVC chia ứng dụng tương tác thành 3 phần: - Model: đại diện cho dữ liệu và luật xử lý dữ liệu của ứng dụng. - View: chịu trách nhiệm hiển thị dữ liệu từ Model và cung cấp giao diện người dùng cho người dùng cuối. - Controller: là thành phần trung gian giữa Model và View. 44 Hình 3.5: Mô hình MVC Cách hoạt động của mô hình MVC như sau: 1. Người dùng sẽ tương tác với giao diện người dùng (View). 2. View sẽ thông báo về các sự kiện cho Controller. 3. Khi controller nhận sự kiện và tương tác với Model để yêu cầu hoặc cập nhật dữ liệu. 4. Model sẽ xử lý các yêu cầu từ Controller và cung cấp dữ liệu tương ứng. 5. Controller sẽ nhận dữ liệu từ Model và cập nhật lại View. 6. View sẽ sử dụng dữ liệu mới để hiển thị thông tin mới cho người dùng. Việc tách biệt các thành phần trong mô hình MVC giúp tăng tính linh hoạt và dễ dàng quản lý ứng dụng khi phát triển và bảo trì. Nó cũng thúc đẩy việc tái sử dụng mã nguồn, vì bạn có thể thay đổi giao diện người dùng hoặc cải thiện logic xử lý mà không ảnh hưởng đến các thành phần khác trong mô hình. 45 Thiết kế chi tiết gói trong mô hình MVC: a. Các lớp trong Models Các lớp trong Models được xây dựng theo các bảng dữ liệu đã thiết kế, bao gồm: - Customer: Thông tin khách hàng - Brand: Thông tin thương hiệu - Staff: Thông tin nhân viên - Categories: Thông tin danh mục sản phẩm - Order: Thông tin đơn hàng - Store: Thông tin cửa hàng - Product: Thông tin sản pẩm - Manager: Thông tin nhân viên quản lý - Order_item: Thông tin chi tiết đơn hàng - Stocks: Thông tin tồn kho Hình 3.6: Các lớp trong Models 46 b. Các lớp trong View Trong lớp view, dự theo các chức năng đã phân tích, thiết kế, em đã xây dựng các giao diện: - Login: giao diện đăng nhập người dùng hệ thống - Register: giao diện đăng ký người dùng hệ thống - Logout: giao diện sau khi đăng xuất khỏi hệ thống - Home: giao diện trang chủ khi đăng nhập thành công - Staff: giao diện trang thông tin nhân viên - CreateStaff: giao diện thêm mới thông tin nhân viên - UpdateStaff: giao diện chỉnh sửa thông tin nhân viên - Products: giao diện trang quản lý sản phẩm - CreateProduct: giao diện thêm mới thông tin sản phẩm - UpdateProduct: giao diện chỉnh sửa thông tin sản phẩm - Customers: giao diện trang quản lý khách hàng - CreateCustomer: giao diện thêm mới khách hàng - UpdateCustomer: giao diện chỉnh sửa thông tin khách hàng - Orders: giao diện trang quản lý đơn hàng - CreateOrder: giao diện thêm mới đơn hàng - UpdateOrder: giao diện chỉnh sửa đơn hàng - Brands: giao diện quản lý nhãn hiệu - CreateBrand: giao diện thêm mới thông tin nhãn hiệu - UpdateBrand: giao diện chỉnh sửa thông tin nhãn hiệu - Store: giao diện quản lý cửa hàng - CreareStore: giao diện thêm mới thông tin cửa hàng - UpdateStore: giao diện chỉnh sửa thông tin cửa hàng - Categories: giao diện quản lý danh mục sản phẩm - CreateCategory: giao diện thêm mới thông tin danh mục sản phẩm - UpdateCategory: giao diện chỉnh sửa thông tin danh mục sản phẩm - Stocks: giao diện quản lý tồn kho 47 - CreateStock: giao diện thêm mới thông tin tồn kho - UpdateStock: giao diện chỉnh sửa thông tin tồn kho - Admin: giao diện trang admin (nhà quản lý) Hình 3.7: Các lớp trong View 48 c. Các lớp trong Controllers Hình 3.8: Các lớp trong Controllers 3.1.5 Mô hình dữ liệu quan hệ Từ bộ dữ liệu bán hàng mặt hàng xe đạp của công ty đó, ta xây dựng được mô hình dữ liệu quan hệ bao gồm các bảng như sau: • Bảng sales_stores: Thông tin về cửa hàng. Mỗi cửa hàng có tên cửa hàng, 49 thông tin liên hệ như điện thoại và email, và địa chỉ bao gồm đường phố, thành phố, tiểu bang và mã zip. • Bảng sales_staffs: lưu trữ các thông tin cần thiết của nhân viên bán hàng như họ, tên. Nó cũng chứa thông tin liên lạc như email và điện thoại. • Bảng sales_managers: lưu trữ các thông tin cần thiết của nhân viên quản lí như họ, tên. Nó cũng chứa thông tin liên lạc như email và điện thoại. • Bảng production_categories: lưu trữ các danh mục của xe đạp: xe đạp trẻ em, xe đạp thoải mái và xe đạp điện. • Bảng production_brands: lưu trữ thông tin về xe đạp của từng thương hiệu • Bảng production_products: lưu trữ thông tin của sản phẩm như: tên, thương hiệu, danh mục, năm mẫu và giá niêm yết. • Bảng sales_customers: lưu trữ thông tin của khách hàng như: tên, họ, điện thoại, giới tính, độ tuổi, email, đường phố, thành phố, tiểu bang và mã zip. • Bảng sales_orders: lưu trữ thông tin tiêu đề của đơn đặt hàng • Bảng sales_order_items: lưu trữ các chi tiết đơn hàng của một đơn hàng bán hàng • Bảng production_stocks: lưu trữ thông tin tồn kho, tức là số lượng của một sản phẩm cụ thể trong một cửa hàng cụ thể. 50 Thông tin cụ thể về các bảng: Tên bảng Tên trường Kiểu dữ liệu Mô tả Production_stocks store_id Float Mã cửa hàng product_id Nvarchar (255) Mã sản phẩm Quantity Int Số lượng product_id Int Mã số sản phẩm product_name Nvarchar (255) Tên sản phẩm brand_id Int Mã số nhãn hiệu category_id Int Mã số loại sản phẩm model_year Nvarchar (255) Năm sản xuất list_price Int Tổng tiền sản phẩm brand_id Int Mã số nhãn hiệu brand_name Nvarchar (255) Tên nhãn hiệu category_id Float Mã số loại sản phẩm categoty_name Nvarchar (255) Tên loại sản phẩm orders_id Float Mã đơn đặt hàng order_status Int Trạng thái đơn hàng payment Nvarchar (255) Phương thức thanh Production_products Production_brands Production_categories Sales_orders toán order_size Nvarchar (25) Kích thước sản phẩm total_bill Nvarchar (255) Tổng giá trị đơn hàng store_id Nvarchar (255) Mã số cửa hàng 51 Sales_order_items Sales_customers staff_id Nvarchar (255) Mã số nhân viên customer_id Nvarchar (255) Mã số khách hàng order_date Nvarchar (255) Thời gian đặt hàng orders_id Float Mã đơn đặt hàng item_id Nvarchar (255) Mã mục sản phẩm quantity Nvarchar (255) Số lượng sản phẩm product_id Nvarchar (25) Mã sản phẩm list_price Nvarchar (255) Giá trị sản phẩm discount Nvarchar (255) Phần trăm giảm giá customer_id Int Mã khách hàng first_name Nvarchar (255) Tên họ khách hàng last_name Nvarchar (255) Tên khách hàng age Nvarchar (255) Tuổi khách hàng gender Nvarchar (255) Giới tính khách hàng dependents Nvarchar (255) Bảo hộ của khách hàng phone Nvarchar (255) Số điện thoại khách hàng email Nvarchar (255) Tên hòm thư của khách hàng streets Nvarchar (255) Tên đường city Nvarchar (255) Tên thành phố state Nvarchar (255) Tên bang zip_code Nvarchar (255) Mã bưu chính 52 Sales_staffs staff_id Int Mã số nhân viên bán hàng first_name Nvarchar (255) Tên họ nhân viên bán hàng last_name Nvarchar (255) Tên nhân viên bán hàng phone Nvarchar (255) Số điện thoại nhân viên bán hàng email Nvarchar (255) Tên hòm thư của nhân viên bán hàng active Nvarchar (255) Đánh giá tốt store_id Nvarchar (255) Mã số cửa hàng manager_id Nvarchar (255) Mã số nhân viên quản lí Sales_managers managers_id Int Mã số nhân viên quản lí first_name Nvarchar (255) Tên họ nhân viên quản lí last_name Nvarchar (255) Tên nhân viên quản lí phone Nvarchar (255) Số điện thoại nhân viên quản lí email Nvarchar (255) Tên hòm thư của nhân viên quản lí active_status Nvarchar (255) Trạng thái đánh giá tốt 53 Sales_stores store_id Nvarchar (255) Mã số cửa hàng store_id Int Mã cửa hàng store_name Nvarchar (255) Tên cửa hàng phone Nvarchar (255) Số điện thoại cửa hàng email Nvarchar (255) Tên hòm thư của cửa hàng streets Nvarchar (255) Tên đường city Nvarchar (255) Tên thành phố state Nvarchar (255) Tên bang zip_code Nvarchar (255) Mã bưu chính 54 Hình 3.9: Mô hình dữ liệu OLTP 55 3.1.6 Thiết kế giao diện hệ thống (Mockup) Hình 3.10: Giao diện đăng nhập mock up Hình 3.11: Giao diện đăng ký mock up Giao diện Quản lý đơn hàng mockup 56 Hình 3.12: Giao diện Quản lý đơn hàng mockup Giao diện Phân hệ Phân tích dữ liệu và Báo cáo Hình 3.13: Giao diện Phân hệ Phân tích dữ liệu và Báo cáo 57 3.2 3.2.1 Phân tích và thiết kế phân hệ Phân tích dữ liệu và Báo cáo Kiến trúc hệ thống Phân tích dữ liệu Hình 3.14: Kiến trúc hệ thống phân tích dữ liệu 3.2.2 Khám phá dữ liệu Bộ dữ liệu em sử dụng để phân tích trong báo cáo này, em đã khám phá dữ liệu theo một số chiều chính như sản phẩm, nhân viên, cửa hàng...theo tổng tiền và tổng số lượng của từng chiều đó. Công cụ trực quan hóa dữ liệu là Power Bi. Dưới đây là khám phá tổng quan về bộ dữ liệu theo các chiều phân tích chính: Khám phá dữ liệu theo tuổi và giới tính khách hàng: Hình 3.15: Doanh thu theo tuổi và giới tính của khách hàng 58 Hình 3.16: Doanh số theo tuổi và giới tính của khách hàng Về doanh thu và số lượng sản phẩm bán theo đối tượng khách hàng, hay cụ thể tại đây là tuổi tác và giới tính, cho ta thấy bức tranh về phân khúc khách hàng khá rõ ràng, chia làm 4 phần: • Phần cao hơn vượt trội: khách hàng ở độ tuổi 16 với tỉ lệ giới tính gần bằng nhau. • Phần cao bình thường: bao gồm nhóm khách hàng từ 17 cho tới 29 tuổi. • Phần trung bình: kéo dài từ phân khúc từ 34 cho tới 59 tuổi với tỉ lệ giới tính không chênh lệch nhiều. • Phần thấp: từ 30 tới 33 và 60 cho tới 70 tuổi với tỉ lệ giới tính không chênh lệch nhiều. Giữa các phân vùng như trên thì mức độ chênh lệch nội bộ là không nhiều, tuy nhiên vẫn có sự khác nhau giữa doanh thu và số lượng sản phẩm ví dụ như đối tượng khách hàng 22 tuổi. 59 Khám phá dữ liệu theo thương hiệu và chủng loại: Hình 3.17: Doanh thu theo thương hiệu và chủng loại • Dẫn đầu doanh thu là hãng Trek với doanh thu gần 3 triệu, sau đó xếp thứ 2 là Electra và các hãng còn lại giảm dần cho tới Ritchey và Strider là mang lại doanh thu ít nhất. Từ đây có thể thấy được 3 phân khúc chính đó là trên 2 triệu, trên dưới 1 triệu, và trừ 500 nghìn đô la trở xuống. Hình 3.18: Doanh số theo thương hiệu và chủng loại • Trái ngược lại với bên trên, doanh thu theo nhãn hàng, thì số lượng sản phẩm bán của Electra lại cao hơn gần 100 sản phẩm so với Trek, các vị trí tiếp theo cũng không có gì thay đổi. Vượt trội nhất chỉ có 2 nhãn hàng, 60 nhưng điều này có ta thấy đôi lúc bán được nhiều sản phẩm nhất lại chưa chắc mang lại nhiều doanh thu nhất. • Đặc biệt là số lượng chênh lệch không nhiều, nhưng doanh thu lại hơn kém nhau tới 4 lần. Khám phá dữ liệu theo thời gian: Hình 3.19: Doanh thu theo thời gian Hình 3.20: Doanh số theo thời gian 61 Ta có thể thấy được lượng sản phẩm bán và doanh thu cũng được phân chia rõ ràng thành 2 giai đoạn chính: • Giai đoạn 1: từ quý 1 năm 2016 cho tới quý 2 năm 2018, lượng sản phẩm bán ổn định từ 100 cho tới 200, thấp nhất là hơn 100 sản phẩm vào quý 2 năm 2018. Doanh thu tăng nhẹ từ đầu năm 2016 tới hết quý 1 năm 2018. • Giai đoạn 2: Giống như thể là giai đoạn tụt dốc, thoái trào, số lượng đơn đặt hàng và doanh thu giảm rất mạnh, nguồn thu ít và số lượng sản phẩm bán ra nhỏ giọt từ quý 3 năm 2018 tới quý 4 năm 2018. Điều này có thể bắt nguồn từ chất lượng sản phẩm, dịch vụ bán hàng có vấn đề, cửa hàng có thể đã tạm đóng cửa điều tra, nâng cấp hoặc tu sửa, hoặc cũng có thể thị trường, khách hàng thay đổi, cần thêm dữ liệu để đánh giá sâu hơn. Khám phá dữ liệu theo phương thức thanh toán: Hình 3.21: Doanh thu theo phương thức thanh toán • Về doanh thu và số đơn đặt hàng theo hình thức thanh toán ta có thể thấy sự tuyến tính giữa hai yếu tố chính đó. Cả số lượng đơn và doanh thu theo 3 62 Hình 3.22: Doanh số theo theo phương thức thanh toán phương thức thanh toán chính là tiền mặt (cash), thẻ tín dụng (credit card) và ví điện tử (e-wallet) đều gần tương đương nhau, chênh nhau không nhiều, xấp xỉ 33% mỗi loại. • Vậy thói quen người dùng chi trả cho đơn hàng vẫn chưa phân rõ ranh giới, cụ thể ở đây là tính tiện dụng của các phương thức thanh toán không- tiền mặt chưa nổi bật, và tiền mặt vẫn còn khá được thường xuyên sử dụng. 63 Khám phá dữ liệu theo nhân viên: Hình 3.23: Doanh thu theo nhân viên • Tại doanh thu và lượng đơn hàng của nhân viên, phẩn ánh được hầu hết năng suất làm việc của nhân viên bán hàng tại các cửa hàng. • Chiếm xấp xỉ 1/3 tỉ trọng của cả doanh thu và lượng đơn hàng ta có 2 nhân viên đó là Venita và Marceine, năng suất bán hàng rất cao so với các nhân viên còn lại, đem lại nguồn doanh thu chủ chốt. • Còn lại các vị trí nhân viên còn lại thì chênh lệch nhau từ 0-5%, chia nhau 33% còn lại. Tuy nhiên có tới 4 nhân viên chiếm 0% tỉ trọng, điều này là điều khá bất thường và cần xem xét nguyên nhân và có biện pháp xử lý kịp thời. Khám phá dữ liệu theo số lượng tồn kho: • Sản phẩm có số lượng tồn kho cao nhất là Trek XM700-Lowstep-2018 với gần 100 sản phẩm, tiếp sau đó 4 sản phẩm còn lại chênh lệch không lớn 64 Hình 3.24: Doanh số theo nhân viên Hình 3.25: Top 5 sản phẩm có số lượng tồn kho cao nhất 65 Hình 3.26: Số lượng tồn kho theo chủng loại và hãng • Electric Bikes là chủng loại snar phẩm có số lượng tồn kho cao nhất với hơn 200 sản phẩm, Crulsers Bkycles và Comfort Bkycles với số lượng tồn kho gần 100 sản phẩm mỗi loại 66 3.2.3 Phân tích các chiều, chủ điểm phân tích a. Các chiều phân tích Các chiều (Dimentions): Cung cấp các thông tin, ngữ cảnh cho bản fact (muốn truy cập số liệu datawarehouse thì phải thống qua các dimentions này, có quy mô nhỏ hơn Fact Trong kho dữ liệu, các dim là tập hợp thông tin tham chiếu về một sự kiện có thể đo lường được. Kho dữ liệu tổ chức các thuộc tính mô tả dưới dạng các cột trong bảng dim. Nhiều Dim chứa một hệ thống phân cấp các thuộc tính hỗ trợ việc khoan lên và xuống. Dimension được sử dụng trong các lược đồ hình sao và bông tuyết trong kho dữ liệu, khối OLAP và các ứng dụng phân tích kinh doanh (BI) và kinh doanh (BA). Đối với bộ dữ liệu sử dụng trong báo cáo này, em đã phân tích thành các Dim sau: Tên bảng Mô tả Dim Address Dim địa chỉ. Bao gồm hơn 200 Thành phố thuộc 3 Bang của Mĩ Dim Brands Dim thương hiệu. Bao gồm mã số và tên các nhãn hiệu Dim Categories Dim phân loại sản phẩm. Bao gồm mã số và tên phân loại sản phẩm Dim staff Dim nhân viên bán hàng. Bao gồm Tên nhân viên, số điện thoại, địa chỉ,... Dim Customers Dim khách hàng. Bao gồm thông tin của khách hàng: Mã số, tên, số điện thoại, email, địa chỉ, mã bưu chính Dim Managers Dim Nhân viên quản lí. Bao gồm thông tin của nhân viên quản lí: Mã số, tên, số điện thoại, email, địa chỉ 67 Dim Products Dim sản phẩm. Bao gồm thông tin sản phẩm: Mã số, tên, mã số nhãn hiệu, mã số loại sản phẩm, năm sản xuất, số tiền Dim Stores Dim cửa hàng. Bao gồm thông tin các cửa hàng: Mã số, tên, số điện thoại, email, địa chỉ, mã bưu chính Dim Payment Dim phương thức thanh toán. Bao gồm tên các phương thức thanh toán. Dim Order_size Dim kích cỡ sản phẩm. Bao gồm thông tin kích cỡ sản phẩm bán Dim Model_years Dim thế hệ sản phẩm. Bao gồm thông tin năm của thế hệ sản phẩm b. Các chủ điểm phân tích Chủ điểm phân tích là trung tâm trong lược đồ hình sao của một kho dữ liệu. Nó lưu trữ thông tin định lượng để phân tích và thường không được chuẩn hóa, hoạt động với các chiều – dim và nó chứa dữ liệu được phân tích và các chiều lưu trữ dữ liệu về các cách mà dữ liệu có thể được phân tích. Vậy nên, một bảng chủ thể phân tích bao gồm hai loại cột. Cột khóa ngoại cho phép kết hợp với các bảng thứ nguyên và cột đo lường chứa dữ liệu đang được phân tích. Đối với bộ dữ liệu sử dụng để phân tích trong báo cáo này, các chủ thể phân tích chính là Fact_revenue (Doanh thu), Fact_stocks(Hàng tồn)). 3.2.4 Kiến trúc hệ thống phân tích dữ liệu Trong mô hình này, em sử dụng kiến trúc kho dữ liệu hai tầng. 3.2.5 Thiết kế cơ sở dữ liệu hệ thống OLAP a. Quy trình đổ dữ liệu 68 Hình 3.27: Kiến trúc hệ thống phân tích dữ liệu Dữ liệu sau khi được đổ vào cơ sở dữ liệu OLTP thì sẽ được đổ sang Stagging, sau đó sẽ đổ vào cơ sở dữ liệu OLAP. Quy trình đổ dữ liệu vào các bảng Fact và Dim được thực hiện bằng các procedure tương ứng cho mỗi bảng. Dữ liệu được đổ từ cơ sở dữ liệu OLTP sang Satgging rồi đổ vào cơ sở dữ liệu OLAP. b. Mô hình dữ liệu hệ thống Data Warehouse Mô hình dữ liệu OLAP bao gồm có 3 chủ điểm phân tích (Fact) và các chiều phân tích (Dimension) dưới đây: Hình 3.28: Mô hình dữ liệu 69 c. Mô hình dữ liệu quan hệ Từ bảng dữ liệu bán hàng về xe của công ty đó, ta xác định được mô hình dữ liệu OLAP dưới đây: Hình 3.29: Mô hình dữ liệu quan hệ hệ thống OLAP 70 Các bảng trong Cơ sở dữ liệu Data Warehouse được thiết kế như sau: Tên bảng Tên trường Kiểu dữ liệu Mô tả Fact_revenue revenue_id Float Mã đơn đặt hàng staff_id Nvarchar (255) Mã số nhân viên payment Nvarchar (255) Phương thức thanh toán quantity Nvarchar (255) Số lượng đơn hàng list_price Int Tổng tiền sản phẩm customer_id Nvarchar (255) Mã số khách hàng product_id Nvarchar (255) Mã số sản phẩm store_id Nvarchar (255) Mã số cửa hàng time_id Nvarchar (255) Mã số thời gian address_id Int Mã số Địa chỉ total_bill Nvarchar (255) Tổng giá trị đơn hàng discount Nvarchar (255) Phần trăm giảm giá order_size_id Nvarchar (255) Mã số kích thước sản phẩm model_year_id Nvarchar (255) Mã số thế hệ sản phẩm Fact_stocks Dim_products stock_id Float Mã tồn kho product_id Nvarchar (255) Mã sản phẩm store_id Nvarchar (255) Mã cửa hàng Quantity Int Số lượng product_id Int Mã số sản phẩm product_name Nvarchar (255) Tên sản phẩm 71 Dim_brands Dim_categories Dim_customers brand_id Int Mã số nhãn hiệu category_id Int Mã số loại sản phẩm model_year Nvarchar (255) Năm sản xuất list_price Int Tổng tiền sản phẩm brand_id Int Mã số nhãn hiệu brand_name Nvarchar (255) Tên nhãn hiệu category_id Float Mã số loại sản phẩm categoty_name Nvarchar (255) Tên loại sản phẩm customer_id Int Mã khách hàng first_name Nvarchar (255) Tên họ khách hàng last_name Nvarchar (255) Tên khách hàng age Nvarchar (255) Tuổi khách hàng gender Nvarchar (255) Giới tính khách hàng dependents Nvarchar (255) Bảo hộ của khách hàng phone Nvarchar (255) Số điện thoại khách hàng email Nvarchar (255) Tên hòm thư của khách hàng streets Nvarchar (255) Tên đường city Nvarchar (255) Tên thành phố state Nvarchar (255) Tên bang zip_code Nvarchar (255) Mã bưu chính 72 Dim_staffs staff_id Int Mã số nhân viên bán hàng first_name Nvarchar (255) Tên họ nhân viên bán hàng last_name Nvarchar (255) Tên nhân viên bán hàng phone Nvarchar (255) Số điện thoại nhân viên bán hàng email Nvarchar (255) Tên hòm thư của nhân viên bán hàng active Nvarchar (255) Đánh giá tốt store_id Nvarchar (255) Mã số cửa hàng manager_id Nvarchar (255) Mã số nhân viên quản lí Dim_managers managers_id Int Mã số nhân viên quản lí first_name Nvarchar (255) Tên họ nhân viên quản lí last_name Nvarchar (255) Tên nhân viên quản lí phone Nvarchar (255) Số điện thoại nhân viên quản lí email Nvarchar (255) Tên hòm thư của nhân viên quản lí active_status Nvarchar (255) Trạng thái đánh giá tốt 73 Dim_stores store_id Nvarchar (255) Mã số cửa hàng store_id Int Mã cửa hàng store_name Nvarchar (255) Tên cửa hàng phone Nvarchar (255) Số điện thoại cửa hàng email Nvarchar (255) Tên hòm thư của cửa hàng Dim_address Dim_time Dim_payment streets Nvarchar (255) Tên đường city Nvarchar (255) Tên thành phố state Nvarchar (255) Tên bang zip_code Nvarchar (255) Mã bưu chính address_id Float Mã số địa chỉ city Nvarchar (255) Tên thành phố state Nvarchar (255) Tên bang time_id Int Mã thời gian date Nvarchar (255) Ngày month Nvarchar (255) Tháng year Nvarchar (255) Năm payment_id Int Mã phương thức thanh toán payment Nvarchar (255) Phương thức thanh toán Dim_order_size order_size_id Int Mã kích cỡ sản phẩm 74 Dim_model_years order_size Nvarchar (255) Kích cỡ sản phẩm model_year_id Int Mã thế hệ sản phẩm model_year Nvarchar (255) Thế hệ sản phẩm 75 Chương 4 XÂY DỰNG HỆ THỐNG 4.1 Xây dựng hệ thống quản lý đơn hàng Giao diện đăng nhập Hình 4.1: Giao diện đăng nhập 76 Giao diện đăng ký tài khoản Hình 4.2: Giao diện đăng ký tài khoản Giao diện Quản lý Sản phẩm Hình 4.3: Giao diện Quản lý Sản phẩm 77 Giao diện quản lý đơn hàng Hình 4.4: Giao diện quản lý đơn hàng Giao diện quản lý khách hàng Hình 4.5: Giao diện quản lý khách hàng 78 Giao diện quản lý kho Hình 4.6: Giao diện quản lý kho hàng Giao diện quản lý cửa hàng Hình 4.7: Giao diện quản lý cửa hàng 79 Giao diện quản lý danh mục sản phẩm Hình 4.8: Giao diện quản lý danh mục sản phẩm Giao diện quản lý nhãn hàng Hình 4.9: Giao diện quản lý nhãn hàng 80 Giao diện quản lý nhân viên Hình 4.10: Giao diện quản lý nhân viên Giao diện phân hệ Phân tích dữ liệu và Báo cáo Hình 4.11: Giao diện dashboard vận hành bán hàng 81 Hình 4.12: Giao diện dashboard phân tích Hình 4.13: Giao diện dashboard chân dung khách hàng 82 Giao diện quản lý tài khoản người dùng và phân quyền cho các tài khoản Hình 4.14: Giao diện phân quyền cho các nhóm nghiệp vụ Hình 4.15: Giao diện quản lý tài khoản người dùng 83 4.2 Xây dựng các báo cáo dashboard Trong báo cáo này, em đã sử dụng các loại dashboard bao gồm: • Index • Dashboard phân tích • Dashboard vận hành Index bao gồm cách đánh mã dashboard, và dashboard cho từng đối tượng: Hình 4.16: Danh mục các báo cáo 84 Dashboard phân tích Hình 4.17: PD200 - Dasboard phân tích doanh thu 85 Hình 4.18: PD200 - Dasboard phân tích doanh thu (tiếp) 86 Hình 4.19: PS300 - Dasboard phân tích số lượng đơn hàng 87 Hình 4.20: PS100 - Dasboard phân tích số lượng sản phẩm bán 88 Hình 4.21: PS400 - Dasboard phân tích số lượng sản phẩm tổn kho 89 Hình 4.22: TK500 - Dasboard chân dung Khách hàng 90 Hình 4.23: TK500 - Dasboard chân dung Khách hàng (tiếp) 91 Dashboard vận hành Hình 4.24: VS200 - Dasboard báo cáo doanh thu theo tháng 92 Hình 4.25: VS200 - Dasboard báo cáo doanh thu theo tháng (tiếp) 93 Hình 4.26: VS300 - Dasboard báo cáo số lượng đơn hàng theo tháng 94 Tổng kết Đồ án đã hoàn thành được mục tiêu đã đề ra: Xây dựng hệ thống quản lí đơn hàng cho công ty sản xuất xe đạp Sau khi hoàn thành đồ án, em đã đạt được những kết quả sau: 1. Trình bày được những kiến thức nền tảng cơ bản của kinh doanh thông minh, phân tích dữ liệu và phân tích kinh doanh. Bên cạnh đó xây dựng được kiến trúc của kho dữ liệu. 2. Xây dựng được hệ thống phân tích kinh doanh trong quản lí đơn hàng theo mô hình OLAP. 3. Xây dựng được cách dashboard trực quan hóa dữ liệu phân tích quản lí đơn hàng. 4. Với việc xây dựng được "Hệ thống quản lý đơn hàng", em đã hiểu được các yêu cầu cơ bản, cấu trúc và cách xây dựng một hệ thống quản lý. 5. Sử dụng thành thạo một số công cụ trực quan hóa dữ liệu như sql, Power BI. Tuy nhiên, bên cạnh kết quả đạt được đồ án vẫn còn một số nhược điểm cần khắc phục: 1. Việc thu thập dữ liệu chưa đa dạng, mới chỉ từ một nguồn dữ liệu. 2. Kho dữ liệu chưa được tối ưu. 3. Hệ thống các dashboard chưa được đầy đủ, hình ảnh chưa đẹp mắt. 95 Hướng phát triển đồ án trong tương lai: Mặc dù hệ thống xây dựng được đã đáp ứng đủ những yêu cầu đặt ra, tuy nhiên để đem lại hiệu quả tốt hơn em sẽ tiếp tục tìm hiểu, phát triển để đề tài được hoàn thiện hơn: 1. Mở rộng thêm dữ liệu từ nhiều hệ thống OLTP. 2. Nâng cấp, cải thiện dashboard để tối ưu việc phân tích và có giao diện đẹp mắt hơn. 96 Tài liệu tham khảo [1] Phạm Huyền Linh, Slides bài giảng môn Phân tích và thiết kế hệ thống, Viện Toán ứng dụng và Tin học. [2] Microsoft, Collect, Combine, and Transform Data Using Power Query in Excel and Power BI, 2019. [3] Nguyễn Văn Ba, Phân tích và thiết kế hệ thống thông tin, 2006. [4] Office 365 Việt Nam, Hướng dẫn sử dụng Power BI. [5] Nguyễn Danh Tú, Youtube, Học SQL cơ bản, 2014. [6] Sawakinome, Lược đồ bông tuyết so với Lược đồ ngôi sao [7] https://github.com [8] Một số trang web khác trên Internet