Phát triển ứng dụng Web( Quản lý quán NET)

31 13 0
Phát triển ứng dụng Web( Quản lý quán NET)

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

TRƯỜNG ĐẠI HỌC NHA TRANG KHOA CÔNG NGHỆ THÔNG TIN Môn học Phát triển ứng dụng web ĐỀ TÀI QUẢN LÝ QUÁN NET GVBM Bùi Chí Thành Thành viên nhóm 1 Lê Thị Ý Nhi 60137458 2 Nguyễn Việt Hưng 61130752 3 Đỗ Tu.

TRƯỜNG ĐẠI HỌC NHA TRANG KHOA CÔNG NGHỆ THÔNG TIN Môn học: Phát triển ứng dụng web ĐỀ TÀI QUẢN LÝ QN NET GVBM: Bùi Chí Thành Thành viên nhóm: Lê Thị Ý Nhi Nguyễn Việt Hưng Đỗ Tuấn Kiệt 60137458 61130752 61133820 Mục lục 1 TỔNG QUAN VỀ ĐỀ TÀI Lý chọn đề tài: Đây chương trình quản lý quán NET cho quán NET nhỏ tầm 20 máy Chương trinh cài đặt máy chủ Phần mềm giống bảng qua ta xử lí thơng tin liên quan đến qn NET tốn tiền máy, lưu thông tin cố máy quán NET đưa thông tin tổng kết tình hình quán NET sau khoảng thời gian định Mục tiêu đề tài  Trau dồi kiến thức cho mơn học, có kinh nghiệm phân tích, thiết kế tốn thực tế  Tăng kỹ làm việc nhóm, cách nhìn tổng quan vấn đề  Tin học hóa quy trình quản lý cửa hàng  Ứng dụng xây dựng website quản lý quán net với tính sau: giao diện thân thiện, dễ sử dụng, xem thông tin dễ dàng, mở máy nhanh chóng Giới hạn phạm vi đề tài  Nhỏ, trước mắt triển khai quán net nhỏ thành phố Nha Trang  Đối tượng sử dụng: Phần mềm sử dụng nhân viên quán net Tính khả thi  Xây dựng website quản lý quán net theo yêu cầu đề tài  Xây dựng hệ thống quản lý quán net có đủ chức CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.1 Tổng quan ngôn ngữ Asp.NET MVC Mẫu kiến trúc Model - View - Controller sử dụng nhằm chi ứng dụng thành ba thành phần chính: model, view controller Nền tảng ASP.NET MVC giúp cho tạo ứng dụng web áp dụng mơ hình MVC thay tạo ứng dụng theo mẫu ASP.NET Web Forsm Nền tảng ASP.NET MVC có đặc điểm bật nhẹ (lighweigt), dễ kiểm thử phần giao diện (so với ứng dụng Web Forms), tích hợp tính có sẵn ASP.NET Nền tảng ASP.NET MVC định nghĩa namespace System.Web.Mvc phần name space System.Web MVC mẫu thiết kế (design pattern) chuẩn mà nhiều lập trình viên quen thuộc Một số loại ứng dụng web thích hợp với kiến trúc MVC Một số khác thích hợp với ASP.NET Web Forms chế postbacks Đôi có ứng dụng kết hợp hai kiến trúc 2.1.1 Giới thiệu Asp.NET MVC Framework ASP.NET tảng ứng dụng web (web application framework) phát triển cung cấp Microsoft, cho phép người lập trình tạo trang web động, ứng dụng web dịch vụ web - Dựa ASP.NET, ASP.NET MVC cho phép nhà phát triển phần mềm xây dựng ứng dụng web dựa mẫu thiết kế MVC MVC mẫu thiết kế (design pattern) chuẩn, sử dụng nhằm chia ứng dụng thành ba thành phần chính: model, view controller - Phiên ASP.NET MVC: ASP.NET MVC (10/2013), ASP.NET MVC 5.2.7 (11/2017) Nền tảng MVC bao gồm thành phần : Model View Controller Hình 1: Mẫu Model - View - Controller Models: Các đối tượng Models phần ứng dụng, đối tượng thiết lập logic phần liệu ứng dụng Thông thường, đối tượng model lấy lưu trạng thái model CSDL Ví dụ như, đối tượng Product (sản phẩm) lấy liệu từ CSDL, thao tác liệu cập nhật liệu trở lại vào bảng Products SQL Server Trong ứng dụng nhỏ, model thường là khái niệm nhằm phân biệt cài đặt thực thụ, ví dụ, ứng dụng đọc liệu từ CSDL gởi chúng đến view, ứng dụng không cần phải có tầng model lớp liên quan Trong trường hợp này, liệu lấy đối tượng model (hơn tầng model) Views: thành phần dùng để hiển thị giao diện người dùng (UI) Thông thường, view tạo dựa vào thông tin liệu model Ví dụ như, view dùng để cập nhật bảng Products hiển thị hộp văn bản, drop-down list, check box dựa trạng thái đối tượng Product Controllers: Controller thành phần dùng để quản lý tương tác người dùng, làm việc với model chọn view để hiển thị giao diện người dùng Trong ứng dụng MVC, view dùng để hiển thị thông tin, controller chịu trách nhiệm quản lý đáp trả nội dung người dùng nhập tương tác với người dùng Ví dụ, controller quản lý liệu người dùng gởi lên (query-string values) gởi giá trị đến model, model lấy liệu từ CSDL nhờ vào giá trị Mẫu MVC giúp bạn tạo ứng dụng mà chúng phân tách rạch rịi khía cạnh ứng dụng (logic nhập liệu, logic xử lý tác vụ logic giao diện) Mẫu MVC loại logic kể nên thiếp lập đâu ứng dụng Logic giao diện (UI logic) thuộc views Logic nhập liệu (input logic) thuộc controller Và logic tác vụ (Business logic – logic xử lý thơng tin, mục đích ứng dụng) thuộc model Sự phân chia giúp bạn giảm bớt phức tạp ứng dụng tập trung vào khía cạnh cần cài đặt thời điểm Ví dụ bạn cần tập trung vào giao diện (views) mà quan tâm đến logic xử lý thông tin ứng dụng Để quản lý phức tạp ứng dụng, mẫu MVC giúp cho kiểm thử ứng dụng dễ dàng hẳn so với áp dụng mẫu Web Forms Ví dụ, ứng dụng ASP.NET Web Forms, lớp thường sử dụng để hiển thị thông tin xuất cho người dùng đồng thời xử lý thông tin người dùng nhập Việc xây dựng test tự động cho ứng dụng Web Forms phức tạp, để kiểm thử trang web, bạn phải khởi tạo đối tượng trang, khởi tạo tất control sử dụng trang lớp phụ thuộc ứng dụng Và có q nhiều lớp cần khởi tạo để chạy trang, thật khó để viết test tập trung vào khía cạnh ứng dụng Và thế, kiểm thử ứng dụng dứa tảng Web Forms khó khăn nhiều so với áp dụng ứng dụng MVC Hơn nữa, việc kiểm thử tảng Web Forms yêu cầu phải sử dụng đến web server Nền tảng MVC phân tách thành phần sử dụng interface (khái niệm giao diện lập trình hướng đối tượng), nhờ kiểm thử thành phần riêng biệt tình trạng phân lập với yếu tố lại ứng dụng Sự phân tách rạch ròi ba thành phần ứng dụng MVC giúp cho việc lập trình diễn song song Ví dụ lập trình viên làm việc với view, lập trình viên thứ hai lo cài đặt logic controller lập trình viên thứ ba tập trung vào logic tác vụ model thời điểm Hình 2: Mơ hình MVC Lấy ví dụ GUI Component (thành phần đồ họa người dùng ) đơn giản checkbox Checkbox có thành phần Model để quản lý trạng thái check hay uncheck, thành phần View để thể với trạng thái tương ưng lên hình, thành phần Controller để xử lý kiện có tương tác người sử dụng đối tượng khác lên checkbox Khi sử dụng nhần chuột vào Check box , thành phần Controller Checkbox xử lý kiện này, yêu cầu thành phần Model thay đổi liệu trạng thái Sau thay đổi trạng thái, thành phần Model phát thông điệp đến thành phần View Controller Thành phần View Checkbox nhận thông điệp cập nhật lại thể Checkbox, phản ánh sác trạng thái Checkbox Model lưu giữ Thành phần Controller nhận thông điệp Model gởi tới có tương tác phản hịi với người sử dụng cần thiết Tiềm hiểu thêm Controler Controller có trách nhiệm điều hướng yêu cầu người sử dụng Như toàn ứng dụng ta, tất request phải tới controller Và đây, ứng với tham số người sử dụng truyền mà ta đưa họ đến tác vụ ứng dụng Tại tác vụ này, chúng thông qua lớp model để làm việc trả kết trở controller Cuối controller đẩy liệu thao tác tới view View thành phần cuối mà người sử dụng nhận họ giở request tới ứng dụng Có thể hiểu controller, giống với kỹ thuật đa cấp với tác vụ chạy ứng dụng phân cấp theo nhánh riêng biệt như: Module, action,… Qua hình vẽ này, ta hiểu Để thao tác với action (hành động) ta cần phải qua file index.php Lúc file index đóng vai trị controller dùng để điều hướng request Ứng với request trả controller khác để xử lý tác vụ cách cụ thể Tại controller con, gọi action riêng biệt Ở đó, thơng qua action mà gọi tới file xử lý giản đơn Tìm hiểu Model Model thành phần chủ yếu sử dụng để thao tác xử lý liệu Trong framework, Model thường sử dụng theo phương thức Active Record Một design pattern Chúng có tác dụng rút ngắn thời gian viết câu truy vấn cho người sử dụng Biến câu truy vấn phức tạp trở nên gần gũi thân thiện với người sử dụng thông qua thư viện định nghĩa sẵn Model thường phương thức có trách nhiệm xử lý tác vụ như: select, insert, update, delete record database Ứng với lấy liệu, model thường sử dụng mảng để gởi trả kết Vì mảng cho phép model lưu trữ nhiều thông tin hơn, nên thường record bóc tách chúng mang liệu database cách chi tiết Khi sử dụng models, ta cần tuân theo nguyên tắc chúng khơng xuất giá trị trực tiếp model Mà tất liệu ấy, phải đưa vào mảng trả theo phương thức Và tiếp tục view ta sử dụng để lấy liệu Tìm hiều View View phần hiển thị thông tin tương phản gởi nhận request Trước đây, người lập trình chưa nghĩ tới view Họ thường thao tác xử lý liệu trực tiếp ứng dụng đổ liệu file PHP Điều làm cho ứng dụng trở nên cồng kềnh, đặc biệt khó cho việc bảo trì nâng cấp sau Nhất designer, việc thay đổi giao diện website làm cho họ cảm thấy đau đầu phải vọc thẳng vào core Trước đây, để giải tình Người ta thường sử dụng template để phân tách website thành mảng riêng biệt Một giao diện core Việc chỉnh sửa giao diện trở nên đơn giản họ so với cách viết thập cẩm Tuy nhiên, thư viện thực chất làm cho ứng dụng trở nên chậm chạp hết Bởi chúng phải phiên dịch nhiều lần kịch Chẳng hạn: Để dễ thao tác, smarty dịch ngược yêu cầu bạn sang ngôn ngữ Sau chúng chuyển ngơn ngữ sang PHP thao tác xử lý Việc làm ứng dụng chậm chạp, phải dịch qua, dịch lại kịch Trong khi, với kết hợp PHP thuần, ứng dụng bạn nhanh ổn định nhiều Và view phần việc nâng cấp hạn chế Chúng giúp giảm thiểu tối đa trình biên dịch nhiều lần Và làm cho ứng dụng trở nên mạnh mẽ chuyên nghiệp nhiều so với cách lập trình 2.1.2 Lý chọn Asp.NET MVC • Các tính Asp.NET MVC: - Tách bạch tác vụ ứng dụng (logic nhập liệu, business logic, logic giao diện), dễ dàng kiểm thử mặc định áp dụng hướng phát triển TDD Tất tính mơ hình MVC cài đặt dựa interface kiểm thử cách sử dụng đối tượng mocks, mock object đối tượng mơ tính đối tượng thực ứng dụng Bạn kiểm thử unit-test cho ứng dụng mà không cần chạy controller tiến trình ASP.NET, điều giúp unit test áp dụng nhanh chóng tiện dụng Bạn sử dụng tảng unit-testing tương thích với tảng NET - MVC tảng khả mở rộng (extensible) & khả nhúng (pluggable) Các thành phần ASP.NET MVC thiết kể để chúng thay cách dễ dàng dễ dàng tùy chỉnh Bạn nhúng thêm view engine, chế định tuyến cho URL, cách kết xuất tham số action-method thành phần khác ASP.NET MVC hỗ trợ việc sử dụng Dependency Injection (DI) Inversion of Control (IoC) DI cho phép bạn gắn đối tượng vào lớp cho lớp sử dụng thay buộc lớp phải tự khởi tạo đối tượng IoC quy định rằng, đối tượng yêu cầu đối tượng khác, đối tượng đầu lấy đối tượng thứ hai từ nguồn bên ngoài, ví dụ từ tập tin cấu hình Và nhờ vậy, việc sử dụng DI IoC giúp kiểm thử dễ dàng - ASP.NET MVC có thành phần ánh xạ URL mạnh mẽ cho phép bạn xây dựng ứng dụng có địa URL xúc tích dễ tìm kiếm Các địa URL khơng cần phải có phần mở rộng tên tập tin thiết kế để hỗ trợ mẫu định dạng tên phù hợp với việc tối ưu hóa tìm kiếm (URL) phù hợp với lập địa theo kiểu REST - Hỗ trợ sử dụng đặc tả (các thẻ) trang ASP.NET (.aspx) điều khiển người dùng (.ascx) trang master page (.mater) Bạn dụng tình có sẵn ASP.NET dùng lồng trang master page sử dụng in-line expression (), sử dụng server controls ,mẫu, data -binding, địa phương hóa ( localization) - Hỗ trợ tính có sẵn ASP.NET chế xác thực người dùng, quản lý thành viên, quyền, output caching data caching, seession profile, quản lý tình trạng ứng dụng, hệ thống cấu hình… - ASP.NET MVC5 cịn bổ sung view engine Razor View Engine cho phép thiết lập view nhanh chóng, dễ dàng tốn công sức so với việc sử dụng Web Forms view engine 2.2 Tổng quan SQL SERVER 2.2.1 Hệ quản trị CSDL SQL Server Khái niệm hệ quản trị sở liệu SQL Server SQL Server hệ thống quản lý sở liệu RDBMS sử dụng Transact-SQL để trao đổi liệu Client computer SQL Server computer Một RDBMS bao gồm Databases, Database engine ứng dụng dùng để quản lý liệu phận khác RDBMS SQL Server tối ưu để chạy môi trường sở liệu lớn (Very Large Database Environment) lên đến Tera -Byte phục vụ lúc cho hàng ngàn 3.4.1 Mơ hình sở liệu Hình 4: Biểu đồ liệu quan hệ 3.6.2 Danh sách lớp đối tượng a Lớp Máy ST T Tên trường Kiểu liệu Ràng buộc Mơ tả ID_May Varchar(5) Khóa Mã máy TenMay Nvarchar(30) Tên máy TinhTrangMay Nvarchar(50) Tình trạng máy ID_gia Varchar(5) Mã đơn giá HoatDong Bit Tình trạng hoạt động Bảng 3-1: Danh sách thuộc tính lớp Máy b Lớp Dịch vụ ST T Tên trường Kiểu liệu Ràng buộc Mô tả ID_DV Varchar(5) Khóa Mã dịch vụ TenDV Nvarchar(30) Tên dịch vụ AnhSP Nvarchar(50) Ảnh sản phẩm GiaBan Money Giá bán Bảng 3-2: Danh sách thuộc tính lớp Dịch vụ c Lớp Đơn giá ST T Tên trường Kiểu liệu Ràng buộc Mô tả ID_gia Varchar(5) Khóa Mã giá máy GiaMay money Giá máy Bảng 3-3: Danh sách thuộc tính lớp Đơn giá d Lớp Thanh toán dịch vụ ST T Tên trường Kiểu liệu Ràng buộc Mô tả ID_TTDV Varchar(5) Khóa Mã tốn dịch vụ ID_ThanhVien Varchar(5) Mã thành viên sử dụng dịch vụ Bảng 3-4: Danh sách thuộc tính lớp Thanh tốn dịch vụ e Lớp Chi tiết dịch vụ ST T Tên trường Kiểu liệu Ràng buộc Mơ tả ID_TTDV Varchar(5) Khóa Mã chi tiết thơng tin dịch vụ ID_DV Varchar(5) Khóa Mã dịch vụ Soluong Int Số lượng Gia Money Giá Bảng 3-5: Danh sách thuộc tính lớp Chi tiết dịch vụ f Lớp Thành viên ST T Tên trường Kiểu liệu Ràng buộc Mơ tả ID_ThanhVien Varchar(5) Khóa Mã thành viên TenThanhVien Nvarchar(30) Tên thành viên TenDN Nvarchar(20) Tên đăng nhập Matkhau Varchar(20) Mật SoTien Money Số tiền có thành viên Bảng 3-6: Danh sách thuộc tính lớp Thành viên g Lớp Hóa Đơn ST T Tên trường Kiểu liệu Ràng buộc Mơ tả ID_HoaDon Varchar(10) Khóa Mã hóa đơn ID_ThanhVien Varchar(5) Mã thành viên ID_TTDV Varchar(5) Mã thông tin dịch vụ ID_May Varchar(5) Mã máy ThoiGianMo Datetime Thời gian mở máy ThoiGianTat Datetime Thời gian tắt máy TongTien Money Tổng tiền TinhTrangHD Nvarchar(50) Tình trạng hóa đơn Bảng 3-7: Danh sách thuộc tính lớp Hóa đơn 3.5 Thiết kế đặc tả giao diện Giao diện trang đăng nhập Hình 5: Giao diện trang đăng nhập - Mục đích: để thực việc đăng nhập quản trị quản lí chức thành viên có chức thành viên - Khi đăng nhập thành công:  Đối với quản trị: Tên Admin thị góc trái trang ngược lại đăng nhập sai hệ thống yêu cầu nhập lại  Đối với thành viên: Nếu thành viên hiển thị tên đăng kí thành viên - Khi hồn tất q trình đăng nhập:  Đối với quản trị: Thì hệ thống truy cập trực tiếp vào trang quản trị  Đối với thành viên: Thì hệ thống trở lại trang chủ bạn tìm kiếm hay order dịch vụ 3.5.1 Giao diện thành viên 3.5.1.1 Giao diện trang chủ thành viên Hình 6: Giao diện trang chủ thành viên - Chỉ hiển thị giới thiệu quán net 3.5.1.2 Giao diện tài khoản Hình 7: Giao diện trang tài khoản - Mục đích: thơng tin thời gian chơi, số tiền cịn tài khoản 3.5.1.3 Giao diện trang danh mục dịch vụ Hình 8: Giao diện trang danh mục sản phẩm - Mục đích: thị danh sách dịch vụ của quán net - Khách hàng muốn đặt dịch vụ quản trị order thêm nội dung dịch vụ vào hóa đơn 3.5.1.4 Giao diện trang tin nhắn Hình9: Giao diện trang tin nhắn - Mục đích: để việc giao tiếp với khách hàng dễ dàng hơn, vd: khách muốn gọi dịch vụ việc nhắn tin quản trị theo mà order cho khách 3.6.1.5 Giao diện trang giỏ hàng Hình 10: Giao diện trang giỏ hàng - Mục đích: lưu thơng tin, thị thơng tin dịch vụ chọn mua - Khi chọn thêm dịch vụ hệ thống chuyển đến trang giỏ hàng thông tin dịch vụ mà khách hàng mua giỏ hàng 3.5.2 Giao diện trang Admin 3.5.2.1 Giao diện trang quản trị Hình 11: Giao diện trang quản trị - Mục đích: hiển thị chức hệ thống : quản lý máy, quản lý dịch vụ, quản lý thành viên, quản lý đơn giá 3.5.2.2 Giao diện trang quản lý thành viên Hình 12: Giao diện trang quản lý thành viên - Mục đích: thực nhập, sửa, xóa thơng tin thành viên - Ràng buộc: đăng nhập quyền quản trị - Mơ tả: • Nhập đầy đủ thơng tin nhấn nút “Thêm” để lưu thơng tin thành viên đăng kí • Sửa, xóa: chọn thành viên nhấn nút “Sửa” “Xóa” để sửa xóa thơng tin thành viên 3.5.2.3 Giao diện trang danh sách máy Hình 13: Giao diện trang danh sách máy - Mục đích: thực nhập, sửa, xóa thơng tin máy - Ràng buộc: đăng nhập quyền người quản trị 3.5.2.4 Giao diện trang danh sách đơn giá máy Hình 14: Giao diện trang danh sách quản lý đơn giá máy - Mục đích: thực nhập, sửa, xóa thơng tin đơn giá có thay đổi - Ràng buộc: đăng nhập quyền người quản trị - Mô tả:  Thực nhập đơn giá bạn nhập mã đơn giá, giá máy, sau nhấn nút “Thêm” hệ thống cập nhật thông tin mà bạn vừa nhập vào hệ thống  Thực sửa, xóa đơn giá bạn chọn thơng tin muốn sửa, xóa sau thơng tin lên cho bạn thực Khi hoàn tất nhấn nút “Xác nhận chỉnh sửa”, “Xác nhận xóa” 3.5.2.5 Giao diện trang quản lý dịch vụ Hình 15: Giao diện trang quản lý dịch vụ Hình 16: Giao diện trang tìm kiếm dịch vụ Hình 17: Giao diện trang thêm dịch vụ Hình 18: Giao diện trang sửa dịch vụ Hình 19: Giao diện trang xóa dịch vụ - Mục đích: thực việc thêm, sửa, xóa tìm kiếm dịch vụ - Ràng buộc: đăng nhập quyền người quản trị - Mô tả:  Thêm: Thực nhập dịch vụ bạn nhập mã dịch vụ, tên dịch vụ, giá, sau nhấn nút “thêm” hệ thống cập nhật thông tin mà bạn vừa nhập vào hệ thống  Sửa: Sửa thông tin dịch vụ  Xóa: Xóa dịch vụ 3.5.2.6 Giao diện trang tốn Hình 20: Giao diện trang tốn - Mục đích: thực tốn cho khách - Ràng buộc: đăng nhập quyền người quản trị CHƯƠNG 4: KẾT LUẬN 4.1 Kết đạt đề tài - Xây dựng website Quản lý quán net - Giao diện đẹp, màu sắc hài hịa, dễ nhìn, dễ sử dụng - Xây dựng chức cần thiết cho hệ thống: thêm, sửa, xóa thơng tin 4.2 Hạn chế đề tài - 4.3 Một số chức chưa tối ưu, thực Kết luận Trong trình nguyên cứu vận dụng kiến thức học Chúng em hoàn thành phần mềm “Quản lý quán net” nhằm mục đích hoạt động kinh doanh ôn lại kiến thức học Chúng em hy vọng sau hoạt động nhóm tiền đề để chúng em phát triển mạnh kiến thức chất lượng phần mềm Trong q trình hồn thành phần mềm với kinh nghiệm thực tế chưa nhiều nên báo cáo khơng tránh khỏi sai sót, mong góp ý thầy Chúng em xin chân thành cảm ơn TÀI LIỆU THAM KHẢO - Phạm Hữu Khang, Lập trình ASP.Net MVC Hà Nội, Việt Nam: Nhà xuất Lao Động Xã Hội, 2005 - Bùi Chí Thành , Giáo trình Phát triển ứng dụng web - Đồn Thiện Ngân, Phạm Hữu Khang, Lập trình ASP.NET MVC , Nhà xuất lao động xã hội, 2004 - Phạm Hữu Khanh, Microsoft SQL Server 2008 - Quản Trị Cơ Sở Dữ Liệu, NXB Lao động Xã hội,2004 ... logic xử lý thông tin ứng dụng Để quản lý phức tạp ứng dụng, mẫu MVC giúp cho kiểm thử ứng dụng dễ dàng hẳn so với áp dụng mẫu Web Forms Ví dụ, ứng dụng ASP.NET Web Forms, lớp thường sử dụng để... diện trang quản trị Hình 11: Giao diện trang quản trị - Mục đích: hiển thị chức hệ thống : quản lý máy, quản lý dịch vụ, quản lý thành viên, quản lý đơn giá 3.5.2.2 Giao diện trang quản lý thành... thuộc ứng dụng Và có q nhiều lớp cần khởi tạo để chạy trang, thật khó để viết test tập trung vào khía cạnh ứng dụng Và thế, kiểm thử ứng dụng dứa tảng Web Forms khó khăn nhiều so với áp dụng ứng dụng

Ngày đăng: 29/12/2022, 17:33

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan