Bài tập lớn Android, bán hàng Online

44 73 1
Bài tập lớn Android, bán hàng Online

Đ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

MUA SOURCE CODE INBOX: https:www.facebook.comWigk.nam.n98 Danh mục hình ảnh Hình 2.1 Mô hình tổng quan các thành phần của hệ điều hành Android 8 Hình 2.2 Vòng đời một Activity 10 Hình 2.3 Truy cập php từ Cpanel 13 Hình 2.4 Đăng nhập với tài khoản Cpanel 13 Hình 2.5 Giao diện khi đăng nhập thành công 14 Hình 2.6 Cách tạo databse trong phpMyadmin 15 Hình 2.7 Cách tạo bảng mới trong phpMyadmin 15 Hình 2.8 Điền thông tin dữ liệu vào các trường 16 Hình 2.9 Thực hiện truy vấn trong phpMyadmin 17 Hình 2.10 Cách sao lưu dữ liệu trong phpMyadmin 17 Hình 2.11 Cách phục hồi dữ liệu trong phpMyadmin 18 Hình 3.1 Giao diện người mua hàng 20 Hình 3.2 Giao diện của nhân viên cửa hàng 21 Hình 3.3 Giao diện của quản lý cửa hàng 22 Hình 3.4 Thông tin khách hàng khi đặt hàng 23 Hình 3.5 Màn hình mở đầu 33 Hình 3.6 Màn hình trang chủ 34 Hình 3.7 Màn hình chi tiết sản phẩm 37 Hình 3.8 Màn hình giỏ hàng. 39 Hình 3.9 Màn hình thông tin khách hàng khi thanh toán. 40 Danh mục bảng biểu Bảng 3.1 Bảng danh mục sản phẩm 25 Bảng 3.2 Bảng loại sản phẩm 25 Bảng 3.3 Bảng sản phẩm 26 Bảng 3.4 Bảng thông tin khách hàng 26 Bảng 3.5 Bảng chi tiết đơn hàng 26 Bảng 3.6 Bảng quảng cáo 27 Bảng 3.7 Bảng dữ liệu sản phẩm trên phpMyadmin 27 Bảng 3.8 Bảng dữ liệu loại sản phẩm trên phpMyadmin 28 Bảng 3.9 Bảng dữ liệu sản phẩm trên phpMyadmin 28 Bảng 3.10 Bảng dữ liệu khách hàng trên phpMyadmin 29 Bảng 3.11 Bảng dữ liệu chi tiết đơn hàng trên phpMyadmin 30 Bảng 3.12 Bảng dữ liệu quảng cáo trên phpMyadmin 30 Bảng 3.13 Đối tượng danh mục sản phẩm 31 Bảng 3.14 Đối tượng sản phẩm 31 Bảng 3.15 Đối tượng hình ảnh 32 Bảng 3.16 Đối tượng cho đơn hàng 32 MỞ ĐẦU Trong những năm gần đây cùng với sự phát triển của nền kinh tế kinh doanh trực tuyến đã và đang trở thành xu hướng, và là một thị trường lớn và đầy tiềm năng đối với việc kinh doanh hiện nay. . Chính vì lí do đó mà hiện nay nhiều người đổ xô vào kinh doanh đặc biệt là giới trẻ nhằm kiếm thêm thu nhập, tăng năng suất và doanh thu bán hàng. Tuy nhiên trong những năm gần đây khi kinh tế bước vào giai đoạn khó khăn và sự thăm nhập của các ông chủ nước ngoài vào thị trường Việt Nam khiến cho sự cạnh tranh đó ngày càng gay gắt hơn bao giờ hết. Bài toán kinh doanh online từ đó đã trở thành nỗi băn khoăn lớn đối với các nhà kinh doanh. Bên cạnh đó, Covid19 xảy ra làm thay đổi xu hướng tiêu dùng và là một cái cớ vô cùng hợp lý để môi trường mua sắm online bùng nổ. Phần thắng sẽ thuộc về doanh nghiệp biết thay đổi nhanh chóng và nắm bắt cơ hội nhanh nhất. Xuất phát từ quá trình thực tế và nhu cầu của thị trường hiện nay dựa trên cơ sở kiến thức em đã được học tại nhà trường em đã quyết định chọn đề tài “Thiết kế ứng dụng quản lý cửa hàng trên hệ điều hành Android” trên nền tảng Andoid. Em xin gửi lời cảm ơn chân thành tới cô Vũ Thị Hoàng Yến đã quan tâm giúp đỡ, hướng dẫn em hoàn thành tốt đồ án này trong suốt thời gian qua. Em đã thực hiện và hoàn thiện đề tài của mình với nội dung tóm tắt như sau: Trong đó đề tài gồm các phần chính: Chương 1:Tổng quan về đề tài Chương 2: Cơ sở lý thuyết Chương 3:Thiết kế ứng dụng Với điều kiện thời gian cũng như kinh nghiệm còn hạn chế của một sinh viên, đồ án này không thể tránh khỏi những thiếu sót. Em rất mong nhận được sự chỉ bảo, đóng góp ý kiến của thầy cô để em có thể bổ sung, phục vụ tốt cho công việc thực tế sau này. Em xin chân thành càm ơn Hà Nội, Ngày Tháng Năm 2021 Sinh viên thực hiện : Hoàng Công Vũ CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI 1.1. Lý do chọn đề tài Trước đây người mua hàng online chủ yếu chọn các mặt hàng thời trang hay điện máy, nhưng những đơn hàng online hiện nay có cả những sản phẩm thiết yếu. Nắm bắt tâm lý này, các trang TMĐT bày bán các sản phẩm tưởng chừng chỉ có thể mua ở kênh truyền thống như nước mắm, muối, đường, dầu ăn, mì gói... Shopee Việt Nam đã bổ sung nhiều mặt hàng thiết yếu như gạo, thực phẩm khô, thực phẩm chế biến hộp giúp người dùng dễ dàng tiếp cận và mua sắm hàng hóa thiết yếu tại nhà, giảm thiểu việc tiếp xúc nơi đông người. Dịch COVID19 đang làm người tiêu dùng thay đổi thói quen mua sắm, việc hạn chế đi đến chỗ đông người đã đem lại cơ hội lớn cho kênh mua sắm online, đặt hàng từ nhà. Nhiều người tiêu dùng chọn mua sắm online để hạn chế số lần phải đến các cửa hàng mua sắm trực tiếp, giảm nguy cơ lây nhiễm dịch bệnh. Theo tờ báo Công thương – cơ quan ngôn luận của bộ công thương, tìm hiểu về thị trường trong nước thì mua sắm online đang tiếp tục lên ngôi hậu dịch COVID19. Giỏ hàng “mùa dịch” được nạp đầy với ba nhóm chính: thực phẩm cần thiếttiện lợi, các sản phẩm vệ sinh và sản phẩm giúp tăng cường sức khỏe. Ngoài ra, với chiến dịch stayhome, những mặt hàng liên quan đến nhu cầu kết nối, các nhu cầu xã hội như đồ ăn vặt, các sản phẩm giúp đơn giản hóa việc nấu ăn, sản phẩm chăn sóc cá nhân cũng cho thấy sự tăng trưởng tích cực. Người tiêu dùng cũng chi tiêu cho các mặt hàng thuộc về thói quen như: kẹo, cà phê…. đặc biệt là người dân thành thị. Các mô hình bán lẻ mới nổi bao gồm siêu thị mini, cửa hàng tiện lợi và mua sắm trực tuyến đóng vai trò quan trọng trong tăng trưởng của nhóm hàng tiêu dùng nhanh. Trong đó, mua sắm trực tuyến được đánh giá cao ở tính tiện lợi và “hạn chế tiếp xúc”, siêu thị mini được chọn vị trí gần nhà cho các nhu cầu cơ bản trong một khoảng thời gian ngắn. Đối với các kênh siêu thị và đại siêu thị, số giao dịch tăng lên đáng kể trước khi lệnh giãn cách và được dự đoán sẽ còn tiếp diễn và dần về lại mức bình thường khi nhu cầu tích trữ hàng giảm. Ngày nay, lý do người tiêu dùng chọn mua sắm trực tuyến gồm: Sự thuận tiện; hàng hóa phong phúc đa dạng, dễ lựa chọn; nhiều ưu đãi, khuyến mại. Tuy nhiên, kèm theo đó là những lo ngại như: Sản phẩm chất lượng kém; vấn nạn hàng giả, hàng nhái; dịch vụ giao hàng, bảo hành kém. 1.2. Mục tiêu của đề tài Ứng dụng quản lý cửa hàng quần áo chạy trên nền Android được thực hiện dựa trên mục đích sau: Đảm bảo tiêu chí về quy định trong mùa dịch COVID19. Góp phần vào công cuộc chuyển đổi số của quốc gia. Kích cầu nhu cầu mua sắm của người tiêu dùng. Người tiêu dùng có thể xem hàng và lựa chọn mà không cần đến cửa hàng. Với những cửa hàng buôn bán nhỏ lẻ, có thể giảm thiểu được chi phí thuê mặt bằng. 1.3. Mô tả sản phẩm Đề tài “Thiết kế ứng dụng quản lý cửa hàng quần áo trên hệ điều hành Android” là một ứng dụng chạy trên điện thoại sử dụng hệ điều hành Android. Nắm được kiến thức về các thành phần trong Android. Ứng dụng gồm: Phần mềm mua sắm dành cho người tiêu dùng. Những chức năng chính mà em dự định phát triển ở phiên bản đầu tiên của ứng dụng này: Đề tài xây dựng ứng dụng quản lý cửa hàng bán quần áo trên nền tảng Android. Khách hàng tải ứng dụng về điện thoại có sử dụng hệ điều hành Android 4.0 trờ lên. Khách hàng chạy ứng dụng có thể xem danh sách các sản phẩm của cửa hàng đã cập nhật trong cơ sở dữ liệu. Khách hàng có thể chọn sản phẩm và đăng ký thông tin để mua, dữ liệu này sẽ được đưa lên server và nhân viên có thể dựa vào đó liên lạc với khách hàng, Ngoài ra, sẽ xây dựng một phần mềm quản lý dành cho nhà hàng để xử lý các thông tin mà khách hàng gửi về từ ứng dụng Android, xử lý các yêu cầu của khách hàng. Quản lý danh mục các sản phẩm như cập nhật, sửa, xóa. 1.4. Phương pháp triển khai Xây dựng ứng dụng bao gồm ứng dụng chạy trên điện thoại và một phần mềm đọc dữ liệu từ ứng dụng, cung cấp cho ứng dụng các dữ liệu cần thiết. Trong đề tài tốt nghiệp lần này, em quyết định thực hiện các phần từ triển khai một ứng dụng hoàn chỉnh theo các bước sau: Khảo sát lấy ý kiến từ các chủ cửa hàng ở khu vực, người tiêu dùng. Nghiên cứu công nghệ phát triển ứng dụng chạy trên hệ điều hành Android. Cài đặt máy chủ làm nơi truy xuất dữ liệu. Tạo dữ liệu trên máy chủ. Sau khi hoàn thành phần cài đặt và tạo dữ liệu trên máy chủ, sẽ triển khai truy xuất dữ liệu từ máy chủ để sử dụng viết ứng dụng trên hệ điều hành Android. Sau đây là danh sách các công nghệ được sử dụng để xây dựng ứng dụng: Android SDK. Java. Php. Server Localhost. phpMyAdmin. 1.5. Phạm vi đề tài Ứng dụng được xây dựng và phát triển nhằm kích cầu tiêu dùng của người dân nhất là trong mùa dịch COVID, tiết kiệm chi phí phát sinh cho người tiêu dùng cũng như giúp chủ cửa hàng có thể quản lý từ xa tốt hơn, ... . Vì vậy ứng dụng phù hợp với mọi đối tượng tiêu dùng sử dụng điện thoại thông minh chạy trên hệ điều hành Android. CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.1. Lý thuyết về Android Android là một hệ điều hành có dạng mã nguồn mở, hoạt động dựa trên nền tảng Linux và được thiết kế dành riêng cho những thiết bị di động cảm ứng hoặc máy tính bảng. Trước đây, hệ điều hành này được phát triển bởi tổng công ty Android và được tài trợ bởi Google. Cho đến năm 2005 thì Google đã mua lại hệ điều hành này và cho ra mắt người dùng vào năm 2007. Ban đầu, Android là hệ điều hành cho các thiết bị cầm tay dựa trên lõi Linux do công ty Android Inc. (California, Mỹ) thiết kế. Công ty này sau đó được Google mua lại vào năm 2005 và bắt đầu xây dựng Android Platform. Và sau tiếp, vào cuối năm 2007, thuộc về Liên minh thiết bị cầm tay mã nguồn mở (Open Handset Alliance). Mục tiêu của liên minh này là nhanh chóng đổi mới để đáp ứng tốt hơn cho nhu cầu người tiêu dùng và kết quả đầu tiên chính là nền tảng Android. Android được thiết kế để phục vụ nhu cầu của các nhà sản xuất thiết, các nhà khai thác và các lập trình viên thiết bị cầm tay. Khi Android được phát hành thì một trong số các mục tiêu trong kiến trúc là cho phép các ứng dụng có thể tương tác được với nhau và có thể sử dụng lại các thành phần từ những ứng dụng khác. Việc tái sử dụng không chỉ được áp dụng cho cho các dịch vụ mà còn được áp dụng cho cả các thành phần dữ liệu và giao diện người dùng. Vào cuối năm 2008, Google cho phát hành một thiết bị cầm tay được gọi là Android Dev Phone 1 có thể chạy được các ứng dụng Android mà không bị ràng buộc vào các nhà cung cấp mạng điện thoại di động. Mục tiêu của thiết bị này là cho phép các nhà phát triển thực hiện các cuộc thí nghiệm trên một thiết bị thực có thể chạy hệ điều hành Android mà không phải ký một bản hợp đồng nào. Vào khoảng cùng thời gian đó thì Google cũng cho phát hành một phiên vản vá lỗi 1.1 của hệ điều hành này. Ở cả hai phiên bản 1.0 và 1.1 Android chưa hỗ trợ softkeyboard mà đòi hỏi các thiết bị phải sử dụng bàn phím vật lý. Android cố định vấn đề này bằng cách phát hành SDK 1.5 vào tháng Tư năm 2009, cùng với một số tính năng khác. Chẳng hạn như nâng cao khả năng ghi âm truyền thông, vật dụng, và các live folder. “Understanding Android” là cách mà người dùng tiếp cận lập trình Android và thấu hiểu kiến trúc hệ thống . Người dùng có thể không cần hiểu rõ cấu trúc của một hệ điều hành nhưng có thể lập trình một ứng dụng trên hệ điều hành đó, đây là điều mà nhà sản xuất muốn khi release SDK với một framework có sẵn của họ. Framework là một tầm cao cấp dành cho lập trình viên, đều có giới hạn người dùng thể chỉ có thể lập trình những ứng dụng phổ biến nhưng không nên tiến tới những ứng dụng cao cấp đi sâu vào hệ thống của hệ điều hành. Hình 2.1 Mô hình tổng quan các thành phần của hệ điều hành Android Linux Kernel: Đây là một loại nhân xử lý, có khả năng cung cấp độ trừu tượng cho các phần ứng. Libraries: Hầu hết, các thư viện nằm trên lớp nhân Linux và các thư viện này đều dựa vào Java để có thể phục vụ cho Android. Android Runtime: Có khả năng cung cấp cho 1 bộ phận quan trọng nhất là Dalvik Virtual Machine ( là một loại Java Virtual Machine) được các chuyên gia thiết kế đặc biệt với mục đích tối ưu cho Android. Application Framework: cung cấp các dịch vụ cao hơn cho những ứng dụng dưới dạng lớp Java. Từ đó, các Developer sẽ có quyền can thiệp vào từ lớp Android Framework này. Application: Đây là nơi các lập trình viên thường xuyên làm việc cùng để có thể triển khai cho ứng dụng. . 2.2. Các thành phần cơ bản của ứng dụng Android Activity:Có thể nói đây là thành phần quan trọng của bất kỳ ứng dụng Android nào. Activity đảm nhiệm công việc tạo ra một cửa sổ (Window) để người lập trình đặt lên đó một giao diện thông qua phương thức setContentView(View), phương thức này được gọi trong phương thức Override onCreate() của class được extends từ Activity. Hình 2.2 Vòng đời một Activity onCreate(Bundle savedInstanceState): Được gọi khi hoạt động mới được tạo, tại đây khởi tạo các biến, nạp giao diện layout ..., phương thức này cũng nhận dữ liệu lưu lại trạng thái hoạt động trước đó (với mục đích để phục hồi savedInstanceState). Sau sự kiện này bao giờ cũng gọi ngay lập tức onStart(). onStart(): Được gọi ngay trước khi Activity hiển thị trên màn hình. onResume(): Được gọi ngay khi Activity bắt đầu có thể tương tác với người dùng, và Activity nằm trên cùng trong danh sách các Activity của hệ thống. Sau phương thức này là các chức năng của Activity hoạt động dựa trên tương tác của người dùng ... , cho đến khi có một nguyên nhân nào đó mà phương thức OnPause được gọi. onPause(): Được gọi khi hệ thống sắp kích hoạt một Activity khác, nếu quá tải phương thức này, thường để lưu lại dự liệu thật nhanh để hệ thống còn kích hoạt Activity khác. Ngay sau phương thức này sẽ gọi onResume() nếu Activity được kích hoạt lại ngay, hoặc gọi OnStop() nếu Activity bị ẩn đi. onStop(): Được gọi khi bị ẩn đi. Sau phương thức này, Activity có thể gọi onRestart() nếu được người dùng kích hoạt lại hoặc gọi onDestroy() để hết thúc. onDestroy(): gọi khi Activity bị hủy hoàn toàn (ví dụ gọi finish(), hoặc người dùng kill Activity). Service:Là thành phần luôn chạy ẩn trong hệ thống Android mà người dùng không thể thấy được. Service dùng để cập nhật dữ liệu, đưa ra các cảnh báo cần thiết, ... ví dụ đơn giản khi mở trình duyệt web thì giao diện hiện tại là trình duyệt còn giao diện nhạc biến mất nhưng bài đó vẫn được chạy là nhờ có service. Content Provider: là cơ chế cho phép chia sẻ dữ liệu giữa các ứng dụng với nhau. Bất kỳ ứng dụng nào đều có thể cung cấp cho ứng dụng khác khả năng truy cập dữ liệu thông qua Content Provider với các chức năng thêm, bớt, truy vấn dữ liệu. Việc truy cập này được cung cấp thông qua URI định nghĩa và cung cấp bởi Content Provicder Dữ liệu chia sẻ ở dạng một file hoặc CSDL SQLite. Các ứng dụng gốc Android cung cấp sẵn nhiều Content Provider cho phép ứng dụng truy cập dữ liệu như trình danh bạ, quản lý file media. Hiện nay Content Provider tồn tại trong hệ thống Android với Content Resolver. Intent:Được sử dụng để truyền các thông báo nhằm khởi tạo một Activity hoặc Service để thực hiện công việc mong muốn. Broadcase Receiver: Đây là cơ chế để ứng dụng phản ứng lại với các Broadcast Intent, cần được đăng ký bởi ứng dụng và cấu hình với Intent Filter để biết được loại Intent nào muốn nhận. Nếu Intent Broadcast từ đâu đó trong hệ thống phát ra, phù hợp với loại ứng dụng đăng ký thì sẽ nhận được khi chạy. Khi nhận được thì Receiver có 5 giây để hoàn thành tác vụ (như tạo notification chẳng hạn). Broadcast Receiver thi hành ở background (nền) và không có giao diện người dùng. Notification: Đưa ra các thông báo khi ứng dụng android đang được thự thi và không làm ảnh hưởng đến ứng dụng thực thi. 2.3. Hệ quản trị cơ sở dữ liệu phpMyAdmin 2.3.1. Một số tính năng chung của phpMyAdmin Đầu tiên, phpMyAdmin là phần mềm mã nguồn mở được viết bằng ngôn ngữ PHP giúp quản trị cở sở dữ liệu MySQL thông qua giao diện web. Tính đến nay, phpMyAdmin đã có đến hàng triệu lượt sử dụng và vẫn không ngừng tăng. Một số tính năng chung thường được sử dụng trên phpMyAdmin: Quản lý user(người dùng): thêm, xóa, sửa(phân quyền). Quản lý cơ sở dữ liệu: tạo mới, xóa, sửa, thêm bảng, hàng, trường, tìm kiếm đối tượng. Nhập xuất dữ liệu(ImportExport): hỗ trợ các định dạng SQL, XML và CSV. Thực hiện các truy vấn MySQL, giám sát quá trình và theo dõi. Sao lưu và khôi phục(BackupRestore): Thao tác thủ công. 2.3.2. Cách cài đặt và sử dụng phpMyAdmin Cách cài đặt: Hình 2.3 Truy cập php từ Cpanel Hiện nay, phpMyAdmin khá phổ biến và được cung cấp sẵn trong các gói khi đăng ký Hosting. Người dùng có thể mở phpMyAdmin từ Cpanel tại trang quản trị của nhà cung cấp đang sử dụng. Hình 2.4 Đăng nhập với tài khoản Cpanel Vì phpMyAdmin được sử dụng để thực hiện những thiết lập quan trọng liên quan đến cơ sở dữ liệu và người dùng. Người dùng sẽ cần đến tài khoản quản trị MySQL để đăng nhập hoặc sử dụng tài khoản Cpanel. Cách sử dụng: Hình 2.5 Giao diện khi đăng nhập thành công Truy cập vào phpMyAdmin: Đối với người sử dụng dịch vụ từ nhà cung cấp Hosting có thể truy cập phpMyAdmin thông qua Cpanel. Trường hợp sử dụng localhost bằng cách dùng các phần mềm như Xampp, Wampserver… đường dẫn truy cập sẽ có dạng: http:localhostphpmyadmin. Nhập thông tin đăng nhập cơ sở dữ liệu hoặc tài khoản Cpanel của người dùng. Nếu dùng localhost, thông thường sẽ được yêu cầu tạo tài khoản khi cài đặt phần mềm hoặc truy cập thẳng(các phiên bản mới). Quản lý cơ sở dữ liệu: Hình 2.6 Cách tạo databse trong phpMyadmin Chọn tab Databases để quản lý những cơ sở dữ liệu của người dùng, để tạo cơ sở dữ liệu mới hãy điền tên và chọn kiểu mã hóa(Collation) và nhấn Create. Kết quả sẽ xuất hiện một database mới trong cột bên trái nếu thao tác thành công. Quản lý bảng dữ liệu: Hình 2.7 Cách tạo bảng mới trong phpMyadmin Nhấp vào tên cơ sở dữ liệu vừa tạo thành công ở cột bên trái, tìm dòng Create Table điền tên và số trường của bảng muốn tạo, nhấn Go. Hình 2.8 Điền thông tin dữ liệu vào các trường Một bảng hiện ra cho phép nhập các thông tin trường như tên, kiểu, giá trị, thuộc tính… Sau khi hoàn tất các nội dung này có thể Save lại để có bảng mình cần. Thực hiện truy vấn: Hình 2.9 Thực hiện truy vấn trong phpMyadmin phpMyAdmin cho phép thực hiện các câu lệnh truy vấn SQL tại tab SQL. Chọn các bảng từ cột bên trái để xem câu lệnh SQL được thực hiện, để viết lệnh chọn cơ sở dữ liệu, chèn câu lệnh và nhấn Go. Sao lưu cơ sở dữ liệu: Hình 2.10 Cách sao lưu dữ liệu trong phpMyadmin Tính năng cho phép người dùng xuất toàn bộ cơ sở dữ liệu ra các cú pháp MySQL để có thể khôi phục khi cần. Chọn Database muốn sao lưu từ cột bên trái và vào tab Export. Chọn định dạng SQL và kiểu sao lưu là Quick. Phục hồi cơ sở dữ liệu: Hình 2.11 Cách phục hồi dữ liệu trong phpMyadmin Song song với sao lưu đó là chức năng phục hồi, đối với file sao lưu đã được tải ở bước trên tạo mới một cơ sở dữ liệu, chọn tên từ cột bên trái và truy cập tab Import, dùng thẻ Chọn tệp để tìm file sao lưu, chọn đúng kiểu file là SQL, nhấn Go. 2.3.3. Ưu và nhược điểm của phpMyAdmin Đầu tiên một số những ưu điểm lớn nhất của phpMyAdmin: Tăng hiệu quả công tác quản lý cơ sở dữ liệu: phpMyAdmin mang đến giao diện xử lý các thao tác trên cơ sở dữ liệu một cách trực quan. Từ đó, tiết kiệm thời gian, thao tác so với việc thực hiện bằng dòng lệnh trên command line. Là công cụ đa năng có thể vừa làm việc với một đối tượng vừa xử lý lỗi hoặc các tính huống bất ngờ. Cộng đồng hỗ trợ rộng lớn: phpMyAdmin có tính chất là một mã nguồn mở, được phát triển bởi rất nhiều lập trình viên trên toàn thế giới. Nhờ đó, người dùng sẽ nhận được sử hỗ trợ rất lớn từ cộng đồng. Đa ngôn ngữ: Được duy trì bởi The phpMyAdmin Project hiện có sẵn đến 64 ngôn ngữ khác nhau. Chi phí: Dù có nhiều ưu điểm và mang đến nhiều lợi ích vượt bậc, phpMyAdmin vẫn là công cụ hoàn toàn miễn phí. Nhược điểm của phpMyAdmin: Bảo mật: hạn chế lớn nhất của các mã nguồn mở chắc chắn là vấn đề bảo mật. Hạn chế truy cập vào URL của phpMyAdmin từ những địa chỉ IP cố định. Sao lưu: không thể tự xuất database, chỉ có thể kết nối thông qua trình duyệt tức chỉ lưu được các bản sao lưu vào các local drive có sẵn trên hệ thống, định dạng file xuất bằng phpMyAdmin không được mã hóa(thiếu an toàn) và chiếm dung lượng đĩa lớn. CHƯƠNG 3: THIẾT KẾ ỨNG DỤNG 3.1. Giao diện tài khoản của ứng dụng quản lý cửa hàng 3.1.1. Giao diện tài khoản người mua Cập nhật các mục sản phẩm hiện có trong cửa hàng. Cập nhật các chi tiết các sản phẩm phù hợp với tình hình hiện có. Theo dõi tình hình của đơn hàng đã đặt tại cửa hàng. Hình 3.1 Giao diện người mua hàng 3.1.2. Giao diện tài khoản của nhân viên bán hàng Cập nhật các mục sản phẩm hiện có trong cửa hàng. Cập nhật các chi tiết các sản phẩm phù hợp với tình hình hiện có. Quản lý danh sách khách hàng đã mua hàng. Xem danh sách đơn đặt hàng của các khách hàng đã đặt. Có thể liên lạc với quản lí của cửa hàng Hình 3.2 Giao diện của nhân viên cửa hàng 3.1.3. Giao diện tài khoản của người quản lý bên nhà hàng Cập nhật các mục sản phẩm hiện có trong cửa hàng. Cập nhật các chi tiết các sản phẩm phù hợp với tình hình hiện có. Quản lý danh sách khách hàng đã mua hàng,nhân viên cửa hàng. Xem danh sách đơn đặt hàng của các khách hàng đã đặt. Thông kê số liệu. Hình 3.3 Giao diện của quản lý cửa hàng 3.2. Đặc tả yêu cầu 3.2.1. Hiển thị danh mục sản phẩm Tác vụ này hiển thị cho khách hàng các danh mục sản phẩm hiện có trong cửa hàng. Dựa vào luồng dữ liệu đầu vào là mã sản phẩm, người dùng sẽ vào được loại sản phẩm. Danh mục sẽ được hiển thị theo bảng trong cơ sở dữ liệu. 3.2.2. Lựa chọn sản phẩm Ở đây khách hàng sẽ dựa vào mã sản phẩm, hệ thống sẽ kiểm tra mã sản phẩm trong bảng dữ liệu để cho ra dữ liệu tương ứng (tên, hình ảnh, các hình liên quan, mô tả, kích thước, màu sắc và giá tiền). Người dùng lựa chọn số sản phẩm, giá tiền sẽ được tính bằng số lượng nhân với đơn giá sản phẩm. Khách hàng có thể xóa sản phẩm đã chọn trong giỏ. 3.2.3. Đặt đơn hàng Hình 3.4 Thông tin khách hàng khi đặt hàng Tác vụ này dành cho khách hàng muốn đặt hàng. Thông tin người dùng được định nghĩa theo các thông tin sau: Mã khách hàng. Tên khách hàng. Địa chỉ. Số điện thoại. Email Ngày đặt hàng. Sau khi khách hàng nhập các dữ liệu vào thì hệ thống sẽ kiểm tra tính hợp lệ trong các dữ liệu được đưa vào: Đối với mã khách hàng, để đảm bảo là duy nhất thì người dùng không được nhập mà sẽ do hệ thống cung cấp cho người dùng. Tên khách hàng sẽ được người dùng nhập trực tiếp từ bàn phím của thiết bị và hệ thống sẽ kiểm tra xem đã nhập chuỗi ký tự vào, nếu lỗi sẽ hiện thông báo cho người dùng biết để khắc phục và sẽ nó sẽ giới hạn độ dài cho tên khách hàng. Địa chỉ cũng sẽ được kiểm tra chuỗi dữ liệu đầu vào và giới hạn độ dài cho chuỗi nhập vào. Số điện thoại sẽ phải nhập theo đúng kiểu dữ liệu và giới hạn trong 10 số theo số điện thoại của việt nam và bắt buộc phải nhập. Email phải nhập theo đúng định dạng có đuôi + tên miền, bắt buộc phải nhập. Ngày đặt hàng thì người dùng không được nhập mà sẽ do hệ thống lấy thời gian khi nhấn nút thực hiện thanh toán từ ứng dụng. Khi người dùng không nhập theo đúng tính hợp lệ mà hệ thống đã đặt ra thì hệ thống sẽ hiển thị thông báo trực tiếp ra màn hình báo cho người dùng biết và nhập lại. Khi thành công ứng dụng sẽ đẩy dữ liệu lên server để thông báo cho người quản lý biết người đặt hàng và chi tiết đơn hàng. 3.2.4. Quản lý sản phẩm Tác vụ này thực hiện khi người quản lý muốn đưa thông tin quần áo , thêm, sửa, xóa khi cần thiết. Quản lý có thể đăng nhập trên server để cập nhật lại dữ liệu hàng hóa. Thêm các sản phẩm mới vào danh mục sản phẩm, móc khóa chính của bảng sang bảng dữ liệu loại sản phẩm hay khi người dùng muốn xóa một sản phẩm nào đó trong bảng do hết hàng. Thêm các dữ liệu cho sản phẩm giúp chi tiết hơn. Quản lý được thông tin người dùng và chi tiết đơn hàng khi người dùng thanh toán. 3.3. Xây dựng cấu trúc cơ sở dữ liệu 3.3.1. Danh mục dữ liệu cơ bản Chương trình có 3 bảng dành cho sản phẩm của cửa hàng và 2 bảng dành cho thông tin khách hàng với chi tiết đơn hàng. Bảng 3.1 Bảng danh mục sản phẩm Stt Thuộc tính Mô tả 1 ID Khóa chính cho bảng. 2 SanPham Các danh mục sản phẩm có trong cửa hàng. Bảng 3.2 Bảng loại sản phẩm Stt Thuộc tính Mô tả 1 ID Khóa chính cho bảng. 2 Tên sản phẩm Các loại sản phẩm có trong cửa hàng. 3 ID DanhMucSP Khóa chính của bảng danh sách sản phẩm. Bảng 3.3 Bảng sản phẩm Stt Thuộc tính Mô tả 1 ID Khóa chính cho bảng. 2 TenSanPham Tên sản phẩm của cửa hàng. 3 GiaSanPham Giá hiện tại của sản phẩm. 4 GiamGia Giá gốc của sản phẩm. 5 MoTaSanPham Mô tả sản phẩm . 6 HinhAnh Hình ảnh của sản phẩm và một số hình ảnh liên quan. 7 KichCo Kích cỡ của sản phẩm. 8 ID LoaiSanPham Khóa chính của bảng loại sản phẩm. Bảng 3.4 Bảng thông tin khách hàng Stt Thuộc tính Mô tả 1 ID Khóa chính cho bảng. 2 TenKhachHang Tên khách hàng khi đặt hàng. 3 SoDienThoai Số điện thoại của khách. 4 Email Email của khách. 5 NgayDatHang Ngày đặt hàng của khách. 6 TongTien Tổng số tiền mà khách mà trả. Bảng 3.5 Bảng chi tiết đơn hàng stt Thuộc tính Mô tả 1 ID Khóa chính cho bảng. 2 TenSanPham Tên sản phẩm đã đặt. 3 DonGia Giá của sản phẩm. 4 ChiTietDonHang Bao gồm màu sắc, kích cỡ và số lượng của sản phẩm. 5 TongTien Tổng số tiền tính bằng cách nhân số lượng với đơn giá. 6 ID KhachHang Khóa chính của bảng khách hàng. 7 ID SanPham Khóa chính của bảng sản phẩm. Ngoài ra, tạo thêm 1 bảng quảng cáo để cập nhật các sự kiện của cửa hàng cho ứng dụng, giúp người dùng không bị bỏ lỡ sự kiện mà cửa hàng đang triển khai. Bảng 3.6 Bảng quảng cáo Stt Thuộc tính Mô tả 1 ID Khóa chính của bảng 2 QuangCao Các áp phích quảng cáo của cửa hàng. 3.3.2. Cấu trúc cơ sở dữ liệu Bảng 3.7 Bảng dữ liệu sản phẩm trên phpMyadmin Stt Tên Kiểu Bảng mã đối chiếu Thêm 1 ID Int(11) Khóa chính 2 SanPham Varchar(500) Utf8_general_ci Bảng 3.8 Bảng dữ liệu loại sản phẩm trên phpMyadmin Stt Tên Kiểu Bảng mã đối chiếu Thêm 1 ID Int(11) Khóa chính 2 TenSanPham varchar(500) utf8_general_ci 3 ID DanhMucSP Int(11) Bảng 3.9 Bảng dữ liệu sản phẩm trên phpMyadmin Stt Tên Kiểu Bảng mã đối chiếu Thêm 1 ID Int(11) Khóa chính 2 TenSanPham varchar(500) utf8_general_ci 3 GiaSanPham Int(8) 4 GiamGia Int(8) 5 MoTaSanPham varchar(10000) utf8_general_ci 6 HinhAnhA varchar(1000) utf8_general_ci 7 HinhAnhB varchar(1000) utf8_general_ci 8 HinhAnhC varchar(1000) utf8_general_ci 9 HinhAnhD varchar(1000) utf8_general_ci 10 KichCoM varchar(100) utf8_general_ci 11 KichCoL varchar(100) utf8_general_ci 12 KichCoXL varchar(100) utf8_general_ci 13 MauSacA varchar(5) utf8_general_ci 14 MauSacB varchar(5) utf8_general_ci 15 MauSacC varchar(5) utf8_general_ci 16 ID LoaiSanPham Int(11) Bảng 3.10 Bảng dữ liệu khách hàng trên phpMyadmin Stt Tên Kiểu Bảng mã đối chiếu Thêm 1 ID Int(11) Khóa chính 2 TenKhachHang Varchar(100) Utf8_general_ci 3 SoDienThoai Varchar(100) Utf8_general_ci 4 Email Varchar(100) Utf8_general_ci 5 NgayDatHang Varchar(100) Utf8_general_ci 6 TongTien Varchar(100) Utf8_general_ci Bảng 3.11 Bảng dữ liệu chi tiết đơn hàng trên phpMyadmin Stt Tên Kiểu Bảng mã đối chiếu Thêm 1 ID Int(11) Khóa chính 2 TenSanPham Varchar(100) Utf8_general_ci 3 DonGia Int(11) 4 ChiTietDonHang Varchar(1000) Utf8_general_ci 5 TongTien Int(50) 6 ID KhachHang Int(11) 7 ID SanPham Int(11) Bảng 3.12 Bảng dữ liệu quảng cáo trên phpMyadmin Stt Tên Kiểu Bảng mã đối chiếu Thêm 1 ID Int(11) Khóa chính 2 QuangCao Varchar(1000) Utf8_general_ci 3.4. Thiết kế chương trình ứng dụng chạy trên hệ điều hành Android 3.4.1. Các Modul chính chương trình. Đầu tiên, để hiển thị danh mục sản phẩm của cửa hàng sẽ xây dựng một thành phần đại diện . Bảng 3.13 Đối tượng danh mục sản phẩm Stt Thuộc tính Mô tả 1 Image Hình ảnh sản phẩm 2 Name Tên danh mục sản phẩm Để xây dựng được sản phẩm, sẽ tạo lớp với các thuộc tính thể hiện rõ đặc điểm của sản phẩm. Bảng 3.14 Đối tượng sản phẩm Stt Thuộc tính Mô tả 1 ID Định danh cho sản phẩm 2 Name Tên sản phẩm 3 price Giá sản phẩm hiện tại 4 Price_sala Giá gốc của sản phẩm 5 Details Mô tả sản phẩm 6 Image_A Hình ảnh sản phẩm thứ 1 7 Image_B Hình ảnh sản phẩm thứ 2 8 Image_C Hình ảnh sản phẩm thứ 3 9 Image_D Hình ảnh sản phẩm thứ 4 10 Size_a Kích cỡ thứ 1 11 Size_b Kích cỡ thứ 2 12 Size_c Kích cỡ thứ 3 13 Color_a Màu sắc thứ 1 14 Color_b Màu sắc thứ 2 15 Color_c Màu sắc thứ 3 Vì có 1 danh sách các hình ảnh cho nên sẽ thêm một thành phần để quản lý danh sách hình ảnh thuận tiện cho việc hiển thị theo dạng danh sách. Bảng 3.15 Đối tượng hình ảnh Stt Thuộc tính Mô tả 1 Image Hình ảnh của sản phẩm Sau khi người dùng đặt hàng, phải hiện danh sách sản phẩm đã chọn giá tiền phù hợp với số lượng. Xây dựng một thành phần để quản lý thuận tiện cho sản phẩm bên trong giỏ hàng . Bảng 3.16 Đối tượng cho đơn hàng Stt Thuộc tính Mô tả 1 ID Định danh cho sản phẩm 2 Image Hình ảnh sản phẩm 3 Name Tên của sản phẩm 4 Color Màu sắc của sản phẩm 5 Size Kích cỡ sản phẩm 6 Number Số lượng sản phẩm đã chọn 7 Price Tổng số tiền phải trả cho sản phẩm 3.4.2. Triển khai chương trình 3.4.2.1. Màn hình mở đầu Màn hình mở đầu hay còn gọi là màn hình splash. Tại đây sẽ gọi các dữ liệu cần kiểm tra trước khi thực hiện chương trình chính, giao diện cũng rất đơn giản. Hình 3.5 Màn hình mở đầu Tại màn hình này sẽ để hiển thị hình ảnh thưởng hiệu của cửa hàng, trong quá trình hiển thị, tiến hành kiểm tra tình trạng kết nối mạng. Nếu có kết nối mạng thì sẽ đợi 2 giây để sang màn hình tiếp theo, nếu không có kết nối mạng sẽ hiển thị dòng thông báo tình trạng ra màn hình. Code: if(CheckConnection.haveNetworkConnection(getApplicationContext())){ new Thread(new Runnable() { Override public void run() { try { Thread.sleep(2000); startActivity(new Intent(getApplicationContext(),MainActivity.class)); }catch (Exception e){} } }).start(); }else{ CheckConnection.showToast(getApplicationContext(),Bạn hãy kiểm tra lại kết nối trước khi vào ứng dụng); } 3.4.2.2. Màn hình trang chủ Hình 3.6 Màn hình trang chủ Màn hình trang chủ là nơi sẽ có nơi người dùng có thể nhìn thấy các thông tin của cửa hàng: giới thiệu về cửa hàng, hệ thống cửa hàng, liên hệ, quảng cáo, danh mục sản phẩm hiện có trong cửa hàng, sản phẩm đang được giảm giá, sản phẩm mới về. Đầu tiên, phần quảng cáo để tải những thông tin hình ảnh từ server về thông qua đối tượng là slidemodel của thư viện. Từ bảng dữ liệu trên phpMyadmin của server sẽ lấy dữ liệu json thông qua thư viện Volley. Có điều chú ý, đó là tên bảng và tên trường của bảng được viết phải giống với tên bảng và các tên trường cần lấy trên server. Code: RequestQueue requestQueue = Volley.newRequestQueue(getApplicationContext()); JsonArrayRequest jsonArrayRequest = new JsonArrayRequest(Server.slider_url, response > { if (response = null) { for (int i = 0; i < response.length(); i++) { try { JSONObject jsonObject = response.getJSONObject(i); id = jsonObject.getInt(id); slider = jsonObject.getString(quangcao); slideModelArrayList.add(new SlideModel(slider, ScaleTypes.FIT)); } catch (JSONException e) { CheckConnection.showToast(getApplicationContext(), Lỗi); } } imageSlider.setImageList(slideModelArrayList, ScaleTypes.FIT); } }, error > CheckConnection.showToast(getApplicationContext(), Đang kết nối ...)); requestQueue.add(jsonArrayRequest); Tiếp đến phần hiển thị danh mục sản phẩm hiện có trong cửa hàng, thông qua đối tượng mà đã được tạo dữ liệu là product, cũng sử dụng phương Volley để gọi json từ server về cho ứng dụng. Danh sách các sản phẩm sẽ được hiển thị nhờ RecyclerView. Trong sản phẩm đang giảm giá, để giới hạn số sản phẩm hiển thị cho người dùng, sử dụng câu lệnh break để kết thúc vòng lặp với một điều kiện giới hạn sản phẩm nào đó. Còn sản phẩm mới về, sẽ sắp xếp danh sách giá tiền từ dưới lên trên và lấy các sản phẩm ở đầu danh sách. Code: RequestQueue requestQueue = Volley.newRequestQueue(getApplicationContext()); JsonArrayRequest jsonArrayRequest = new JsonArrayRequest(Server.product_url, response > { if (response = null) { for (int i = 0; i < response.length(); i++) { try { if (products_sale.size() == 8) { break; } JSONObject jsonObject = response.getJSONObject(i); int id = jsonObject.getInt(id); String name = jsonObject.getString(tensp); int price = jsonObject.getInt(giasp); int price_sale = jsonObject.getInt(giamgiasp); String details = jsonObject.getString(motasp); String image_a = jsonObject.getString(hinhanha); String image_b = jsonObject.getString(hinhanhb); String image_c = jsonObject.getString(hinhanhc); String image_d = jsonObject.getString(hinhanhd); String size_m = jsonObject.getString(kichcom); String size_l = jsonObject.getString(kichcol); String size_xl = jsonObject.getString(kichcoxl); String color_a = jsonObject.getString(mausaca); String color_b = jsonObject.getString(mausacb); String color_c = jsonObject.getString(mausacc); if (price_sale = 0) { products_sale.add(new Product(id, name, price, price_sale, details, image_a, image_b, image_c, image_d, size_m, size_l, size_xl, color_a, color_b, color_c)); } } catch (JSONException e) { CheckConnection.showToast(getApplicationContext(), Lỗi); } } product_saleAdapter = new ProductAdapter(products_sale, getApplicationContext()); recyclerView_product_sale.setAdapter(product_saleAdapter); } }, error > CheckConnection.showToast(getApplicationContext(), Đang kết nối ...)); requestQueue.add(jsonArrayRequest); Cứ mỗi một dữ liệu jsonobject lấy về từ server sẽ thêm vào danh sách để hiển thị. Khi hiển thị xong nhấn vào sản phẩm nào thì sản phẩm đó sẽ hiển thị mô tả chi tiết sản phẩm, khi đó cần chuyển dữ liệu đối tượng từ màn hình này sang màn hình khác, sẽ cho đối tượng kế thừa từ interface Parcelable. Sau khi kế thừa thì sẽ phải ghi đè lại các phương thực của interface đó, chương trình sẽ tự động được các interface này ghi đè lại các phương thức để tiện cho việc truy xuất sản phẩm. Khi hiển thị ở dạng danh sách thì mỗi sản phẩm sẽ được gắn một định danh riêng và khi nhấn vào sẽ lấy thông tin sản phẩm từ định danh đó sang màn hình kia. Code: Intent intent = new Intent(getApplicationContext(), DetailsActivity.class); intent.putExtra(PRODUCT, products_sale.get(position)); startActivity(intent); 3.4.2.3. Màn hình chi tiết sản phẩm Hình 3.7 Màn hình chi tiết sản phẩm Với mỗi định danh sản phẩm được lấy ở màn hình trước tại màn hình chi tiết sản phẩm nó sẽ hiện ra các thông tin cần thiết cho sản phẩm đó: tên, giá, hình ảnh, mô tả, màu sắc, kích cỡ, số lượng. Mỗi sản phẩm đều có 4 ảnh hiển thị, vì vậy sẽ hiển thị nó dưới dạng danh sách và bắt sự kiện trên mỗi ảnh. Khi nhấn vào ảnh ở danh sách, ảnh to ở bên cạnh sẽ hiển thị bức ảnh đó lên Kiểm tra sản phẩm có màu hay các cỡ khác nhau để gắn sự kiện lên cho các RadioButton tương ứng. Bắt sự kiện trên 2 nút nhấn tăng giảm số lượng, phù hợp với số lượng người dùng chọn. Code: rb_minus.setOnClickListener(new View.OnClickListener() { Override public void onClick(View view) { if (Integer.parseInt(rb_number.getText().toString()) == 1) { rb_number.setText(1); } else { number; rb_number.setText( + number); } } }); Khi người dùng nhấn nút thêm vào giỏ, các giá trị mà người dùng có thể tùy chỉnh như màu sắc, kích cỡ, số lượng sẽ được kiểm tra. Nếu dữ liệu của sản phẩm không có màu sắc hay kích thước, chúng sẽ được đưa giá trị mặc định cho sản phẩm. Khi đã đủ thông tin, dữ liệu trên sẽ được đưa vào đối tượng quản lý là itemshop. Trong đối tượng này, tổng tiền của giá sản phẩm sẽ được tính bằng số lượng nhân với đơn giá của sản phẩm. Khi sản phẩm được đưa vào trong giỏ, sẽ có một bước để kiểm tra sản phẩm. Nếu sản phẩm được đưa vào trùng tên, trùng màu sắc, trùng kích cỡ thì số lượng sản phẩm trong giỏ sẽ được cộng thêm với số lượng sản phẩm được đưa thêm vào. Còn các trường hợp còn lại, sản phẩm sẽ được thêm vào. Sau khi thêm, tổng giá trị cho giỏ hàng sẽ được tự cập nhật qua đối tượng itemshop. Code: if (MainActivity.itemShops.size() > 0) { boolean exit = false; for (int i = 0; i < MainActivity.itemShops.size(); i++) { if (MainActivity.itemShops.get(i).getName().equals(product.getName()) MainActivity.itemShops.get(i).getColor().equals(color) MainActivity.itemShops.get(i).getSize().equals(size)) { MainActivity.itemShops.get(i).setNumber(number + MainActivity.itemShops.get(i).getNumber()); exit = true; } } if (exit == false) { MainActivity.itemShops.add(new ItemShop(product.getId(),product.getImage_a(), product.getName(), color, size, number, product.getPrice())); } } else { MainActivity.itemShops.add(new ItemShop(product.getId(),product.getImage_a(), product.getName(), color, size, number, product.getPrice())); } 3.4.2.4. Màn hình giỏ hàng Hình 3.8 Màn hình giỏ hàng. Ở màn hình giỏ hàng sẽ cho hiển thị các đối tượng itemshop mà đã có ở màn trước dưới dạng danh sách các sản phẩm. Đối tượng sẽ hiển thị được tên, màu sắc, kích cỡ, số lượng và tổng giá thành phải trả cho sản phẩm đó. Ngoài ra, tạo cho người dùng 1 biểu tượng để có thể xóa sản phẩm mà mình đã chọn ở trước đó, sau đó cập nhật lại tổng tiền ở cuối trước khi thanh toán. Khi nhấn nút “tiếp tục mua hàng”, màn hình sẽ quay trở về màn hình lúc trước để người dùng có thể lựa chọn thêm sản phẩm. Danh sách sản phẩm trong giỏ hàng hiện tại vẫn sẽ được giữ nguyên. Khi nhấn nút “thanh toán”, một cửa sổ sẽ hiện ra các nội dung mà người dùng cần phải điền thông tin để đặt hàng. Hình 3.9 Màn hình thông tin khách hàng khi thanh toán. Dữ liệu cố định sẽ là thời gian đặt hàng và một số dữ liệu thông tin mà người dùng phải nhập vào và kiểm tra tính hợp lệ của chúng. Sau khi nhấn nút “xác nhận” thông tin và các sản phẩm đã đặt của người dùng sẽ được đấy lên server, nhờ đó mà quản lý cửa hàng có thể xem và xác nhận trực tiếp với người đặt hàng. 3.4.3. Kết quả đạt được Về các chức năng chính của ứng dụng, các sản phẩm của cửa hàng đã tiếp cận được với người dùng qua các thông tin chi tiết về sản phẩm. Người dùng có thể đặt được hàng từ xa. Quản lý có thể theo dõi các đơn hàng thông qua server. Các điểm mạnh mà ứng dụng mang lại: Mua hàng online trong mùa Covid. Giải quyết bài toán thành các đối tượng. Xây dựng và sử dụng cơ sơ dữ liệu phpMyadmin để quản lý sản phẩm, khách hàng, đơn hàng và tiếp thị quảng cáo tới người tiêu dùng. Điểm hạn chế của ứng dụng: Chưa có tính năng tìm kiếm sản phẩm. Chưa có tính năng đăng nhập tài khoản cá nhân và các chính sách cho người tiêu dùng. Chưa có tính năng xác thực người đặt hàng, dễ xảy ra tình trạng đơn hàng ảo. KẾT LUẬN Về kiến thức, sau một gian thực hiện đồ án tốt nghiệp em đã đạt được nhiều tiến bộ về cả mặt tìm hiểu, nghiên cứu lý thuyết lẫn kỹ năng lập trình. Có thể nói, thông qua đồ án tốt nghiệp, em đã đạt được một số thành quả sau: Hiểu biết nhiều hơn về các kỹ thuật trong lập trình Java. Phân tích bài toán theo cách hướng đối tượng chuyên nghiệp hơn. Hiểu hơn về nghiệp vụ bán hàng trực tuyến. Nâng cao tinh thần tự học, tự nghiên cứu. Về chương trình, chương trình đã đạt được các yêu cầu đề ra của đề tài tốt nghiệp, xây dựng được và đáp ứng các chức năng chính: Quản lý cửa hàng. Quản lý việc đặt hàng. Xử lý thông kê theo yêu cầu. Cho phép tìm kiếm thông tin trong hệ thống. Giao diện thân thiện, dễ sử dụng. Bên cạnh đó, ứng dụng vẫn tồn tại một số hạn chế nhất định: Do thời gian thực hiện phân tích và thiết kế hệ thống tương đối hạn chế so với một đề tài tương đối rộng và phong phú nên không tránh khỏi những thiết sót nhất định. Bên cạnh đó, chương trình còn một số chức năng chưa hoàn thiện và chính xác. Đây là một ứng dụng dựa trên mô hình client – server với số lượng người dùng khá lớn. Để đáp ứng được điều này , hệ thống đòi hỏi một máy chủ mạnh và ổn định. Tuy nhiên, việc xây dựng và vận hành một máy chủ sẽ tốn nhiều công sức và chi phí. Đây là một khó khắn lớn. Hướng phát triển, để tiếp tục phát triển đề tài này và có thể áp dụng trong thực tế, em nhận thấy cần phải tiếp thực hiện một số công việc sau: Xử lý các lỗi chặt chẽ trước khi sử dụng. Mở rộng bài toán cho nhiều doanh nghiệp riêng biệt, Linh hoạt hơn trong các sự kiện và yêu cầu từ khách hàng. Bổ sung nhiều hơn các báo cáo thông kê. Hoàn thiên các chức năng phù hợp với thực tế hoạt động kinh doanh. Hỗ trợ các công việc liên quan đến kinh doanh. Phát triển các tính năng hỗ trợ thanh toán. Tài liệu tham khảo 1https:vi.wikipedia.orgwikiAndroid_(h%E1%BB%87_%C4%91i%E1%BB%81u_h%C3%A0nh)?fbclid=IwAR0caMiS9ED6cdoy0PemfRN8kAxOYSbseTA5xj0SzHnQGo1smENPMfIe4 2https:wiki.matbao.netphpmyadminlagikienthuccanbietkhisudungphpmyadmin?fbclid=IwAR2_ozaCL4UPFaiYR1MoW5Bj3QkXaXdNuzSdCqRsOcXDPgTUpT88STDA9Q

i Danh mục hình ảnh Hình 2.1 Mơ hình tổng quan thành phần hệ điều hành Android Hình 2.2 Vịng đời Activity 10 Hình 2.3 Truy cập php từ Cpanel 13 Hình 2.4 Đăng nhập với tài khoản Cpanel 13 Hình 2.5 Giao diện đăng nhập thành công 14 Hình 2.6 Cách tạo databse phpMyadmin .15 Hình 2.7 Cách tạo bảng phpMyadmin 15 Hình 2.8 Điền thơng tin liệu vào trường 16 Hình 2.9 Thực truy vấn phpMyadmin 17 Hình 2.10 Cách lưu liệu phpMyadmin .17 Hình 2.11 Cách phục hồi liệu phpMyadmin 18 Hình 3.1 Giao diện người mua hàng .20 Hình 3.2 Giao diện nhân viên cửa hàng 21 Hình 3.3 Giao diện quản lý cửa hàng .22 Hình 3.4 Thơng tin khách hàng đặt hàng 23 Hình 3.5 Màn hình mở đầu 33 Hình 3.6 Màn hình trang chủ 34 Hình 3.7 Màn hình chi tiết sản phẩm 37 Hình 3.8 Màn hình giỏ hàng 39 Hình 3.9 Màn hình thơng tin khách hàng tốn 40 ii Danh mục bảng biểu Bảng 3.1 Bảng danh mục sản phẩm 25 Bảng 3.2 Bảng loại sản phẩm 25 Bảng 3.3 Bảng sản phẩm .26 Bảng 3.4 Bảng thông tin khách hàng 26 Bảng 3.5 Bảng chi tiết đơn hàng 26 Bảng 3.6 Bảng quảng cáo .27 Bảng 3.7 Bảng liệu sản phẩm phpMyadmin .27 Bảng 3.8 Bảng liệu loại sản phẩm phpMyadmin 28 Bảng 3.9 Bảng liệu sản phẩm phpMyadmin .28 Bảng 3.10 Bảng liệu khách hàng phpMyadmin 29 Bảng 3.11 Bảng liệu chi tiết đơn hàng phpMyadmin .30 Bảng 3.12 Bảng liệu quảng cáo phpMyadmin 30 Bảng 3.13 Đối tượng danh mục sản phẩm 31 Bảng 3.14 Đối tượng sản phẩm .31 Bảng 3.15 Đối tượng hình ảnh 32 Bảng 3.16 Đối tượng cho đơn hàng 32 MỞ ĐẦU Trong năm gần với phát triển kinh tế kinh doanh trực tuyến trở thành xu hướng, thị trường lớn đầy tiềm việc kinh doanh Chính lí mà nhiều người đổ xô vào kinh doanh đặc biệt giới trẻ nhằm kiếm thêm thu nhập, tăng suất doanh thu bán hàng Tuy nhiên năm gần kinh tế bước vào giai đoạn khó khăn thăm nhập ơng chủ nước vào thị trường Việt Nam khiến cho cạnh tranh ngày gay gắt hết Bài tốn kinh doanh online từ trở thành nỗi băn khoăn lớn nhà kinh doanh Bên cạnh đó, Covid-19 xảy làm thay đổi xu hướng tiêu dùng cớ vô hợp lý để môi trường mua sắm online bùng nổ Phần thắng thuộc doanh nghiệp biết thay đổi nhanh chóng nắm bắt hội nhanh Xuất phát từ trình thực tế nhu cầu thị trường dựa sở kiến thức em học nhà trường em định chọn đề tài “Thiết kế ứng dụng quản lý cửa hàng hệ điều hành Android” tảng Andoid Em xin gửi lời cảm ơn chân thành tới Vũ Thị Hồng Yến quan tâm giúp đỡ, hướng dẫn em hoàn thành tốt đồ án suốt thời gian qua Em thực hồn thiện đề tài với nội dung tóm tắt sau: Trong đề tài gồm phần chính: Chương 1:Tổng quan đề tài Chương 2: Cơ sở lý thuyết Chương 3:Thiết kế ứng dụng Với điều kiện thời gian kinh nghiệm hạn chế sinh viên, đồ án tránh khỏi thiếu sót Em mong nhận bảo, đóng góp ý kiến thầy để em bổ sung, phục vụ tốt cho cơng việc thực tế sau Em xin chân thành càm ơn ! Hà Nội, Ngày Tháng Năm 2021 Sinh viên thực : Hồng Cơng Vũ CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI 1.1 Lý chọn đề tài Trước người mua hàng online chủ yếu chọn mặt hàng thời trang hay điện máy, đơn hàng online có sản phẩm thiết yếu Nắm bắt tâm lý này, trang TMĐT bày bán sản phẩm tưởng chừng mua kênh truyền thống nước mắm, muối, đường, dầu ăn, mì gói Shopee Việt Nam bổ sung nhiều mặt hàng thiết yếu gạo, thực phẩm khô, thực phẩm chế biến hộp giúp người dùng dễ dàng tiếp cận mua sắm hàng hóa thiết yếu nhà, giảm thiểu việc tiếp xúc nơi đông người Dịch COVID-19 làm người tiêu dùng thay đổi thói quen mua sắm, việc hạn chế đến chỗ đông người đem lại hội lớn cho kênh mua sắm online, đặt hàng từ nhà Nhiều người tiêu dùng chọn mua sắm online để hạn chế số lần phải đến cửa hàng mua sắm trực tiếp, giảm nguy lây nhiễm dịch bệnh Theo tờ báo Công thương – quan ngôn luận công thương, tìm hiểu thị trường nước mua sắm online tiếp tục lên hậu dịch COVID-19 Giỏ hàng “mùa dịch” nạp đầy với ba nhóm chính: thực phẩm cần thiết/tiện lợi, sản phẩm vệ sinh sản phẩm giúp tăng cường sức khỏe Ngoài ra, với chiến dịch stayhome, mặt hàng liên quan đến nhu cầu kết nối, nhu cầu xã hội đồ ăn vặt, sản phẩm giúp đơn giản hóa việc nấu ăn, sản phẩm chăn sóc cá nhân cho thấy tăng trưởng tích cực Người tiêu dùng chi tiêu cho mặt hàng thuộc thói quen như: kẹo, cà phê… đặc biệt người dân thành thị Các mơ hình bán lẻ bao gồm siêu thị mini, cửa hàng tiện lợi mua sắm trực tuyến đóng vai trị quan trọng tăng trưởng nhóm hàng tiêu dùng nhanh Trong đó, mua sắm trực tuyến đánh giá cao tính tiện lợi “hạn chế tiếp xúc”, siêu thị mini chọn vị trí gần nhà cho nhu cầu khoảng thời gian ngắn Đối với kênh siêu thị đại siêu thị, số giao dịch tăng lên đáng kể trước lệnh giãn cách dự đốn cịn tiếp diễn dần lại mức bình thường nhu cầu tích trữ hàng giảm Ngày nay, lý người tiêu dùng chọn mua sắm trực tuyến gồm: Sự thuận tiện; hàng hóa phong phúc đa dạng, dễ lựa chọn; nhiều ưu đãi, khuyến mại Tuy nhiên, kèm theo lo ngại như: Sản phẩm chất lượng kém; vấn nạn hàng giả, hàng nhái; dịch vụ giao hàng, bảo hành 1.2 Mục tiêu đề tài Ứng dụng quản lý cửa hàng quần áo chạy Android thực dựa mục đích sau: Đảm bảo tiêu chí quy định mùa dịch COVID-19 Góp phần vào cơng chuyển đổi số quốc gia Kích cầu nhu cầu mua sắm người tiêu dùng Người tiêu dùng xem hàng lựa chọn mà khơng cần đến cửa hàng Với cửa hàng buôn bán nhỏ lẻ, giảm thiểu chi phí th mặt 1.3 Mô tả sản phẩm Đề tài “Thiết kế ứng dụng quản lý cửa hàng quần áo hệ điều hành Android” ứng dụng chạy điện thoại sử dụng hệ điều hành Android Nắm kiến thức thành phần Android Ứng dụng gồm: Phần mềm mua sắm dành cho người tiêu dùng Những chức mà em dự định phát triển phiên ứng dụng này: Đề tài xây dựng ứng dụng quản lý cửa hàng bán quần áo tảng Android Khách hàng tải ứng dụng điện thoại có sử dụng hệ điều hành Android 4.0 trờ lên Khách hàng chạy ứng dụng xem danh sách sản phẩm cửa hàng cập nhật sở liệu Khách hàng chọn sản phẩm đăng ký thông tin để mua, liệu đưa lên server nhân viên dựa vào liên lạc với khách hàng, Ngoài ra, xây dựng phần mềm quản lý dành cho nhà hàng để xử lý thông tin mà khách hàng gửi từ ứng dụng Android, xử lý yêu cầu khách hàng Quản lý danh mục sản phẩm cập nhật, sửa, xóa 1.4 Phương pháp triển khai Xây dựng ứng dụng bao gồm ứng dụng chạy điện thoại phần mềm đọc liệu từ ứng dụng, cung cấp cho ứng dụng liệu cần thiết Trong đề tài tốt nghiệp lần này, em định thực phần từ triển khai ứng dụng hoàn chỉnh theo bước sau: Khảo sát lấy ý kiến từ chủ cửa hàng khu vực, người tiêu dùng Nghiên cứu công nghệ phát triển ứng dụng chạy hệ điều hành Android Cài đặt máy chủ làm nơi truy xuất liệu Tạo liệu máy chủ Sau hoàn thành phần cài đặt tạo liệu máy chủ, triển khai truy xuất liệu từ máy chủ để sử dụng viết ứng dụng hệ điều hành Android Sau danh sách công nghệ sử dụng để xây dựng ứng dụng: Android SDK Java Php Server Localhost phpMyAdmin 1.5 Phạm vi đề tài Ứng dụng xây dựng phát triển nhằm kích cầu tiêu dùng người dân mùa dịch COVID, tiết kiệm chi phí phát sinh cho người tiêu dùng giúp chủ cửa hàng quản lý từ xa tốt hơn, Vì ứng dụng phù hợp với đối tượng tiêu dùng sử dụng điện thoại thông minh chạy hệ điều hành Android CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.1 Lý thuyết Android Android hệ điều hành có dạng mã nguồn mở, hoạt động dựa tảng Linux thiết kế dành riêng cho thiết bị di động cảm ứng máy tính bảng Trước đây, hệ điều hành phát triển tổng công ty Android tài trợ Google Cho đến năm 2005 Google mua lại hệ điều hành cho mắt người dùng vào năm 2007 Ban đầu, Android hệ điều hành cho thiết bị cầm tay dựa lõi Linux công ty Android Inc (California, Mỹ) thiết kế Công ty sau Google mua lại vào năm 2005 bắt đầu xây dựng Android Platform Và sau tiếp, vào cuối năm 2007, thuộc Liên minh thiết bị cầm tay mã nguồn mở (Open Handset Alliance) Mục tiêu liên minh nhanh chóng đổi để đáp ứng tốt cho nhu cầu người tiêu dùng kết tảng Android Android thiết kế để phục vụ nhu cầu nhà sản xuất thiết, nhà khai thác lập trình viên thiết bị cầm tay Khi Android phát hành số mục tiêu kiến trúc cho phép ứng dụng tương tác với sử dụng lại thành phần từ ứng dụng khác Việc tái sử dụng không áp dụng cho cho dịch vụ mà áp dụng cho thành phần liệu giao diện người dùng Vào cuối năm 2008, Google cho phát hành thiết bị cầm tay gọi Android Dev Phone chạy ứng dụng Android mà khơng bị ràng buộc vào nhà cung cấp mạng điện thoại di động Mục tiêu thiết bị cho phép nhà phát triển thực thí nghiệm thiết bị thực chạy hệ điều hành Android mà ký hợp đồng Vào khoảng thời gian Google cho phát hành phiên vản vá lỗi 1.1 hệ điều hành Ở hai phiên 1.0 1.1 Android chưa hỗ trợ soft-keyboard mà đòi hỏi thiết bị phải sử dụng bàn phím vật lý Android cố định vấn đề cách phát hành SDK 1.5 vào tháng Tư năm 2009, với số tính khác Chẳng hạn nâng cao khả ghi âm truyền thông, vật dụng, live folder “Understanding Android” cách mà người dùng tiếp cận lập trình Android thấu hiểu kiến trúc hệ thống Người dùng khơng cần hiểu rõ cấu trúc hệ điều hành lập trình ứng dụng hệ điều hành đó, điều mà nhà sản xuất muốn release SDK với framework có sẵn họ Framework tầm cao cấp dành cho lập trình viên, có giới hạn người dùng thể lập trình ứng dụng phổ biến khơng nên tiến tới ứng dụng cao cấp sâu vào hệ thống hệ điều hành Hình CƠ SỞ LÝ THUYẾT.1 Mơ hình tổng quan thành phần hệ điều hành Android Linux Kernel: Đây loại nhân xử lý, có khả cung cấp độ trừu tượng cho phần ứng Libraries: Hầu hết, thư viện nằm lớp nhân Linux thư viện dựa vào Java để phục vụ cho Android 28 GiamGia MoTaSan Int(8) varchar(1 Pham HinhAnh 0000) varchar(1 i 000) i A HinhAnh B HinhAnh varchar(1 HinhAnh varchar(1 KichCoM varchar(1 KichCoL varchar(1 KichCoX L varchar(1 MauSacA varchar(5 MauSacB varchar(5 MauSacC utf8_general_c i varchar(5 ) utf8_general_c i ) utf8_general_c i ) utf8_general_c i 00) utf8_general_c i 00) utf8_general_c i 00) utf8_general_c i 000) utf8_general_c i 000) D utf8_general_c varchar(1 000) C utf8_general_c ID utf8_general_c i Int(11) LoaiSanPham Bảng THIẾT KẾ ỨNG DỤNG.10 Bảng liệu khách hàng phpMyadmin S Tên Kiểu tt Bảng mã đối Thêm chiếu ID Int(11) Khóa TenKhach Varchar( Hang 100) SoDienTh Varchar( oai 100) Utf8_general_ ci Utf8_general_ ci 29 Email Varchar( 100) NgayDat Hang TongTien Utf8_general_ ci Varchar( 100) Utf8_general_ ci Varchar( 100) Utf8_general_ ci Bảng THIẾT KẾ ỨNG DỤNG.11 Bảng liệu chi tiết đơn hàng phpMyadmin S Tên Kiểu tt Bảng mã đối Thêm chiếu ID Int(11) Khóa TenSanPha m Varchar( 100) ci DonGia Int(11) ChiTietDon Varchar( Hang TongTien ID KhachHang ID Utf8_general_ 1000) Int(50) Utf8_general_ ci Int(11) Int(11) SanPham Bảng THIẾT KẾ ỨNG DỤNG.12 Bảng liệu quảng cáo phpMyadmin S Tên Kiểu tt Bảng mã đối Thêm chiếu ID Int(11) Khóa QuangCao Varchar( 1000) Utf8_general_ ci 30 3.4 Thiết kế chương trình ứng dụng chạy hệ điều hành Android 3.4.1 Các Modul chương trình Đầu tiên, để hiển thị danh mục sản phẩm cửa hàng xây dựng thành phần đại diện Bảng THIẾT KẾ ỨNG DỤNG.13 Đối tượng danh mục sản phẩm S Thuộc tính Mơ tả tt Image Hình ảnh sản phẩm Name Tên danh mục sản phẩm Để xây dựng sản phẩm, tạo lớp với thuộc tính thể rõ đặc điểm sản phẩm Bảng THIẾT KẾ ỨNG DỤNG.14 Đối tượng sản phẩm S Thuộc tính Mơ tả ID Name price Price_sala Details Image_A Image_B Image_C Image_D Size_a Định danh cho sản phẩm Tên sản phẩm Giá sản phẩm Giá gốc sản phẩm Mơ tả sản phẩm Hình ảnh sản phẩm thứ Hình ảnh sản phẩm thứ Hình ảnh sản phẩm thứ Hình ảnh sản phẩm thứ Kích cỡ thứ 1 Size_b Kích cỡ thứ Size_c Kích cỡ thứ Color_a Màu sắc thứ 1 Color_b Màu sắc thứ tt 31 Color_c Màu sắc thứ Vì có danh sách hình ảnh thêm thành phần để quản lý danh sách hình ảnh thuận tiện cho việc hiển thị theo dạng danh sách Bảng THIẾT KẾ ỨNG DỤNG.15 Đối tượng hình ảnh S Thuộc tính Mơ tả tt Image Hình ảnh sản phẩm Sau người dùng đặt hàng, phải danh sách sản phẩm chọn giá tiền phù hợp với số lượng Xây dựng thành phần để quản lý thuận tiện cho sản phẩm bên giỏ hàng Bảng THIẾT KẾ ỨNG DỤNG.16 Đối tượng cho đơn hàng S Thuộc tính Mơ tả ID Image Name Color Size Number Price Định danh cho sản phẩm Hình ảnh sản phẩm Tên sản phẩm Màu sắc sản phẩm Kích cỡ sản phẩm Số lượng sản phẩm chọn Tổng số tiền phải trả cho sản tt phẩm 3.4.2 Triển khai chương trình 3.4.2.1 Màn hình mở đầu Màn hình mở đầu hay cịn gọi hình splash Tại gọi liệu cần kiểm tra trước thực chương trình chính, giao diện đơn giản 32 Hình THIẾT KẾ ỨNG DỤNG.16 Màn hình mở đầu Tại hình để hiển thị hình ảnh thưởng hiệu cửa hàng, trình hiển thị, tiến hành kiểm tra tình trạng kết nối mạng Nếu có kết nối mạng đợi giây để sang hình tiếp theo, khơng có kết nối mạng hiển thị dịng thơng báo tình trạng hình Code: if(CheckConnection.haveNetworkConnection(getApplicationContext())){ new Thread(new Runnable() { @Override public void run() { try { Thread.sleep(2000); startActivity(new Intent(getApplicationContext(),MainActivity.class)); }catch (Exception e){} } }).start(); }else{ CheckConnection.showToast(getApplicationContext(),"Bạn kiểm tra lại kết nối trước vào 33 ứng dụng"); } 3.4.2.2 Màn hình trang chủ Hình THIẾT KẾ ỨNG DỤNG.17 Màn hình trang chủ Màn hình trang chủ nơi có nơi người dùng nhìn thấy thơng tin cửa hàng: giới thiệu cửa hàng, hệ thống cửa hàng, liên hệ, quảng cáo, danh mục sản phẩm có cửa hàng, sản phẩm giảm giá, sản phẩm Đầu tiên, phần quảng cáo để tải thông tin hình ảnh từ server thơng qua đối tượng slidemodel thư viện Từ bảng liệu phpMyadmin server lấy liệu json thông qua thư viện Volley Có điều ý, tên bảng tên trường bảng viết phải giống với tên bảng tên trường cần lấy server Code: 34 RequestQueue requestQueue = Volley.newRequestQueue(getApplicationContext()); JsonArrayRequest jsonArrayRequest = new JsonArrayRequest(Server.slider_url, response -> { if (response != null) { for (int i = 0; i < response.length(); i++) { try { JSONObject jsonObject = response.getJSONObject(i); id = jsonObject.getInt("id"); slider = jsonObject.getString("quangcao"); slideModelArrayList.add(new SlideModel(slider, ScaleTypes.FIT)); } catch (JSONException e) { CheckConnection.showToast(getApplicationContext(), "Lỗi"); } } imageSlider.setImageList(slideModelArrayList, ScaleTypes.FIT); } }, error -> CheckConnection.showToast(getApplicationContext(), "Đang kết nối ")); requestQueue.add(jsonArrayRequest); Tiếp đến phần hiển thị danh mục sản phẩm có cửa hàng, thông qua đối tượng mà tạo liệu product, sử dụng phương Volley để gọi json từ server cho ứng dụng Danh sách sản phẩm hiển thị nhờ RecyclerView Trong sản phẩm giảm giá, để giới hạn số sản phẩm hiển thị cho người dùng, sử dụng câu lệnh break để kết thúc vòng lặp với điều kiện giới hạn sản phẩm Cịn sản phẩm về, xếp danh sách giá tiền từ lên lấy sản phẩm đầu danh sách Code: RequestQueue requestQueue = Volley.newRequestQueue(getApplicationContext()); JsonArrayRequest jsonArrayRequest = new JsonArrayRequest(Server.product_url, response -> { if (response != null) { for (int i = 0; i < response.length(); i++) { try { if (products_sale.size() == 8) { break; } JSONObject jsonObject = response.getJSONObject(i); int id = jsonObject.getInt("id"); String name = jsonObject.getString("tensp"); int price = jsonObject.getInt("giasp"); int price_sale = jsonObject.getInt("giamgiasp"); String details = jsonObject.getString("motasp"); String image_a = jsonObject.getString("hinhanha"); String image_b = jsonObject.getString("hinhanhb"); String image_c = jsonObject.getString("hinhanhc"); 35 String image_d = jsonObject.getString("hinhanhd"); String size_m = jsonObject.getString("kichcom"); String size_l = jsonObject.getString("kichcol"); String size_xl = jsonObject.getString("kichcoxl"); String color_a = jsonObject.getString("mausaca"); String color_b = jsonObject.getString("mausacb"); String color_c = jsonObject.getString("mausacc"); if (price_sale != 0) { products_sale.add(new Product(id, name, price, price_sale, details, image_a, image_b, image_c, image_d, size_m, size_l, size_xl, color_a, color_b, color_c)); } } catch (JSONException e) { CheckConnection.showToast(getApplicationContext(), "Lỗi"); } } product_saleAdapter = new ProductAdapter(products_sale, getApplicationContext()); recyclerView_product_sale.setAdapter(product_saleAdapter); } }, error -> CheckConnection.showToast(getApplicationContext(), "Đang kết nối ")); requestQueue.add(jsonArrayRequest); Cứ liệu jsonobject lấy từ server thêm vào danh sách để hiển thị Khi hiển thị xong nhấn vào sản phẩm sản phẩm hiển thị mơ tả chi tiết sản phẩm, cần chuyển liệu đối tượng từ hình sang hình khác, cho đối tượng kế thừa từ interface Parcelable Sau kế thừa phải ghi đè lại phương thực interface đó, chương trình tự động interface ghi đè lại phương thức để tiện cho việc truy xuất sản phẩm Khi hiển thị dạng danh sách sản phẩm gắn định danh riêng nhấn vào lấy thông tin sản phẩm từ định danh sang hình Code: Intent intent = new Intent(getApplicationContext(), DetailsActivity.class); intent.putExtra("PRODUCT", products_sale.get(position)); startActivity(intent); 36 3.4.2.3 Màn hình chi tiết sản phẩm Hình THIẾT KẾ ỨNG DỤNG.18 Màn hình chi tiết sản phẩm Với định danh sản phẩm lấy hình trước hình chi tiết sản phẩm thơng tin cần thiết cho sản phẩm đó: tên, giá, hình ảnh, mơ tả, màu sắc, kích cỡ, số lượng Mỗi sản phẩm có ảnh hiển thị, hiển thị dạng danh sách bắt kiện ảnh Khi nhấn vào ảnh danh sách, ảnh to bên cạnh hiển thị ảnh lên Kiểm tra sản phẩm có màu hay cỡ khác để gắn kiện lên cho RadioButton tương ứng Bắt kiện nút nhấn tăng giảm số lượng, phù hợp với số lượng người dùng chọn Code: 37 rb_minus.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if (Integer.parseInt(rb_number.getText().toString()) == 1) { rb_number.setText("1"); } else { number ; rb_number.setText("" + number); } } }); Khi người dùng nhấn nút thêm vào giỏ, giá trị mà người dùng tùy chỉnh màu sắc, kích cỡ, số lượng kiểm tra Nếu liệu sản phẩm màu sắc hay kích thước, chúng đưa giá trị mặc định cho sản phẩm Khi đủ thông tin, liệu đưa vào đối tượng quản lý itemshop Trong đối tượng này, tổng tiền giá sản phẩm tính số lượng nhân với đơn giá sản phẩm Khi sản phẩm đưa vào giỏ, có bước để kiểm tra sản phẩm Nếu sản phẩm đưa vào trùng tên, trùng màu sắc, trùng kích cỡ số lượng sản phẩm giỏ cộng thêm với số lượng sản phẩm đưa thêm vào Còn trường hợp lại, sản phẩm thêm vào Sau thêm, tổng giá trị cho giỏ hàng tự cập nhật qua đối tượng itemshop Code: if (MainActivity.itemShops.size() > 0) { boolean exit = false; for (int i = 0; i < MainActivity.itemShops.size(); i++) { if (MainActivity.itemShops.get(i).getName().equals(product.getName()) && MainActivity.itemShops.get(i).getColor().equals(color) && MainActivity.itemShops.get(i).getSize().equals(size)) { MainActivity.itemShops.get(i).setNumber(number + MainActivity.itemShops.get(i).getNumber()); exit = true; } } if (exit == false) { MainActivity.itemShops.add(new ItemShop(product.getId(),product.getImage_a(), product.getName(), color, size, number, product.getPrice())); } } else { MainActivity.itemShops.add(new ItemShop(product.getId(),product.getImage_a(), 38 product.getName(), color, size, number, product.getPrice())); } 3.4.2.4 Màn hình giỏ hàng Hình THIẾT KẾ ỨNG DỤNG.19 Màn hình giỏ hàng Ở hình giỏ hàng cho hiển thị đối tượng itemshop mà có trước dạng danh sách sản phẩm Đối tượng hiển thị tên, màu sắc, kích cỡ, số lượng tổng giá thành phải trả cho sản phẩm Ngồi ra, tạo cho người dùng biểu tượng để xóa sản phẩm mà chọn trước đó, sau cập nhật lại tổng tiền cuối trước toán Khi nhấn nút “tiếp tục mua hàng”, hình quay trở hình lúc trước để người dùng lựa chọn thêm sản phẩm Danh sách sản phẩm giỏ hàng giữ nguyên Khi nhấn nút “thanh toán”, cửa sổ nội dung mà người dùng cần phải điền thông tin để đặt hàng 39 Hình THIẾT KẾ ỨNG DỤNG.20 Màn hình thơng tin khách hàng tốn Dữ liệu cố định thời gian đặt hàng số liệu thông tin mà người dùng phải nhập vào kiểm tra tính hợp lệ chúng Sau nhấn nút “xác nhận” thông tin sản phẩm đặt người dùng lên server, nhờ mà quản lý cửa hàng xem xác nhận trực tiếp với người đặt hàng 3.4.3 Kết đạt Về chức ứng dụng, sản phẩm cửa hàng tiếp cận với người dùng qua thông tin chi tiết sản phẩm Người dùng đặt hàng từ xa Quản lý theo dõi đơn hàng thông qua server 40 Các điểm mạnh mà ứng dụng mang lại: - Mua hàng online mùa Covid - Giải toán thành đối tượng - Xây dựng sử dụng sơ liệu phpMyadmin để quản lý sản phẩm, khách hàng, đơn hàng tiếp thị quảng cáo tới người tiêu dùng Điểm hạn chế ứng dụng: - Chưa có tính tìm kiếm sản phẩm - Chưa có tính đăng nhập tài khoản cá nhân sách cho người tiêu dùng - Chưa có tính xác thực người đặt hàng, dễ xảy tình trạng đơn hàng ảo KẾT LUẬN Về kiến thức, sau gian thực đồ án tốt nghiệp em đạt nhiều tiến mặt tìm hiểu, nghiên cứu lý thuyết lẫn kỹ lập trình Có thể nói, thơng qua đồ án tốt nghiệp, em đạt số thành sau: - Hiểu biết nhiều kỹ thuật lập trình Java Phân tích tốn theo cách hướng đối tượng chun nghiệp Hiểu nghiệp vụ bán hàng trực tuyến Nâng cao tinh thần tự học, tự nghiên cứu Về chương trình, chương trình đạt yêu cầu đề đề tài tốt nghiệp, xây dựng đáp ứng chức chính: 41 - Quản lý cửa hàng Quản lý việc đặt hàng Xử lý thơng kê theo u cầu Cho phép tìm kiếm thông tin hệ thống Giao diện thân thiện, dễ sử dụng Bên cạnh đó, ứng dụng tồn số hạn chế định: - Do thời gian thực phân tích thiết kế hệ thống tương đối hạn chế so với đề tài tương đối rộng phong phú nên không tránh khỏi thiết sót định Bên cạnh đó, chương trình cịn số chức chưa hồn thiện xác - Đây ứng dụng dựa mơ hình client – server với số lượng người dùng lớn Để đáp ứng điều , hệ thống đòi hỏi máy chủ mạnh ổn định - Tuy nhiên, việc xây dựng vận hành máy chủ tốn nhiều cơng sức chi phí Đây khó khắn lớn Hướng phát triển, để tiếp tục phát triển đề tài áp dụng thực tế, em nhận thấy cần phải tiếp thực số công việc sau: - Xử lý lỗi chặt chẽ trước sử dụng Mở rộng toán cho nhiều doanh nghiệp riêng biệt, Linh hoạt kiện yêu cầu từ khách hàng Bổ sung nhiều báo cáo thơng kê Hồn thiên chức phù hợp với thực tế hoạt động kinh doanh Hỗ trợ công việc liên quan đến kinh doanh Phát triển tính hỗ trợ toán 42 Tài liệu tham khảo [1]https://vi.wikipedia.org/wiki/Android_(h%E1%BB%87_%C4%91i %E1%BB%81u_h%C3%A0nh)?fbclid=IwAR0caMiS9ED6cdoy0PemfRN8kAxOYSb-seTA5xj0SzHnQGo1smENPMfIe4 [2]https://wiki.matbao.net/phpmyadmin-la-gi-kien-thuc-can-biet-khi-su-dungphpmyadmin/?fbclid=IwAR2_ozaCL4UPFaiYR1MoW5Bj3QkXaXdNuzSdCqRsOcXDPgTUpT88STDA9Q ... bên nhà hàng Cập nhật mục sản phẩm có cửa hàng Cập nhật chi tiết sản phẩm phù hợp với tình hình có Quản lý danh sách khách hàng mua hàng, nhân viên cửa hàng Xem danh sách đơn đặt hàng khách hàng. .. có Theo dõi tình hình đơn hàng đặt cửa hàng Hình THIẾT KẾ ỨNG DỤNG.12 Giao diện người mua hàng 3.1.2 Giao diện tài khoản nhân viên bán hàng Cập nhật mục sản phẩm có cửa hàng Cập nhật chi tiết sản... Quản lý danh sách khách hàng mua hàng Xem danh sách đơn đặt hàng khách hàng đặt Có thể liên lạc với quản lí cửa hàng 21 Hình THIẾT KẾ ỨNG DỤNG.13 Giao diện nhân viên cửa hàng 3.1.3 Giao diện tài

Ngày đăng: 17/06/2021, 22:00

Từ khóa liên quan

Mục lục

  • Danh mục hình ảnh

  • Danh mục bảng biểu

  • MỞ ĐẦU

  • CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI

    • 1.1. Lý do chọn đề tài

    • 1.2. Mục tiêu của đề tài

    • 1.3. Mô tả sản phẩm

    • 1.4. Phương pháp triển khai

    • 1.5. Phạm vi đề tài

    • CHƯƠNG 2: CƠ SỞ LÝ THUYẾT

      • 2.1. Lý thuyết về Android

      • 2.2. Các thành phần cơ bản của ứng dụng Android

      • 2.3. Hệ quản trị cơ sở dữ liệu phpMyAdmin

        • 2.3.1. Một số tính năng chung của phpMyAdmin

        • 2.3.2. Cách cài đặt và sử dụng phpMyAdmin

        • 2.3.3. Ưu và nhược điểm của phpMyAdmin

        • CHƯƠNG 3: THIẾT KẾ ỨNG DỤNG

          • 3.1. Giao diện tài khoản của ứng dụng quản lý cửa hàng

            • 3.1.1. Giao diện tài khoản người mua

            • 3.1.2. Giao diện tài khoản của nhân viên bán hàng

            • 3.1.3. Giao diện tài khoản của người quản lý bên nhà hàng

            • 3.2. Đặc tả yêu cầu

              • 3.2.1. Hiển thị danh mục sản phẩm

              • 3.2.2. Lựa chọn sản phẩm

              • 3.2.3. Đặt đơn hàng

              • 3.2.4. Quản lý sản phẩm

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

Tài liệu liên quan