TÍNH CẤP THIẾT CỦA ĐỀ TÀI
Trong thời đại 4.0, phân tích dữ liệu đóng vai trò quan trọng trong quyết định kinh doanh của các doanh nghiệp, đặc biệt là trong thị trường bán lẻ đang phát triển mạnh Cửa hàng tiện lợi trở thành phần thiết yếu trong cuộc sống hiện đại, nhưng việc quản lý dữ liệu của chúng thường phức tạp Do đó, xây dựng một nền tảng dữ liệu cho ứng dụng quản lý cửa hàng tiện lợi là cấp thiết, giúp thu thập và quản lý thông tin từ tồn kho đến doanh thu Việc tổng hợp và phân tích dữ liệu này cho phép chủ cửa hàng đưa ra quyết định kinh doanh thông minh, cải thiện quản lý và tối ưu hóa hoạt động.
Nền tảng dữ liệu cung cấp cho người quản lý cửa hàng cái nhìn tổng quan về hoạt động của các chi nhánh và điểm bán hàng, giúp phát hiện vấn đề và thực hiện điều chỉnh cần thiết Điều này đảm bảo sự linh hoạt, đáp ứng nhu cầu thay đổi của khách hàng và nâng cao khả năng cạnh tranh của cửa hàng tiện lợi trên thị trường.
MỤC TIÊU VÀ NHIỆM VỤ NGHIÊN CỨU
Đề tài "Xây dựng nền tảng dữ liệu cho ứng dụng quản lý cửa hàng tiện lợi" nhằm phát triển một hệ thống dữ liệu thiết yếu trong bối cảnh thị trường bán lẻ đang tăng trưởng mạnh mẽ Cửa hàng tiện lợi đã trở thành một kênh bán lẻ quan trọng tại Việt Nam, do đó, việc xây dựng nền tảng dữ liệu sẽ hỗ trợ hiệu quả cho việc thu thập, xử lý và phân tích thông tin, đáp ứng nhu cầu quản lý cho các cửa hàng.
2 tiện lợi, giúp quản lý các hoạt động kinh doanh một cách hiệu quả và đáp ứng nhanh chóng các yêu cầu của khách hàng
Các nhiệm vụ nghiên cứu của đề tài bao gồm:
Nghiên cứu, tìm hiểu về các nền tảng dữ liệu hiện có trên thị trường để đưa ra lựa chọn phù hợp cho ứng dụng
Thiết kế và xây dựng cơ sở dữ liệu cho ứng dụng quản lý cửa hàng tiện lợi, đảm bảo tính toàn vẹn, an toàn và dễ quản lý
Phát triển các công cụ thu thập, xử lý và phân tích dữ liệu, giúp quản lý và điều hành cửa hàng hiệu quả hơn
Đảm bảo tính khả thi và hiệu quả của ứng dụng, bằng việc thực hiện các thử nghiệm và kiểm tra hiệu suất của hệ thống
Đề tài "Xây dựng data platform cho ứng dụng quản lý cửa hàng tiện lợi" sẽ đóng góp tích cực vào sự phát triển của ngành bán lẻ tại Việt Nam, giúp các cửa hàng tiện lợi tối ưu hóa quản lý hoạt động kinh doanh một cách hiệu quả hơn.
CÁCH TIẾP CẬN VÀ PHƯƠNG PHÁP NGHIÊN CỨU
Chúng em nghiên cứu về Data Platform dành cho ứng dụng quản lý cửa hàng tiện lợi, được xây dựng trên nền tảng Hadoop Ecosystem Đây là một giải pháp mã nguồn mở đáng tin cậy, do Apache Software Foundation thành lập và duy trì.
Đề tài nghiên cứu nhằm phát triển chuỗi cửa hàng tiện lợi tại Thành Phố Hồ Chí Minh thông qua việc ứng dụng bán hàng, xây dựng website đặt hàng và phát triển Data Platform để thu thập và phân tích dữ liệu từ các ứng dụng này Nghiên cứu được thực hiện trong khoảng thời gian từ tháng 3 đến tháng 7 năm 2023.
Trong nghiên cứu này, chúng tôi áp dụng các phương pháp phân tích và tổng hợp để thu thập và xử lý thông tin Bên cạnh đó, phương pháp phi thực nghiệm được sử dụng, bao gồm việc hỏi ý kiến chuyên gia và quan sát các hiện tượng để đảm bảo tính chính xác và khách quan trong kết quả nghiên cứu.
KẾT QUẢ DỰ KIẾN ĐẠT ĐƯỢC
Dự kiến, nhóm chúng em sẽ áp dụng kiến thức đã học để thực hiện đồ án, từ đó tích lũy thêm kinh nghiệm và kỹ năng Sau khi hoàn thành đề tài, chúng em sẽ có khả năng hiểu và phát triển ứng dụng quản lý cửa hàng tiện lợi, xây dựng website đặt hàng, cùng với một nền tảng dữ liệu thống nhất để quản lý và lưu trữ thông tin cho các ứng dụng này.
BỐ CỤC BÁO CÁO
1 Tính cấp thiết của đề tài
2 Mục tiêu và nhiệm vụ nghiên cứu
3 Cách tiếp cận và phương pháp nghiên cứu
4 Kết quả dự kiến đạt được
Chương 1: Cơ sở lý thuyết
1.1 Tổng quan về ngành bán lẻ và mô hình chuỗi cửa hàng tiện lợi
1.2 Giới thiệu mô hình 3 lớp trong C#
1.3 Giới thiệu mô hình MVT với Django
1.4 Tìm hiểu về Data Lake, Data Warehouse, Data Mart, Data Pipeline và
ETL/ELT 1.5 Tìm hiểu về Docker
1.6 Tìm hiểu về công cụ trực quan hóa dữ liệu Apache Supertset
Chương 2: Xây dựng phần mềm quản lý cửa hàng tiện lợi
2.1 Xây dựng phần mềm cho ứng dụng quản lý cửa hàng tiện lợi trên Windows 2.2 Xây dựng website đặt hàng
Chương 3: Xây dựng Data Platform cho ứng dụng quản lý cửa hàng tiện lợi 3.1 Kiến trúc cho Data Platform
3.3 Xây dựng Dashboard cho báo cáo từ Data Warehouse
CƠ SỞ LÝ THUYẾT
Giới Thiệu Mô Hình 3 Lớp Trong C#
1.3 Giới thiệu mô hình MVT với Django
1.4 Tìm hiểu về Data Lake, Data Warehouse, Data Mart, Data Pipeline và
ETL/ELT 1.5 Tìm hiểu về Docker
1.6 Tìm hiểu về công cụ trực quan hóa dữ liệu Apache Supertset
Chương 2: Xây dựng phần mềm quản lý cửa hàng tiện lợi
2.1 Xây dựng phần mềm cho ứng dụng quản lý cửa hàng tiện lợi trên Windows 2.2 Xây dựng website đặt hàng
Chương 3: Xây dựng Data Platform cho ứng dụng quản lý cửa hàng tiện lợi 3.1 Kiến trúc cho Data Platform
3.3 Xây dựng Dashboard cho báo cáo từ Data Warehouse
PHẦN NỘI DUNG CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 1.1 TỔNG QUAN VỀ NGÀNH BÁN LẺ VÀ MÔ HÌNH CHUỖI CỬA HÀNG
1.1.1 Tổng quan về ngành bán lẻ tại Việt Nam
Thị trường bán lẻ Việt Nam đang trong giai đoạn phát triển mạnh mẽ, đặc biệt sau khi gia nhập WTO, với sự gia tăng đầu tư nước ngoài từ các tập đoàn lớn như Walmart, Family Mart và 7-Eleven Các chuỗi bán lẻ trong nước cũng phát triển nhanh chóng, điển hình như Thế Giới Di Động, Co.opmart và Vinmart Sức mua của thị trường tăng lên nhờ vào sự gia tăng dân số, thu nhập bình quân đầu người, cùng với sự phát triển của các mô hình cung ứng như trung tâm thương mại, siêu thị và cửa hàng tiện lợi.
Hình 1.1 GDP bình quân đầu người của Việt Nam từ năm 2006 - 2021
Nguồn: Báo Lao Động - https://laodong.vn
Theo Forbes, GDP bình quân đầu người ở Việt Nam đã tăng trưởng ấn tượng, đứng đầu trong nhiều quốc gia Xu hướng này không chỉ phản ánh sự năng động của nền kinh tế mà còn cho thấy sự phát triển mạnh mẽ của ngành bán lẻ trong những năm tới.
1.1.2 Tổng quan về mô hình chuỗi cửa hàng tiện lợi tại Việt Nam
Mô hình cửa hàng tiện lợi ngày càng trở nên phổ biến trên toàn cầu, với diện tích thường dưới 400 m2, chuyên cung cấp hàng hóa và dịch vụ thiết yếu Các cửa hàng này thường được đặt tại những khu vực đông dân cư, gần trường học, trạm xăng và các điểm giao thông như trạm xe buýt, bến xe và sân bay Thời gian hoạt động của cửa hàng cũng rất linh hoạt, thường mở cửa nhiều giờ hoặc thậm chí 24/7 để phục vụ nhu cầu của khách hàng.
Trong bối cảnh kinh tế phát triển và dân số gia tăng, thị trường bán lẻ, đặc biệt là mô hình cửa hàng tiện lợi, đang mở ra nhiều cơ hội phát triển Tuy nhiên, sự gia tăng nhà đầu tư dẫn đến cạnh tranh khốc liệt Để nâng cao ưu thế cạnh tranh, các nhà bán lẻ nên phát triển cửa hàng tiện lợi thành chuỗi, cho phép nhập hàng hóa với số lượng lớn và bán lẻ, từ đó giảm giá thành sản phẩm Việc này không chỉ tạo ra lợi thế cạnh tranh mà còn nâng cao độ nhận diện thương hiệu và uy tín của cửa hàng, giúp khách hàng yên tâm hơn khi mua sắm.
Phát triển chuỗi cửa hàng mang lại nhiều lợi ích nhưng cũng gặp khó khăn trong quản lý và vận hành Để tối ưu hóa quy trình, việc xây dựng ứng dụng quản lý bán hàng, tồn kho, nhân sự, marketing, quan hệ khách hàng, tài chính - kế toán, cùng với các báo cáo thuế và quản trị là cần thiết Mặc dù các cơ sở dữ liệu hỗ trợ việc ghi chép, chúng lại hạn chế cho phân tích Việc xây dựng nền tảng dữ liệu cho các ứng dụng này sẽ giúp đơn giản hóa báo cáo và thống kê, từ đó hỗ trợ hiệu quả trong quá trình ra quyết định.
Bảy định hướng và chuẩn bị dữ liệu là bước quan trọng cho quá trình khai phá dữ liệu sau này Trong phần tiếp theo, chúng ta sẽ trình bày một số khái niệm cơ bản về nền tảng dữ liệu.
1.2 Giới Thiệu Mô Hình 3 Lớp Trong C#
1.2.1 Giới thiệu về mô hình 3 lớp
Mô hình gồm có 3 lớp, đó là:
Lớp Giao diện người dùng (GUI Layer) chịu trách nhiệm tương tác với người dùng, bao gồm các thành phần giao diện cần thiết cho việc nhập liệu và hiển thị dữ liệu Lớp này cũng thực hiện kiểm tra tính chính xác của dữ liệu trước khi chuyển giao cho lớp Xử lý nghiệp vụ (BLL).
Lớp Xử lý nghiệp vụ (Business Layer) đóng vai trò quan trọng trong việc nhận yêu cầu từ lớp GUI và truy xuất dữ liệu từ lớp Truy cập dữ liệu (Data Access Layer) Lớp này không chỉ đảm bảo tính toàn vẹn và hợp lệ của dữ liệu mà còn thực hiện các tính toán và xử lý yêu cầu nghiệp vụ, trước khi trả về thông tin cho GUI.
Lớp Truy cập dữ liệu (Data Access Layer) là thành phần quan trọng trong kiến trúc phần mềm, chịu trách nhiệm giao tiếp với hệ quản trị cơ sở dữ liệu Lớp này thực hiện các nhiệm vụ liên quan đến lưu trữ và truy vấn dữ liệu, đồng thời là lớp duy nhất được phép truy cập trực tiếp vào cơ sở dữ liệu.
Lớp DTO (Data Transfer Object) định nghĩa cấu trúc bảng trong cơ sở dữ liệu, bao gồm các cột và được sử dụng để ánh xạ dữ liệu trong quá trình thực hiện truy vấn.
Nó có thể được hiểu như một công cụ cơ bản để ánh xạ đối tượng (ORM – Object- Relational Mapping)
1.2.2 Lợi thế của mô hình 3 lớp
Việc chia ứng dụng thành ba lớp với các nhiệm vụ rõ ràng giúp quản lý dễ dàng hơn và làm cho mã nguồn trở nên minh bạch Hơn nữa, cấu trúc này cũng hỗ trợ bảo trì hiệu quả, cho phép thay đổi một thành phần mà không ảnh hưởng đến toàn bộ hệ thống.
Dễ dàng phát triển và tái sử dụng, giúp tiết kiệm thời gian đáng kể Việc bàn giao công việc trở nên thuận lợi hơn, đồng thời việc phân công và kiểm soát khối lượng công việc trong nhóm cũng trở nên đơn giản hơn.
TÌM HIỂU VỀ DOCKER
1.6 Tìm hiểu về công cụ trực quan hóa dữ liệu Apache Supertset
Chương 2: Xây dựng phần mềm quản lý cửa hàng tiện lợi
2.1 Xây dựng phần mềm cho ứng dụng quản lý cửa hàng tiện lợi trên Windows 2.2 Xây dựng website đặt hàng
Chương 3: Xây dựng Data Platform cho ứng dụng quản lý cửa hàng tiện lợi 3.1 Kiến trúc cho Data Platform
3.3 Xây dựng Dashboard cho báo cáo từ Data Warehouse
PHẦN NỘI DUNG CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 1.1 TỔNG QUAN VỀ NGÀNH BÁN LẺ VÀ MÔ HÌNH CHUỖI CỬA HÀNG
1.1.1 Tổng quan về ngành bán lẻ tại Việt Nam
Thị trường bán lẻ Việt Nam đang trong giai đoạn phát triển mạnh mẽ, đặc biệt sau khi gia nhập WTO, với sự gia tăng đầu tư nước ngoài từ các tập đoàn lớn như Walmart, Family Mart và 7-eleven Các chuỗi bán lẻ trong nước như Thế Giới Di Động, Co.opmart và Vinmart cũng đang phát triển nhanh chóng Sức mua của thị trường bán lẻ tăng lên nhờ vào nhu cầu tiêu dùng tăng cao do gia tăng dân số và thu nhập bình quân đầu người, cùng với sự phát triển của các mô hình cung ứng như trung tâm thương mại, siêu thị và cửa hàng tiện lợi.
Hình 1.1 GDP bình quân đầu người của Việt Nam từ năm 2006 - 2021
Nguồn: Báo Lao Động - https://laodong.vn
Theo Forbes, Việt Nam ghi nhận mức tăng trưởng GDP bình quân đầu người ấn tượng, đứng đầu nhiều quốc gia Xu hướng này phản ánh sự năng động của nền kinh tế và dự báo sự phát triển mạnh mẽ của ngành bán lẻ trong tương lai.
1.1.2 Tổng quan về mô hình chuỗi cửa hàng tiện lợi tại Việt Nam
Mô hình cửa hàng tiện lợi đang ngày càng trở nên phổ biến trên toàn thế giới, với diện tích thường dưới 400 m2, cung cấp các mặt hàng và dịch vụ thiết yếu cho người tiêu dùng Những cửa hàng này thường được đặt tại các khu vực đông dân cư, gần trường học, trạm xăng và các điểm giao thông như trạm xe buýt, bến xe và sân bay Thời gian hoạt động của cửa hàng tiện lợi rất linh hoạt, thường mở cửa nhiều giờ trong ngày hoặc thậm chí 24/7 để phục vụ nhu cầu của khách hàng.
Trong bối cảnh kinh tế phát triển và dân số gia tăng, thị trường bán lẻ, đặc biệt là mô hình cửa hàng tiện lợi, đang có nhiều tiềm năng phát triển Tuy nhiên, sự gia tăng nhà đầu tư cũng dẫn đến cạnh tranh khốc liệt Một giải pháp hiệu quả để nâng cao lợi thế cạnh tranh là phát triển cửa hàng tiện lợi thành chuỗi, cho phép nhà bán lẻ nhập hàng hóa với số lượng lớn và phân phối lại, từ đó giảm giá thành sản phẩm Việc này không chỉ tạo ra ưu thế cạnh tranh mà còn nâng cao độ nhận diện thương hiệu và uy tín, giúp khách hàng cảm thấy yên tâm hơn khi mua sắm.
Việc phát triển chuỗi cửa hàng mang lại nhiều lợi ích, nhưng cũng gặp phải không ít thách thức trong quản lý và vận hành Để tối ưu hóa quy trình này, cần thiết phải xây dựng các ứng dụng quản lý như quản lý bán hàng, tồn kho, nhân sự, marketing, quan hệ khách hàng, tài chính - kế toán, cùng với các báo cáo thuế và quản trị Mặc dù các cơ sở dữ liệu hiện tại thuận tiện cho việc ghi chép, nhưng chúng còn hạn chế trong việc phân tích dữ liệu Việc xây dựng nền tảng dữ liệu cho các ứng dụng này sẽ giúp đơn giản hóa quy trình báo cáo và thống kê, từ đó hỗ trợ hiệu quả cho việc ra quyết định.
Để khai thác dữ liệu hiệu quả, việc định nghĩa và chuẩn bị dữ liệu là rất quan trọng Bài viết sẽ tiếp tục trình bày một số khái niệm cơ bản trong nền tảng dữ liệu.
1.2 Giới Thiệu Mô Hình 3 Lớp Trong C#
1.2.1 Giới thiệu về mô hình 3 lớp
Mô hình gồm có 3 lớp, đó là:
Lớp Giao diện người dùng (GUI Layer) là phần mềm chịu trách nhiệm tương tác với người dùng, bao gồm các thành phần giao diện như nhập liệu và hiển thị dữ liệu Nó cũng thực hiện việc kiểm tra tính chính xác của dữ liệu trước khi chuyển giao cho lớp Xử lý nghiệp vụ (BLL).
Lớp Xử lý nghiệp vụ là thành phần quan trọng trong hệ thống, nhận yêu cầu từ lớp GUI và truy xuất dữ liệu từ lớp Truy cập dữ liệu để cung cấp thông tin cần thiết Tại đây, các ràng buộc, tính toàn vẹn và hợp lệ của dữ liệu được đảm bảo, đồng thời thực hiện các tính toán và xử lý yêu cầu nghiệp vụ một cách hiệu quả.
Lớp Truy cập dữ liệu (Data Access Layer) đóng vai trò quan trọng trong việc giao tiếp với hệ quản trị cơ sở dữ liệu (CSDL), thực hiện các thao tác lưu trữ và truy vấn dữ liệu Đây là lớp duy nhất được phép truy cập trực tiếp vào cơ sở dữ liệu, đảm bảo tính bảo mật và hiệu quả trong quản lý dữ liệu.
Lớp DTO (Data Transfer Object) định nghĩa các bảng trong cơ sở dữ liệu và các cột của chúng, đồng thời được sử dụng để ánh xạ dữ liệu trong quá trình thực hiện truy vấn.
Nó có thể được hiểu như một công cụ cơ bản để ánh xạ đối tượng (ORM – Object- Relational Mapping)
1.2.2 Lợi thế của mô hình 3 lớp
Phân chia ứng dụng thành ba lớp với nhiệm vụ rõ ràng giúp quản lý mã nguồn hiệu quả hơn và tăng tính minh bạch Đồng thời, cấu trúc này cũng tạo điều kiện thuận lợi cho việc bảo trì, cho phép thay đổi một thành phần mà không làm ảnh hưởng đến toàn bộ hệ thống.
Việc phát triển và tái sử dụng nội dung trở nên dễ dàng hơn, giúp tiết kiệm thời gian trong quá trình bàn giao Đồng thời, việc phân công và kiểm soát khối lượng công việc trong nhóm cũng trở nên thuận lợi hơn.
1.3 GIỚI THIỆU VỀ MÔ HÌNH MVT VỚI DJANGO
Django là một framework Python mạnh mẽ, giúp lập trình viên xây dựng website theo yêu cầu cụ thể Nó không chỉ hỗ trợ xử lý dữ liệu ở phần backend mà còn cung cấp công cụ cho hệ thống template ở frontend Mô hình MVT (Model-View-Template) là điểm nổi bật mà Django muốn nhấn mạnh.
Hình 1.2 Cấu trúc mô hình MVT với Django
MVT là sự kết hợp của Model, View và Template Cấu trúc của MVT có ba phần như sau:
Mô hình chịu trách nhiệm quản lý dữ liệu, đóng vai trò là cấu trúc dữ liệu logic cho toàn bộ ứng dụng, và kiểm soát các hoạt động CRUD giữa cơ sở dữ liệu và backend.
View là thành phần chịu trách nhiệm xử lý logic để truy cập và lấy dữ liệu từ model, thực hiện các yêu cầu và hiển thị kết quả cho template tương ứng, đóng vai trò như cầu nối giữa Model và Template.
Template: chính là giao diện của người dùng Lớp này sẽ liên quan đến việc hiển thị thông tin dữ liệu cho người dùng ở dạng web hoặc dạng khác
1.4 TÌM HIỂU VỀ DATA LAKE, DATA WAREHOUSE, DATA MART
TÌM HIỀU VỀ CÔNG CỤ TRỰC QUAN HÓA DỮ LIỆU APACHE
Apache Superset là một công cụ trực quan hóa dữ liệu nguồn mở có thể được sử dụng để biểu diễn dữ liệu bằng đồ họa
Hình 1.10 Logo của Apache Superset
Apache Superset, ban đầu được phát triển bởi AirBnB, là một công cụ mã nguồn mở được phát hành cho cộng đồng Apache Được xây dựng bằng ngôn ngữ Python và sử dụng Flask Framework cho các tương tác web, Superset hỗ trợ hầu hết các hệ quản trị cơ sở dữ liệu quan hệ (RDBMS) thông qua SQL Alchemy.
Giao diện trực quan để khám phá và trực quan hóa bộ dữ liệu và tạo bảng điều khiển tương tác
Một loạt các hình ảnh trực quan đẹp để hiển thị dữ liệu của bạn
Người dùng có thể dễ dàng truy cập và chỉnh sửa dữ liệu bên dưới bảng điều khiển mà không cần mã hóa Bảng điều khiển và biểu đồ cung cấp một điểm khởi đầu thuận tiện cho việc phân tích sâu hơn.
Một trình soạn thảo/IDE hiện đại cho SQL cung cấp một trình duyệt siêu dữ liệu phong phú, kết hợp với quy trình làm việc đơn giản giúp người dùng dễ dàng tạo ra các trực quan hóa từ bất kỳ tập kết quả nào.
Mô hình bảo mật chi tiết và có thể mở rộng cho phép thiết lập các quy tắc phức tạp về quyền truy cập vào các tính năng và bộ dữ liệu của sản phẩm Nó tích hợp với các phụ trợ xác thực chính như cơ sở dữ liệu, OpenID, LDAP, OAuth và REMOTE_USER.
Một lớp ngữ nghĩa nhẹ, cho phép kiểm soát cách các nguồn dữ liệu được hiển thị cho người dùng bằng cách xác định kích thước và số liệu
Hỗ trợ ngoài luồng cho hầu hết các cơ sở dữ liệu nói SQL
Tích hợp sâu với Druid cho phép Superset duy trì tốc độ nhanh trong khi cắt và cắt các bộ dữ liệu lớn, thời gian thực
Bảng điều khiển tải nhanh với bộ nhớ đệm cấu hình
XÂY DỰNG PHẦN MỀM QUẢN LÝ CỬA HÀNG TIỆN LỢI
XÂY DỰNG WEBSITE ĐẶT HÀNG
Chương 3: Xây dựng Data Platform cho ứng dụng quản lý cửa hàng tiện lợi 3.1 Kiến trúc cho Data Platform
3.3 Xây dựng Dashboard cho báo cáo từ Data Warehouse
PHẦN NỘI DUNG CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 1.1 TỔNG QUAN VỀ NGÀNH BÁN LẺ VÀ MÔ HÌNH CHUỖI CỬA HÀNG
1.1.1 Tổng quan về ngành bán lẻ tại Việt Nam
Thị trường bán lẻ Việt Nam đang trong giai đoạn phát triển mạnh mẽ, đặc biệt sau khi gia nhập WTO Đầu tư nước ngoài vào lĩnh vực này ngày càng tăng, với sự xuất hiện của các tập đoàn lớn như Walmart, Family Mart và 7-Eleven Các chuỗi bán lẻ nội địa như Thế Giới Di Động, Co.opmart và Vinmart cũng đang phát triển nhanh chóng Sức mua của thị trường bán lẻ tăng lên nhờ vào yếu tố cầu từ người tiêu dùng, bao gồm gia tăng dân số và thu nhập bình quân đầu người, cũng như sự phát triển của các mô hình cung ứng như trung tâm thương mại, siêu thị và cửa hàng tiện lợi.
Hình 1.1 GDP bình quân đầu người của Việt Nam từ năm 2006 - 2021
Nguồn: Báo Lao Động - https://laodong.vn
Theo Forbes, GDP bình quân đầu người ở Việt Nam đang tăng trưởng ấn tượng, vượt trội so với nhiều quốc gia khác Xu hướng này không chỉ phản ánh sự năng động của nền kinh tế mà còn cho thấy sự phát triển mạnh mẽ của ngành bán lẻ trong tương lai gần.
1.1.2 Tổng quan về mô hình chuỗi cửa hàng tiện lợi tại Việt Nam
Mô hình cửa hàng tiện lợi đang trở nên phổ biến trên toàn cầu, với diện tích thường dưới 400 m2, chuyên cung cấp hàng hóa và dịch vụ thiết yếu Những cửa hàng này thường được đặt tại khu dân cư đông đúc, gần trường học, trạm xăng hoặc các điểm giao thông như trạm xe buýt, bến xe và sân bay Thời gian hoạt động của cửa hàng tiện lợi rất linh hoạt, có thể mở cửa nhiều giờ trong ngày hoặc hoạt động 24/7.
Trong bối cảnh kinh tế phát triển và dân số gia tăng, thị trường bán lẻ, đặc biệt là mô hình cửa hàng tiện lợi, đang mở ra nhiều cơ hội phát triển Tuy nhiên, sự gia tăng tiềm năng cũng đồng nghĩa với sự cạnh tranh khốc liệt từ các nhà đầu tư Để nâng cao ưu thế cạnh tranh, việc phát triển cửa hàng tiện lợi thành chuỗi là một giải pháp hiệu quả, cho phép nhà bán lẻ nhập hàng hóa số lượng lớn và phân phối lại với giá thành thấp hơn Điều này không chỉ giúp giảm giá sản phẩm mà còn tạo ra lợi thế cạnh tranh rõ rệt Hơn nữa, việc phát triển thành chuỗi còn góp phần nâng cao độ nhận diện thương hiệu và uy tín của cửa hàng, từ đó tạo sự yên tâm cho khách hàng khi mua sắm.
Việc phát triển chuỗi cửa hàng mang lại nhiều lợi ích, nhưng cũng gặp phải những thách thức trong quản lý và vận hành Để tối ưu hóa quy trình này, việc xây dựng ứng dụng quản lý bán hàng, tồn kho, nhân sự, marketing, quan hệ khách hàng, tài chính - kế toán, cũng như các báo cáo thuế và quản trị là rất cần thiết Mặc dù các cơ sở dữ liệu cho các ứng dụng này giúp dễ dàng trong việc ghi chép, nhưng chúng lại có hạn chế trong phân tích dữ liệu Việc xây dựng nền tảng dữ liệu cho các ứng dụng sẽ giúp đơn giản hóa quy trình báo cáo và thống kê, từ đó hỗ trợ hiệu quả hơn cho việc ra quyết định.
Bảy định nghĩa và cách chuẩn bị dữ liệu là bước quan trọng cho quá trình khai phá dữ liệu sau này Trong phần tiếp theo, chúng ta sẽ tìm hiểu một số khái niệm cơ bản liên quan đến nền tảng dữ liệu.
1.2 Giới Thiệu Mô Hình 3 Lớp Trong C#
1.2.1 Giới thiệu về mô hình 3 lớp
Mô hình gồm có 3 lớp, đó là:
Lớp Giao diện người dùng (GUI Layer) chịu trách nhiệm giao tiếp với người dùng, bao gồm các thành phần giao diện và thực hiện các chức năng như nhập liệu, hiển thị dữ liệu, cũng như kiểm tra tính chính xác của dữ liệu trước khi chuyển đến lớp Xử lý nghiệp vụ (BLL).
Lớp Xử lý nghiệp vụ (Business Layer) đóng vai trò quan trọng trong việc nhận yêu cầu từ lớp GUI và truy xuất dữ liệu từ lớp Truy cập dữ liệu (Data Access Layer) Lớp này không chỉ lấy thông tin để trả về cho GUI mà còn đảm bảo các ràng buộc, tính toàn vẹn và hợp lệ của dữ liệu được tuân thủ Tại đây, các tính toán và xử lý yêu cầu nghiệp vụ cũng được thực hiện một cách chính xác.
Lớp Truy cập dữ liệu (Data Access Layer) đóng vai trò quan trọng trong việc giao tiếp với hệ quản trị cơ sở dữ liệu, thực hiện các thao tác lưu trữ và truy vấn dữ liệu Đây là lớp duy nhất có quyền truy cập trực tiếp vào cơ sở dữ liệu, đảm bảo tính bảo mật và hiệu quả trong quản lý dữ liệu.
Lớp DTO (Data Transfer Object) định nghĩa cấu trúc các bảng trong cơ sở dữ liệu, xác định các cột và đóng vai trò quan trọng trong việc ánh xạ dữ liệu khi thực hiện các truy vấn.
Nó có thể được hiểu như một công cụ cơ bản để ánh xạ đối tượng (ORM – Object- Relational Mapping)
1.2.2 Lợi thế của mô hình 3 lớp
Việc chia ứng dụng thành ba lớp với nhiệm vụ rõ ràng giúp quản lý dễ dàng và làm cho mã nguồn trở nên tường minh hơn Đồng thời, cấu trúc này cũng tạo điều kiện thuận lợi cho việc bảo trì, cho phép thay đổi một thành phần mà không ảnh hưởng đến toàn bộ hệ thống.
Việc phát triển và tái sử dụng nội dung trở nên dễ dàng hơn, giúp tiết kiệm thời gian bàn giao Đồng thời, việc phân công và kiểm soát khối lượng công việc trong nhóm cũng trở nên thuận lợi hơn.
1.3 GIỚI THIỆU VỀ MÔ HÌNH MVT VỚI DJANGO
Django là một framework Python được thiết kế để phát triển website theo yêu cầu của lập trình viên, hỗ trợ cả xử lý dữ liệu ở phần backend lẫn quản lý template cho phần frontend Mô hình MVT (Model-View-Template) là một trong những điểm nổi bật mà Django mang lại.
Hình 1.2 Cấu trúc mô hình MVT với Django
MVT là sự kết hợp của Model, View và Template Cấu trúc của MVT có ba phần như sau:
Mô hình dữ liệu đóng vai trò quan trọng trong việc quản lý dữ liệu, là cấu trúc dữ liệu logic nền tảng cho toàn bộ ứng dụng Nó kiểm soát mọi hoạt động như tạo, đọc, cập nhật và xóa (CRUD) giữa cơ sở dữ liệu và backend.
View là thành phần chứa logic truy cập dữ liệu qua model, thực hiện các yêu cầu và hiển thị kết quả cho template tương ứng Nó đóng vai trò cầu nối giữa Model và Template trong kiến trúc ứng dụng.
Template: chính là giao diện của người dùng Lớp này sẽ liên quan đến việc hiển thị thông tin dữ liệu cho người dùng ở dạng web hoặc dạng khác
1.4 TÌM HIỂU VỀ DATA LAKE, DATA WAREHOUSE, DATA MART
XÂY DỰNG DATA PLATFORM CHO ỨNG DỤNG QUẢN LÝ CỬA HÀNG TIỆN LỢI
THIẾT KẾ DATA WAREHOUSE
3.3 Xây dựng Dashboard cho báo cáo từ Data Warehouse
PHẦN NỘI DUNG CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 1.1 TỔNG QUAN VỀ NGÀNH BÁN LẺ VÀ MÔ HÌNH CHUỖI CỬA HÀNG
1.1.1 Tổng quan về ngành bán lẻ tại Việt Nam
Thị trường bán lẻ Việt Nam đang phát triển mạnh mẽ, đặc biệt sau khi gia nhập WTO, với sự gia tăng đầu tư nước ngoài từ các tập đoàn lớn như Walmart và 7-Eleven Các chuỗi bán lẻ nội địa như Thế Giới Di Động và Co.opmart cũng ghi nhận sự phát triển đáng kể Sức mua của thị trường tăng lên nhờ vào yếu tố cầu từ người tiêu dùng, bao gồm gia tăng dân số và thu nhập bình quân đầu người, cùng với sự phát triển của các mô hình cung ứng như trung tâm thương mại và cửa hàng tiện lợi.
Hình 1.1 GDP bình quân đầu người của Việt Nam từ năm 2006 - 2021
Nguồn: Báo Lao Động - https://laodong.vn
Theo Forbes, GDP bình quân đầu người tại Việt Nam đang tăng trưởng ấn tượng, vượt trội hơn nhiều quốc gia khác Xu hướng này không chỉ phản ánh sự năng động của nền kinh tế mà còn dự báo sự phát triển mạnh mẽ của ngành bán lẻ trong những năm tới.
1.1.2 Tổng quan về mô hình chuỗi cửa hàng tiện lợi tại Việt Nam
Mô hình cửa hàng tiện lợi đang ngày càng phổ biến trên toàn thế giới, với diện tích thường dưới 400 m2, cung cấp các hàng hóa và dịch vụ thiết yếu Những cửa hàng này thường được đặt tại các khu dân cư đông đúc, gần trường học, trạm xăng, hoặc các điểm giao thông như trạm xe buýt, bến xe và sân bay Thời gian hoạt động của cửa hàng tiện lợi rất linh hoạt, thường mở cửa nhiều giờ trong ngày hoặc thậm chí 24/7 để phục vụ nhu cầu của khách hàng.
Trong bối cảnh kinh tế phát triển và dân số gia tăng, thị trường bán lẻ, đặc biệt là mô hình cửa hàng tiện lợi, vẫn còn nhiều tiềm năng phát triển Tuy nhiên, sự gia tăng nhà đầu tư đã tạo ra một môi trường cạnh tranh khốc liệt Để nâng cao ưu thế cạnh tranh, việc phát triển cửa hàng tiện lợi thành chuỗi là một giải pháp hiệu quả Các nhà bán lẻ có thể nhập hàng hóa với số lượng lớn, từ đó phân phối và bán lẻ, giúp giảm giá thành sản phẩm và tạo lợi thế cạnh tranh Hơn nữa, việc phát triển thành chuỗi cũng góp phần nâng cao độ nhận diện thương hiệu và uy tín của cửa hàng, tạo sự yên tâm cho khách hàng khi mua sắm.
Việc phát triển chuỗi cửa hàng mang lại nhiều lợi ích, nhưng cũng gặp phải những thách thức trong quản lý và vận hành Để tối ưu hóa quy trình này, việc xây dựng ứng dụng quản lý bán hàng, tồn kho, nhân sự, marketing, quan hệ khách hàng, tài chính - kế toán, cùng với các báo cáo thuế và quản trị là cần thiết Mặc dù các cơ sở dữ liệu hiện tại hỗ trợ tốt cho việc ghi chép, nhưng chúng có nhiều hạn chế trong phân tích dữ liệu Do đó, việc xây dựng nền tảng dữ liệu cho các ứng dụng này sẽ giúp đơn giản hóa quy trình báo cáo và thống kê, từ đó hỗ trợ hiệu quả trong việc ra quyết định.
Bảy định nghĩa và chuẩn bị dữ liệu là bước quan trọng cho việc khai phá dữ liệu sau này Trong phần tiếp theo, chúng tôi sẽ trình bày một số khái niệm cơ bản trong nền tảng dữ liệu.
1.2 Giới Thiệu Mô Hình 3 Lớp Trong C#
1.2.1 Giới thiệu về mô hình 3 lớp
Mô hình gồm có 3 lớp, đó là:
Lớp Giao diện người dùng (GUI Layer) là phần mềm chịu trách nhiệm tương tác với người dùng, bao gồm các thành phần giao diện và thực hiện các nhiệm vụ như nhập liệu, hiển thị dữ liệu và kiểm tra tính chính xác của dữ liệu trước khi chuyển giao cho lớp Xử lý nghiệp vụ (BLL).
Lớp Xử lý nghiệp vụ đóng vai trò trung gian giữa lớp GUI và lớp Truy cập dữ liệu, nhận yêu cầu từ GUI và truy xuất thông tin cần thiết Tại đây, các ràng buộc về tính toàn vẹn và hợp lệ của dữ liệu được đảm bảo, cùng với việc thực hiện các tính toán và xử lý yêu cầu nghiệp vụ một cách chính xác.
Lớp Truy cập dữ liệu (Data Access Layer) chịu trách nhiệm giao tiếp với hệ quản trị cơ sở dữ liệu (CSDL) để thực hiện các thao tác lưu trữ và truy vấn dữ liệu Đây là lớp duy nhất được phép truy cập trực tiếp vào cơ sở dữ liệu, đảm bảo việc quản lý và xử lý dữ liệu diễn ra hiệu quả và an toàn.
Lớp DTO (Data Transfer Object) định nghĩa cấu trúc các bảng trong cơ sở dữ liệu, bao gồm việc xác định các cột và ánh xạ dữ liệu khi thực hiện truy vấn.
Nó có thể được hiểu như một công cụ cơ bản để ánh xạ đối tượng (ORM – Object- Relational Mapping)
1.2.2 Lợi thế của mô hình 3 lớp
Việc chia ứng dụng thành ba lớp với nhiệm vụ rõ ràng giúp quản lý dễ dàng và tăng tính minh bạch trong mã nguồn Điều này cũng tạo điều kiện thuận lợi cho việc bảo trì, vì khi cần thay đổi một thành phần, toàn bộ chương trình sẽ không bị ảnh hưởng.
Phương pháp này không chỉ dễ dàng phát triển và tái sử dụng, mà còn giúp tiết kiệm thời gian nhờ vào khả năng bàn giao hiệu quả Hơn nữa, nó tạo điều kiện thuận lợi cho việc phân công và kiểm soát khối lượng công việc trong nhóm.
1.3 GIỚI THIỆU VỀ MÔ HÌNH MVT VỚI DJANGO
Django là một framework Python lý tưởng cho việc phát triển website, hỗ trợ lập trình viên trong việc xử lý dữ liệu backend và quản lý hệ thống template frontend Mô hình MVT (Model-View-Template) là điểm nhấn quan trọng mà Django mang lại cho quá trình phát triển ứng dụng web.
Hình 1.2 Cấu trúc mô hình MVT với Django
MVT là sự kết hợp của Model, View và Template Cấu trúc của MVT có ba phần như sau:
Mô hình quản lý dữ liệu đóng vai trò quan trọng trong việc kiểm soát cấu trúc dữ liệu logic của toàn bộ ứng dụng, đảm bảo mọi hoạt động như tạo, đọc, cập nhật và xóa (CRUD) giữa cơ sở dữ liệu và backend được thực hiện một cách hiệu quả.
View là thành phần chứa logic truy cập dữ liệu qua model, thực hiện các yêu cầu và hiển thị kết quả cho template tương ứng, đóng vai trò cầu nối giữa Model và Template.
Template: chính là giao diện của người dùng Lớp này sẽ liên quan đến việc hiển thị thông tin dữ liệu cho người dùng ở dạng web hoặc dạng khác
1.4 TÌM HIỂU VỀ DATA LAKE, DATA WAREHOUSE, DATA MART
THIẾT KẾ VÀ XÂY DỰNG DATA PIPELINE
Data pipeline có hai loại chính: batch processing và realtime processing Trong phần mềm quản lý cửa hàng tiện lợi, dữ liệu chủ yếu bao gồm thông tin đặt hàng từ website, doanh số bán hàng tại cửa hàng, dữ liệu kho, và thông tin từ ứng dụng quản lý nhân sự.
Sử dụng ETL (batch processing) cho loại dữ liệu này sẽ mang lại hiệu quả và tiết kiệm chi phí hơn Mô hình thiết kế data pipeline cho ứng dụng được trình bày trong hình dưới đây.
Mô hình thiết kế data pipeline cho ứng dụng quản lý cửa hàng tiện lợi bắt đầu bằng việc trích xuất dữ liệu từ nhiều nguồn khác nhau Sau đó, dữ liệu được tổng hợp và sử dụng Pyspark để nạp vào HDFS.
Sau khi dữ liệu được đưa vào HDFS, chúng sẽ được chuyển đổi bằng Python, cho phép thay đổi tên các cột, tính toán các chỉ số và chuyển đổi kiểu ngày Sau khi hoàn tất quá trình chuyển đổi, dữ liệu sẽ được lưu trữ lại trong HDFS.
Sau khi dữ liệu được lưu trữ trong HDFS, quá trình tiếp theo là biến đổi và tải dữ liệu vào kho dữ liệu Apache Hive Dưới đây là danh sách các bảng được mô tả trong hình.
Sau khi load dữ liệu được lưu trữ trong HDFS, thông qua hive có thể truy vấn bảng retail_sales_fact trong kho dữ liệu như sau:
Bảng retail_sales_fact chứa 292.449 bản ghi được nhóm tạo ra ngẫu nhiên theo quy luật để đảm bảo tính logic của dữ liệu Nhóm sử dụng Apache Superset để làm báo cáo từ dữ liệu trong kho, và nội dung chi tiết sẽ được trình bày ở phần sau.
XÂY DỰNG DASHBOARD BÁO CÁO TỪ DATA WAREHOUSE
3.4.1 Tạo cơ sở dữ liệu Apache Hive trên Apache Superset
Tạo database trên Apache Superset với tên Apache Hive:
Hình 3.3 Tạo CSDL trên Apache Superset
3.4.2 Tạo dashboard trên Apache Superset
Tạo dashborad tên Shamy’s Dashboard trên Apache Superset
Hình 3.4 Tạo dashboard trên Apache Superset
3.4.3 Xây dựng dashboard cho báo cáo
The dashboard provides an overview with four key tabs: Sales Report, HR Report, Inventory Report, and Procurement Report Each section includes various statistical charts that offer insights and analytics for the store's performance.
Hình 3.5 Các biểu đồ về báo cáo doanh thu của cửa hàng - phần 1
Báo cáo doanh số Tab sẽ cung cấp cái nhìn tổng quan về hoạt động kinh doanh của chuỗi cửa hàng tiện lợi, giúp quản lý hiểu rõ hơn về hiệu quả các chiến dịch bán hàng và định hướng chiến lược Bằng cách theo dõi và so sánh các chỉ số theo thời gian, quản lý có thể xác định xu hướng và mô hình tiêu thụ, từ đó tối ưu hóa hoạt động và nâng cao hiệu suất kinh doanh Hai biểu đồ đầu tiên sử dụng Big Number Chart thể hiện tổng doanh thu và số lượng sản phẩm bán được của các cửa hàng.
Chúng ta sử dụng biểu đồ bảng để hiển thị tổng số lượng sản phẩm bán được theo loại sản phẩm Những sản phẩm bán chạy nhất bao gồm thực phẩm đông lạnh, gia vị và đồ dùng gia đình, cho thấy phần lớn khách hàng của chúng ta là người tiêu dùng nội trợ.
Hình 3.6 Các biểu đồ báo cáo doanh thu của cửa hàng - phần 2
Biểu đồ tròn này minh họa doanh thu của cửa hàng theo từng loại sản phẩm, trong đó thực phẩm đông lạnh chiếm tỷ lệ cao nhất, tiếp theo là hóa phẩm - tẩy rửa và gia vị.
Báo cáo tồn kho giúp xác định số lượng hàng tồn kho và nắm rõ tình hình hàng hóa sẵn có để phục vụ khách hàng Đồng thời, báo cáo này cũng đánh giá tình trạng hàng tồn, giúp quản lý nhận diện các mặt hàng đang dư thừa.
Cần kiểm soát rủi ro và gian lận liên quan đến việc mất mát hàng hóa và hủy hỏng, nhằm đảm bảo các biện pháp xử lý kịp thời và tái lập nguồn cung hiệu quả.
Hình 3.7 Các biểu đồ thể hiện tổng quan tồn kho của kho hàng
Biểu đồ tròn là công cụ hữu ích để đánh giá doanh số của các cửa hàng, giúp xác định cửa hàng nào hoạt động hiệu quả và thu hút nhiều khách hàng Đồng thời, nó cũng chỉ ra những cửa hàng chưa đạt hiệu quả mong muốn, từ đó tìm ra nguyên nhân như vị trí địa lý hay cách trưng bày sản phẩm.
Biểu đồ cột ngang hiển thị số lượng sản phẩm trong kho theo từng loại, giúp xác định những sản phẩm chất lượng cao đáp ứng nhu cầu khách hàng Nhờ vào thông tin này, cửa hàng có thể tiếp tục nhập khẩu các sản phẩm phù hợp, từ đó nâng cao doanh số bán hàng.
Biểu đồ đường thể hiện xu hướng tồn kho theo thời gian giúp xác định các khoảng thời gian trong năm có số lượng sản phẩm tồn kho cao Từ đó, người quản lý có thể phân tích và điều chỉnh kế hoạch nhập hàng hợp lý, tránh tình trạng tồn dư quá nhiều, ảnh hưởng đến lợi nhuận của cửa hàng.
Hình 3.8 Biểu đồ thể hiện xu hướng tồn kho của cửa hàng
Biểu đồ hình phễu minh họa số lượng tồn kho sản phẩm của từng nhà cung cấp, giúp chúng ta đánh giá lại sự hợp tác với các nhà cung cấp có sản phẩm chất lượng kém và không đáp ứng nhu cầu của khách hàng.
Hình 3.9 Biểu đồ thể hiện sự tương quan giữa số lượng tồn kho và nhà cung cấp
Báo cáo về nhập hàng (Procurement Report) cung cấp thông tin chi tiết về nguồn cung, số lượng hàng hóa, thời gian nhập và các yếu tố liên quan khác Nó giúp kiểm soát chất lượng hàng hóa thông qua việc xem xét nguồn gốc, nhà cung cấp, thông số kỹ thuật, chứng chỉ chất lượng và các yêu cầu khác Đồng thời, báo cáo cũng đánh giá hiệu quả và lợi nhuận để quyết định xem có nên tiếp tục nhập hàng từ các nhà cung cấp hiện tại hay không Tóm lại, báo cáo nhập hàng là công cụ quan trọng giúp tối ưu hóa quy trình nhập hàng, đảm bảo cửa hàng tiện lợi hoạt động hiệu quả và thành công trong kinh doanh.
Hình 3.10 Tổng quan về việc nhập hàng hóa của cửa hàng
Biểu đồ trên cung cấp cái nhìn tổng quan về tình hình nhập hàng hóa của cửa hàng, giúp kiểm soát số lượng và giá trị nhập Khi kết hợp với báo cáo tồn kho, chúng ta có thể quản lý hiệu quả nguồn hàng ra vào, đánh giá lợi nhuận sản phẩm và từ đó nâng cao hiệu quả hoạt động của cửa hàng.
Xây dựng phần mềm quản lý chuỗi cửa hàng tiện lợi trên Windows theo mô hình ba lớp, giúp nhân viên dễ dàng quản lý các giao dịch hàng ngày như thêm, xóa, sửa thông tin sản phẩm, nhân viên, nhà cung cấp, khuyến mãi và khách hàng Phần mềm cũng hỗ trợ thực hiện các giao dịch bán hàng, nhập hàng và hủy hàng một cách hiệu quả.
Xây dựng một trang web bán hàng online cho chuỗi cửa hàng tiện lợi sử dụng mô hình MVT với Django, cho phép khách hàng dễ dàng xem danh sách sản phẩm, tìm kiếm và lọc theo danh mục Khách hàng cũng có thể xem thông tin chi tiết sản phẩm, thêm sản phẩm vào giỏ hàng, đặt hàng và quản lý thông tin các đơn hàng đã đặt.
Xây dựng kho dữ liệu cho hai ứng dụng quản lý chuỗi cửa hàng tiện lợi giúp lưu trữ thông tin giao dịch của tất cả các cửa hàng Từ kho dữ liệu này, chúng ta có thể thống kê và báo cáo doanh thu, doanh số, từ đó đưa ra các phương pháp phát triển chuỗi cửa hàng Ngoài ra, kho dữ liệu cũng hỗ trợ thống kê tồn kho và nhập hàng, giúp đáp ứng kịp thời nhu cầu của khách hàng Cuối cùng, việc quản lý nhân sự sẽ được cải thiện, cho phép đánh giá hiệu suất làm việc của nhân viên để đưa ra các phương án nhân sự phù hợp.