Hình 57:Giao diện trang đăng nhập
Hình 59:Giao diện trang xác nhận đơn hàng và thanh toán
Hình 60:Giao diện thanh toán bằng thẻ tín dụng
Hình 62:Giao diện in hóa đơn
Hình 64:Giao diện xem lịch sử ca làm việc chi tiết
Hình 66:Giao diện quản lý sản phẩm
Hình 68:Giao diện quản lý khuyến mãi
Hình 70:Giao diện xem thông báo hàng sắp hết
Phần F
Triển khai
20 Môi trường triển khai 20.1 Heroku
Heroku là dịch vụ cung cấp máy chủ miễn phí cho người dùng. Đây là một dịch vụ nhận được sự hỗ trợ từ cộng đồng tương đối lớn với vô vàn các addons hỗ trợ cực kỳ hữu ích. Tuy với cái giá phải trả là0$nhưng Heroku cung cấp những lợi ích vô cùng tuyệt vời không kém gì những server có tính phí.
Heroku cung cấp dịch vụ máy chủ đám mây giúp dễ dàng trong việc deploy ứng dụng và có những ưu điểm rất rõ ràng:
• Database miễn phí • SSL miễn phí
• Hỗ trợ làm việc team cực kì tốt khi cho phép nhiều người cùng quản lý deploy của một dự án
• Liên kết với Github đơn giản
20.2 Somee
Somee là một ASP Hosting miễn phí có hỗ trợ đưa cơ sở dữ liệu MS Sql Server lên host. Ngoài ra, Somee cũng cung cấp cả Connection String để dễ dàng thao tác liên kết cơ sở dữ liệu trong quá trình hiện thực hệ thống.
Chính vì vậy, lựa chọn Somee trong quá trình triển khai là lựa chọn tốt nhất theo như chúng tôi tìm hiểu.
Phần G
Kiểm thử hệ thống
Tất cả các giai đoạn của quá trình phát triển phầm mềm đều trải qua quá trình kiểm thử phần mềm. Có 4 cấp độ15kiểm thử phần mềm là:
• Kiểm thử đơn vị (Unit Testing): là cấp độ kiểm thử cơ bản, thực hiện test từng module nhỏ trong hệ thống. Mục đích: để xác nhận mỗi thành phần của phần mềm thực hiện đúng với thiết kế.
• Kiểm thử tích hợp (Integration Testing): tích hợp kiểm tra việc truyền dữ liệu giữa các module, tích hợp kiểm tra các hàm lại với nhau, các màn hình với nhau theo từng module hoặc theo chức năng. Mục đích: để đảm bảo rằng hệ thống tích hợp đã sẵn sàng để thử nghiệm hệ thống.
• Kiểm thử hệ thống (System Testing): là thực hiện kiểm thử một hệ thống đã được tích hợp hoàn chỉnh để xác minh rằng nó đúng yêu cầu của phần mềm.
• Kiểm thử chấp nhận (Acceptance Testing): sau khi kiểm tra hệ thống đã sửa tất cả hoặc hầu hết các lỗi, hệ thống sẽ được gửi đến người dùng hoặc khách hàng để kiểm tra chấp nhận.
Quá trình kiểm thử được thực hiện trên hệ điều hành Windows 10. Trong phạm vi tài liệu này, chúng tôi sẽ trình bày về phần kiểm thử hệ thống. Cụ thể được minh họa bên dưới:
21 Kiểm thử chức năng
Do khuôn khổ bài báo cáo, chúng tôi chỉ có thể trình bày một số chức năng chính (tương ứng với 2 luồng hoạt động chính) và một số chức năng cơ bản. Những chức năng còn lại cũng đã trải qua quá trình kiểm thử với một số testcase.
STT Test case Yêu cầu kết quả Kết quả Ghi
chú
Hoạt động bán hàng
1 Thêm sản phẩm vào giỏ hàng Giỏ hàng được cập nhật sản phẩm với tên, hình ảnh, giá tương ứng chính xác
Pass 2 Tăng số lượng sản phẩm trong
giỏ hàng Giá được cập nhật chính xác tươngứng với sản phẩm Pass 3 Thêm cùng một sản phẩm
nhiều lần Có phải là cùng một mặt hàng tronggiỏ hàng, nhưng số lượng phải phản ánh chính xác số sản phẩm được thêm vào và tổng giá trị đơn hàng được cập nhật bằng tổng giá của từng sản phẩm trong giỏ hàng
Pass
4 Thêm nhiều loại sản phẩm
khác nhau Đối với mỗi sản phẩm được thêmvào chúng ta sẽ thấy tên sản phẩm, hình ảnh, giá tương ứng và tổng giá trị tất cả các sản phẩm
Pass
5 Loại bỏ một số sản phẩm
trong giỏ hàng Giỏ hàng cập nhật các sản phẩm cònlại trong giỏ hàng và tổng giá trị tương ứng
Pass 6 Loại bỏ tất cả sản phẩm trong
giỏ hàng Số dư của giỏ hàng trở về 0, vàkhông còn sản phẩm nào được hiển thị trong giỏ hàng
Pass 7 Thêm sản phẩm đã hết hàng Báo lỗi nhắc nhở sản phẩm này đã
hết hàng Pass
Thanh toán
8 Thanh toán bằng tiền mặt Nhập số tiền hợp lệ, thanh toán thành công, dữ liệu thanh toán được ghi vào session của nhân viên đó
Pass 9 Thanh toán bằng thẻ tín dụng
hợp lệ Nhập số thẻ tín dụng hợp lệ, thanhtoán thành công, dữ liệu thanh toán được ghi vào session của nhân viên đó
Pass
10 Thanh toán bằng ví điện tử
VNPAY hợp lệ Chuyển qua trang thanh toán củaVNPAY, tiến hành thanh toàn hợp lệ và ghi vào session
11 Thanh toán bằng thẻ tín dụng
không hợp lệ Hiển thị lỗi báo thẻ tín dụng khônghợp lệ Pass 12 Áp dụng phiểu giảm giá hợp
lệ Giá thành chung được giảm tươngứng với phiếu giảm giá Pass 13 Áp dụng phiểu giảm giá
không hợp lệ Báo lỗi phiểu giảm giá không hợplệ Pass
Hoạt động nhập hàng vào chi nhánh
14 Tạo đơn yêu cầu nhập hàng
mới Đơn yêu cầu nhập hàng được tạothành công phải hiện thị lên danh sách đơn của quản kho chi nhánh
Pass 15 Xem chi tiết yêu cầu đơn hàng Đơn hàng hiển thị các chi tiết thông
tin của mình, bao gồm: thông tin cơ bản của đơn hàng, sản phẩm, người tạo
Pass
16 Thay đổi trạng thái của yêu
cầu đơn hàng Trạng thái được thay đổi phải đượccập nhật trên toàn hệ thống Pass 17 Hủy đơn hàng Trạng thái đã hủy phải được cập
nhật trên toàn hệ thống Pass
18 Hủy đơn hàng đang giao Không hủy được Pass
Hoạt động chung
19 Đăng nhập
20 Đăng nhập đúng tài khoản
mật khẩu đã xác nhận Chuyển hướng đến giao diện ứngvới role của mình trong hệ thống Pass 21 Đăng nhập đúng tài khoản
mật khẩu chưa xác nhận Chuyển hướng đến giao diện yêucầu xác nhận Pass 22 Nhập sai format email Không cho ấn nút Login Pass 23 Nhập sai tài khoản hoặc mật
khẩu Báo login fail Pass
Một số hoạt động khác
24 Gợi ý sắp xếp vị trí hàng Cho ra kết quả Apriori đúng Pass 25 Dự đoán bán hàng Cho ra kết quả hồi quy đúng Pass
22 Kiểm thử hiệu năng
Kiểm thử hiệu năng (Performance Test): là kiểm tra sự tuân thủ của hệ thống với các yêu cầu được chỉ định về hiệu năng. Xác định những thuộc tính chất lượng của hệ thống. Dưới đây là bảng đo lường thời gian phản hồi của một số URL.
URL Thời gian (s)
/ 0.0048 /login 0.0065 /signup 0.0024 /product/manage 0.4486 /account/manage 0.5326 /promotion/manage 0.2065 /pos 0.2542 /pos/past 0.4836 /pos/past 0.4836 /operation/recommend-products-position 0.1336
* Ghi chú: số liệu trên được đo bằng My Pingdom (https://my.pingdom.com/) với các thiết lập:
• Link đã deploy lên server Heroku: https://retailsystem.herokuapp.com/ • Server dùng để ping: Eastern US
Qua bảng trên có thể nhận thấy, các URL tương ứng với các trang chỉ load lên giao diện nhẹ mà ít phải load dữ liệu từ database (như trang Login, Signup, ...) có thời gian load khá nhanh (lần lượt 0.0065 và 0.0024). Các trang khác phải lấy dữ liệu từ database và mất thời gian cho quá trình xử lý (như trang Quản lý sản phẩm, Quản lý tài khoản, ...) sẽ mất thời gian lâu hơn (0.4486 và 0.5326).
23 Kiểm thử cơ sở dữ liệu
Kiểm thử cơ sở dữ liệu (Database Test): Là kiểm tra dữ liệu hiển thị trên hệ thống có giống với dữ liệu trong cơ sở dữ liệu hay không. Chúng tôi đã thực hiện và xác nhận hệ thống hoạt động ổn định và hiển thị dữ liệu chính xác.
24 Kiểm thử tính khả dụng
Kiểm thử tính khả dụng (Usability Test): Kiểm tra tính thân thiện với người dùng và tính dễ sử dụng của hệ thống. Hệ thống có giao diện thân thiện và bắt mắt.
25 Kiểm tra tính tương thích
Kiểm tra tính tương thích (Compatibility Test) : Là kiểm tra xem hệ thống có tương thích với các yếu tố khác của hệ thống mà nó sẽ hoạt động hay không (Ví dụ: trình duyệt, hệ điều hành, ...).
Hệ thống đã được kiểm thử trên các trình duyệt Chrome, Mozilla Firefox, Microsoft Edge và có giao diện giống nhau ở các trình duyệt. Hệ thống cũng đã được chạy thử trên hệ điều hành Windows 10 và Ubuntu 18.04 đều cho kết quả không có sự khác biệt đáng kể.
Phần H
Đo lường và cải thiện hiệu suất 26 Đo lường bằng Google PageSpeed Insights
26.1 Chi tiết các thông số 26.1.0.a First Contentful Paint
Chỉ số Hiển thị nội dung đầu tiên đánh dấu thời điểm hiển thị văn bản hoặc hình ảnh đầu tiên.
26.1.0.b Speed Index
Chỉ số tốc độ cho biết nội dung của một trang hiển thị nhanh chóng đến mức nào.
26.1.0.c Largest Contentful Paint
Thời gian hiển thị nội dung lớn nhất đánh dấu thời điểm hiển thị văn bản hoặc hình ảnh có kích thước lớn nhất.
26.1.0.d Time to Interactive
Thời điểm tương tác là khoảng thời gian mà trang cần để trở nên hoàn toàn tương tác.
26.1.0.e Total Blocking Time
Tổng tất cả các khoảng thời gian giữa thời điểm Hiển thị nội dung đầu tiên (FCP) và Thời điểm tương tác khi thời gian của nhiệm vụ vượt quá 50 mili giây được biểu thị bằng đơn vị mili giây.
26.1.0.f Cumulative Layout Shift
Điểm số tổng hợp về mức thay đổi bố cục đo lường mức độ dịch chuyển của các thành phần hiển thị trong khung nhìn.
26.2 Nhận xét
Tuy kết quả đo lường cho thấy hệ thống vẫn còn 1 số hạn chế trong khả năng tải và hiển thị trang nhưng vẫn có 1 số chỉ số đạt mức tốt như FCP, TTI, TBT, CLS và đây vẫn là 1 hệ thống đang trong quá trình phát triển và có thể cải thiện thêm với các biện pháp khác.
26.3 Cải thiện hiệu suất
Những cách cải thiện hiệu suất được đề xuất:
26.3.1 Giảm thời gian phản hồi ban đầu của máy chủ và tải trước các yêu cầu chính
Vì hệ thống vẫn còn trong giai đoạn phát triển và nhóm sử dụng Heroku với gói miễn phí nên vẫn có một số hạn chế về băng thông và sức mạnh server. Đồng thời, server được cấp ở gói miễn phí sẽ chuyển sang trạng thái sleep nếu không có request trong một khoản thời gian ảnh hưởng đến thời gian chờ ở những lần gọi tiếp theo.
Nhóm cũng chưa hiện thực các chức năng cache một số dữ liệu quan trọng, thiết yếu để đảm bảo hiệu suất ở các lần gọi.
Về database, để tiết kiệm chi phí, thay vì dùng Azure, nhóm sử dụng Somee để hosting miễn phí database SQL Server và đây là 1 dịch vụ hosting SQL Server chia sẻ nhiều người dùng với hiệu suất không cao.
=> Giải pháp đề xuất: Nâng cấp gói Heroku, sử dụng dịch vụ hosting database tốt hơn, hiện thực cache dữ liệu quan trọng.
26.3.2 Phân phối hình ảnh ở định dạng mới và hiệu quả hơn
Nhóm vẫn chưa hiện thực resize hình ảnh với các kích thước màn hình và mục đích khác nhau nên vẫn chưa tối ưu trong việc load hình ảnh.
Nhóm lưu hình ảnh, tệp trực tiếp lên server backend và không sử dụng một nền tảng lưu trữ bên thứ 3 chuyên dụng nên chưa thể tối ưu việc lưu trữ và sử dụng hình ảnh, tệp, ...
=> Giải pháp đề xuất: Hiện thực resize hình ảnh với kích thước và chức năng khác nhau, sử dụng một số nền tảng thứ 3 chuyên dụng để cải thiện hiệu suất.
Phần I
Đánh giá
27 Ưu nhược điểm 27.1 Ưu điểm
• Hệ cơ sở dữ liệu được xây dựng chặt chẽ, đáng tin cậy với dữ liệu mẫu insert lớn thuận tiện cho việc hiện thực các giải thuật khai phá dữ liệu cũng như kiểm thử khả năng hoạt động của hệ thống một cách hiệu quả.
• Hệ thống có giao diện thân thiện, dễ sử dụng.
• Hệ thống hỗ trợ quản lý tình hình kinh doanh tốt hơn bằng các thống kê kho và thống kê bán hàng.
• Hệ thống có hỗ trợ các chức năng khai phá dữ liệu giúp đưa ra đề xuất tốt hơn • Dễ dàng nâng cấp và mở rộng hệ thống
27.2 Nhược điểm
• Cơ sở dữ liệu sử dụng là SQL Server là hệ quản trị cơ sở dữ liệu của Microsoft không được miễn phí trên một số nền tảng như Heroku mà cần phí thanh toán để sử dụng trong một số trường hợp như deploy bằng Azure hoặc sử dụng các dịch vụ phân tích dữ liệu tích hợp đi kèm.
• Hệ thống sử dụng một số dịch vụ hosting miễn phí (Heroku) để tiết kiệm chi phí dẫn đến một số hạn chế về băng thông, tính năng cũng như trải nghiệm người dùng.
• Hệ thống còn chưa hiện thực 1 số tính năng giúp tối ưu việc quản lý hoạt động kinh doanh như chưa lưu trữ hàng dưới dạng nhiều cấu hình ở cùng một loại hàng, chưa quản lý kho kệ, chưa quản lý nhập xuất hàng ở mức chi nhánh, ...
• Tồn tại những thiếu sót về chuyên môn và nghiệp vụ quản lý
28 Kết luận
Với việc thực hiện luận văn tốt nghiệp này, nhóm đã được học hỏi thêm nhiều kinh nghiệm và kiến thức trong cả chuyên môn về công nghệ phần mềm, hệ thống thông tin, cơ sở dữ liệu, khai phá dữ liệu cũng như trong quản lý nguồn lực doanh nghiệp thông qua việc tìm hiểu nghiệp vụ hệ thống bán hàng và kho hàng.
Những kết quả đạt được của nhóm bao gồm:
• Tìm hiểu và hiểu được phần nào nghiệp vụ của các doanh nghiệp trong việc quản lý chuỗi cửa hàng bán lẻ, một mô hình kinh doanh khá phổ biến ngày nay.
• Tìm hiểu các bước để hình thành một quy trình làm việc trong lĩnh vực xây dựng ứng dụng một cách chuyên nghiệp, đi từ những khâu đầu tiên chuẩn bị cấu trúc chương trình, quản lý nguồn đến những khâu quan trọng quyết định như xây dựng cơ sở dữ liệu, cách hoạt động của hệ thống.
• Hiểu được cách thức xây dựng một trang web, tổ chức của frontend, backend và database như thế nào để hoạt động có hiệu quả, có hệ thống, dễ quản lý, đảm bảo tính độc lập của từng phần.
• Được có cơ hôi tiếp xúc học hỏi với những thư viện, công nghệ mới như ReactJS, viết API bằng NestJS, sử dụng database bằng Microsoft SQL Server.
• Tìm hiểu một số thuật toán trong Khai phá dữ liệu để đề xuất và cải thiện năng suất bán hàng của chi nhánh
29 Hướng phát triển
Do sự non nớt trong kinh nghiệm và có thể còn thiếu sót trong kiến thức, hệ thống chưa thực sự hoàn hảo. Do vậy, hệ thống có thể có thêm những hướng phát triển để hoàn thiện hơn như:
• Hệ thống có thể quản lý hàng lưu trữ hàng dưới dạng nhiều cấu hình ở cùng một loại hàng • Mở rộng hệ thống quản lý ở các mức cao hơn như quản lý hệ thống từ cả kho mẹ, hoặc tổng quát hơn nữa là từ cả nhà sản xuất hàng hóa hay nhà cung cấp hàng hóa cho công ty mẹ.
• Hệ thống tích hợp bản đồ và các tình trạng giao thông hiện tại, xây dựng thuật toán tính toán dựa trên tình trạng đó để có thể nhập hàng từ kho một cách hiệu quả, chính xác nhất. • Hệ thống mở rộng quản lý cả việc vận chuyển tận nhà cho từng khách hàng nếu doanh
nghiệp có như cầu mở rộng thêm.
• Hệ thống tích hợp nhận diện khuôn mặt và vân tay để điểm danh cho nhân viên chính xác và tiêu tốn ít thời gian hơn.
30 Lời kết
Hơn 20 năm đổi mới chúng ta đã đạt được những thành tựu đáng kể, tuy còn nhiều thiếu sót