2.1.3: Lợi ích của việc tích điểm cho khách hàng - Giữ chân khách hàng Giữa 2 cửa hàng đều bán sản phẩm giống nhau, một cửa hàng sử dụng phần mềm tích điểm cho khách và một cửa hàng
CƠ SỞ LÝ THUYẾT
Tổng quan về Android Studio
Android là một hệ điều hành dựa trên nền tảng Linux được thiết kế dành cho các thiết bị di động có màn hình cảm ứng như điện thoại thông minh và máy tính bảng
Android Studio là một trong những môi trường phát triển dạng tích hợp dành cho nền tảng Android với các chức năng chính như: Thiết kế các giao diện cho người dùng, thực hiện thay đổi sản phẩm trong thời gian thực, …
Bởi vì đây là một phần mềm hoàn toàn miễn phí nên bạn có thể tải về cũng như cho phép bạn có thể triển khai code thành một ứng dụng trên Android vô cùng dễ dàng
Android Studio được tạo nên với mục đích chính là để thay thế các phiên bản của plugin android được dùng cho Eclipse thời trước với sự hợp tác của Google và JetBrains
Chức năng quan trọng nhất của Android Studio là cung cấp giao diện giúp người sử dụng có thể tạo được các ứng dụng và xử lý được các công cụ có file phức tạp sau hậu trường Java là ngôn ngữ lập trình được Android Studio sử dụng và được cài sẵn trên các thiết bị
Vì những đặc điểm đặc trưng về cấu tạo của Android Studio nên trong quá trình soạn thảo mã và công cụ phát triển mạnh mẽ của IntelliJ IDEA thì Android Studio sẽ cung cấp nhiều tính năng giúp bạn tăng hiệu suất trong việc xây dựng ứng dụng Android
Ví dụ tiêu biểu như:
• Một hệ thống xây dựng linh hoạt dựa trên Gradle
• Một trình mô phỏng nhanh và nhiều tính năng
• Một môi trường hợp nhất nơi bạn có thể phát triển cho mọi thiết bị Android
• Tính năng chỉnh sửa trực tiếp để cập nhật các thành phần kết hợp trong trình mô phỏng và thiết bị thực theo thời gian thực
• Mã mẫu và quá trình tích hợp GitHub để giúp bạn xây dựng các tính năng ứng dụng phổ biến cũng như nhập mã mẫu
• Đa dạng khung và công cụ thử nghiệm
• Tích hợp sẵn tính năng hỗ trợ Google Cloud Platform, giúp dễ dàng tích hợp Google Cloud Messaging và App Engine
1.1.4 Ưu điểm của Android Studio
- Được phát triển bởi chính Google, cũng là chủ sở hữu hệ điều hành Android
- Các gói công cụ hỗ trợ được cập nhật đầy đủ và mới nhất
- Giao diện và tính năng dễ làm quen và sử dụng của nó là một điểm cộng lớn
- Tài liệu tham khảo và hướng dẫn rõ ràng và đầy đủ trên trang chủ, cũng như và có vô số diễn đàn dành cho các lập trình viên Android
1.1.5 Nhược điểm của Android Studio
- Vì nó là bộ công cụ tích hợp tất cả, nên nó buộc phải tải toàn bộ những dữ liệu hỗ trợ cho việc phát triển ứng dụng tối ưu nhất Đó là lượng dữ liệu lớn chiếm dụng không ít không gian bộ nhớ lưu trữ máy tính của bạn
- Android Studio là một phần mềm phát triển ứng dụng mà ở đó bạn có thể kiểm tra cách hoạt động của app ngay trên máy tính thông qua trình giả lập của Android Studio Và nó chính là nguyên nhân dẫn tới máy bị giật, nóng hay hao pin trên laptop.
Cấu trúc thư mục Project Android
1.2 Cấu trúc thư mục Project Android
1.2.1 Cấu trúc chuẩn trên Android Studio
Khi thiết lập môi trường phát triển Android và tạo một ứng dụng bằng Android Studio thì bạn sẽ nhận được cấu trúc thư mục project sẽ giống như hình dưới đây:
Hình 1 1 Cấu trúc chuẩn trên Android Studio
• manifests (tệp kê khai): Chứa tệp AndroidManifest.xml
• java: Chứa các tệp mã nguồn Java và Kotlin, bao gồm cả mã kiểm thử
• res: Chứa mọi tài nguyên không phải đoạn mã, chẳng hạn như chuỗi giao diện người dùng và hình ảnh bitmap
1.2.2 Giải thích ý nghĩa các thư mục
Thư mục này sẽ chứa tất cả các file mã nguồn java (.java ) mà chúng ta sẽ tạo trong quá trình phát triển ứng dụng, bao gồm cả mã JUnit test code
• Thư mục res (Resourcer) Đây là một thư mục quan trọng sẽ chứa tất cả các resource không phải code, chẳng hạn như ảnh bitmap, UI strings, XML layouts như hiển thị bên dưới
Thư mục res (Resources) sẽ chứa một số loại thư mục khác:
- Thư mục Drawable: Nó sẽ chứa các dạng ảnh khác nhau Tốt nhất là nên thêm tất cả các hình ảnh vào thư mục drawable ngoại trừ các biểu tượng ứng dụng / laucher
- Thư mục Layout: Thư mục này sẽ chứa tất cả các file XML layout đã sử dụng để xác định Giao diện người dùng của ứng dụng Sau đây là cấu trúc của thư mục layout
Hình 1 4 Thư mục Resourcer/Layout
- Thư mục Mipmap: Thư mục này sẽ chứa các biểu tượng ứng dụng / laucher được sử dụng để hiển thị trên màn hình chính Các loại biểu tượng sẽ có tỷ trọng khác nhau như hdpi, mdpi, xhdpi, xxhdpi, xxxhdpi, để sử dụng dựa trên kích thước của thiết bị
Sau đây là cấu trúc của thư mục mipmap:
Hình 1 5 Thư mục Resourcer/Mipmap
- Thư mục values: Thư mục này sẽ chứa một số file xml khác nhau, chẳng hạn như strings, colors, styles Sau đây là cấu trúc của thư mục values
Hình 1 6 Thư mục Resourcer/Values
Thư mục này sẽ chứa một file Manifest (AndroidManifest.xml) cho ứng dụng Android File manifest này sẽ chứa thông tin về ứng dụng, chẳng hạn như android version, access permissions, metadata, v.v và các component của ứng dụng File manifest sẽ hoạt động như một trung gian giữa hệ điều hành Android và ứng dụng
Sau đây là cấu trúc của thư mục mainfests
Trong Android, Gradle là công cụ build hệ thống và Gradle được tích hợp sẵn vào Android Studio, và được điều khiển một cách tự động thông qua Android Studio Trong gradle có build.gradle (Project) và build.gradle (Module) được sử dụng để build các cấu hình áp dụng cho tất cả các module ứng dụng hoặc dành riêng cho một mô-đun ứng dụng
Sau đây là cấu trúc của Gradle Script
Hình 1 8 Thư mục Gradle Scripts
• Sau đây là các file quan trọng cần để triển khai một ứng dụng trong android studio:
- File Android Layout (Activity_main.xml)
Giao diện người dùng của ứng dụng sẽ được thiết kế trong file này và nó sẽ có hai chế độ Design và Text Nó sẽ tồn tại trong thư mục layout Cấu trúc của file activity_main.xml trong chế độ Design như dưới đây:
Hình 1 9 Cấu trúc của file activity_main.xml
Ta có thể sửa đổi file activity_main.xml bằng cách sử dụng các chế độ Design và Text Nếu chúng ta chuyển sang chế độ Text, file activity_main.xml sẽ chứa code
- File Android Main Activity (MainActivity.java)
File main activity trong ứng dụng Android là MainActivity.java và nó nằm trong thư mục java File MainActivity.java sẽ chứa mã java để xử lý tất cả các activity liên quan đến ứng dụng
- File Android Manifest (AndroidManifest.xml)
Nói chung, ứng dụng sẽ chứa nhiều activity và cần xác định tất cả các activity trong file AndroidManifest.xml Trong file manifest, ta cần đề cập đến main activity cho ứng dụng bằng cách sử dụng các thuộc tính MAIN action và LAUNCHER category trong các intent filters Trong trường hợp nếu ta không đề cập đến MAIN action và LAUNCHER category cho main activity, biểu tượng ứng dụng sẽ không xuất hiện trong danh sách ứng dụng của màn hình chính
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
Khảo sát thực tế
2.1.1: Tình hình kinh doanh hiện nay
Hiện nay, do nhu cầu sử dụng vật chất của con người tăng cao nên nhu cầu mua bán của con người đang rất phát triển Trên khắp thế giới nói chung và Việt Nam nói riêng, sự cạnh tranh về kinh doanh luôn là một vấn đề nóng Dù là bán buôn, bán lẻ thì chúng ta vẫn luôn phải tìm cách để thu hút khách hàng Khách hàng ngày nay ngày càng thông thái, mua hàng dựa trên tiêu chí ngon, bổ, rẻ và bên cạnh đó song song phải có các dịch vụ quyền lợi dành cho khách hàng Để giải quyết vấn đề đó, người kinh doanh cần tìm nguồn hàng uy tín, chất lượng, giá tốt Về phía dịch vụ khách hàng, người bán hàng nên tạo ra các chương trình khuyến mại Để thu hút khách mua hàng nhiều lần thì cửa hàng nên có chính sách tích điểm cho khách sau mỗi lần mua hàng tại cửa hàng Từ đó phát triển ứng dụng tích điểm cho cửa hàng
2.1.2: Phân tích tính năng tích điểm
- Tích điểm cho khách hàng là hình thức quy đổi sau mỗi lần khách đến mua hàng thành đơn vị điểm của từng cửa hàng Khi đạt mức điểm nhất định khách hàng sẽ được hưởng các chính sách ưu đãi mà người mua bình thường không có Nhằm gia tăng doanh số bán hàng, tri ân khách hàng rất hiệu quả và đang được nhiều cửa hàng áp dụng thành công
- Tính năng tích điểm đóng vai rất quan trọng, giúp bạn giữ chân khách hàng và tìm kiếm được khách hàng thân thiết, cùng với đó thẻ tích điểm cũng giúp bạn tăng doanh thu, xây dựng được lòng tin với khách hàng và tạo thêm động lực mua hàng,
2.1.3: Lợi ích của việc tích điểm cho khách hàng
Giữa 2 cửa hàng đều bán sản phẩm giống nhau, một cửa hàng sử dụng phần mềm tích điểm cho khách và một cửa hàng không có bất kì chương trình tích điểm nào, thì cửa hàng có tích điểm có thể thu hút khách hàng hơn
Những lần mua hàng tiếp theo khách hàng cũng sẽ nhớ đến cửa hàng, doanh nghiệp của bạn nhiều hơn Từ đó, doanh nghiệp của bạn sẽ thúc đẩy việc bán hàng hiệu quả và giúp thu hẹp khoảng cách giữa người bán và người mua
- Tiếp cận khách hàng mới
Sử dụng tính năng tích điểm còn giúp tiếp cận và thu hút thêm khách hàng mới Vì ai cũng muốn được hưởng các chương trình khuyến mãi ưu đãi cũng như những quyền lợi dành riêng cho mình khi sử dụng bất kỳ một dịch vụ nào
Không chỉ giúp bạn tạo ra tập khách hàng thân thiết mà chương trình khuyến mãi tích điểm cũng giúp kéo về nhiều khách hàng mới Nếu chính sách quy đổi của bạn hấp dẫn, tỉ lệ tính điểm cao thì cũng chẳng khác làm mấy so với các tuyệt chuyên giảm giá khác
- Quản lý thông tin khách hàng dễ hơn
Khi bắt đầu tích điểm cho khách, bạn cần xin các thông tin cá nhân của khách hàng như tên, địa chỉ, số điện thoại, để làm tích điểm mới cho khách Đây sẽ là nguồn dữ liệu quan trọng của bạn, giúp bạn quản lý khách hàng và đồng thời bạn cũng biết được nhóm khách hàng của bạn thuộc đối tượng nào Bên cạnh đó, nếu bạn muốn tiếp cận khách hàng bằng các chương trình tiếp thị thì đây sẽ là giải pháp tối ưu cho bạn
- Xây dựng lòng trung thành và tạo nên khách hàng tiềm năng
Dù hệ thống tính điểm, tỉ lệ quy đổi khác nhau, nhưng nhìn chung loại thẻ nào cũng hoạt động dựa trên nguyên tắc khách phải đến cửa hàng mua hàng nhiều lần Đây là điều mà các chủ cửa hàng đều mong muốn vì lựa chọn các chi phí để các khách hàng cũ quay lại sẽ rẻ hơn chi phí để thu hút khách hàng mới và tăng doanh thu và lợi nhuận cho cửa hàng gấp nhiều lần Đây sẽ là tuyệt chiêu giúp bạn tìm kiếm những khách hàng trung thành và ổn định cho cửa hàng
- Giúp khách hàng tăng động lực mua hàng
Nếu đặt mình vào địa vị khách hàng, bạn sẽ cảm thấy rất vui khi mỗi lần mua sắm lại được tích một số điểm nhất định, sau vài lần thì số điểm tích lũy đã đủ để đổi được một món quà từ cửa hàng hoặc được giảm giá trực tiếp trên hóa đơn
Khách hàng sẽ hứng thú với việc mua hàng hơn nhờ vào tích điểm Họ sẽ mua nhiều hàng để gia tăng các điểm tích lũy đó và sử dụng các điểm tích lũy khi thấy cần thiết Tâm lý khách hàng đều muốn gia tăng số điểm khi mua sắm để làm tròn số điểm tích lũy và được trừ vào những hóa đơn lần tới Khách hàng sẽ xem số điểm tích lũy như một khoản tiết kiệm của mình Như vậy lợi ích của tích điểm khách hàng là tạo động lực để khách mua thêm hàng Điểm số tích lũy do mua sắm càng cao tỷ lệ thuận với doanh thu của doanh nghiệp
2.1.4: Top 5 ứng dụng tích điểm cho khách hàng hiện nay
Dưới đây là một số ứng dụng phần mềm tích điểm cho khách hàng được nhiều người tin dùng hiện nay
- Phần mềm quản lý bán hàng nhanh: Phần mềm Nhanh.vn là dự án được ra đời vào năm 2011 Vì là phần mềm quản lý bán hàng đa kênh nên Nhanh.vn có ưu điểm khá tiện dụng cho các chủ shop đang bán hàng trên nhiều kênh khác nhau Đặc biệt là phần mềm có tính năng tích lũy điểm cho khách hàng
- Phần mềm quản lý bán hàng Sapo: Một trong những phần mềm quản lý bán hàng đang được khá nhiều khách hàng biết đến chính là Sapo Với nền tảng quản lý và bán hàng tổng thể (Omnichannel) từ online đến offline, trong đó có tính năng tích điểm cho khách hàng
- Phần mềm quản lý bán hàng KiotViet: KiotViet xuất hiện khá sớm trên thị trường Phần mềm quản lý bán hàng KiotViet phát triển app tích điểm khách hàng giúp bạn theo dõi và quy đổi điểm thưởng, căn cứ trên số liệu mua hàng của khách hàng
- Phần mềm quản lý bán hàng SUNO.VN: Cũng như các phần mềm tương tự khác, SUNO.vn hoạt động trên nền web Có thể quản lý mọi hoạt động bán hàng thông qua mọi thiết bị thông minh, có tích hợp tính năng tích điểm cho khách hàng
Phân tích yêu cầu đề tài
2.2.1: Tóm tắt yêu cầu của hệ thống mà dự án sẽ thực hiện
- Là một ứng dụng với chức năng chính là cộng điểm cho khách hàng sau mỗi lần mua hàng tại cửa hàng theo phần trăm tổng hóa đơn
- Là một ứng dựng online, thường xuyên cập nhật các sản phẩm giảm giá của cửa hàng để thu hút khách hàng
- Khách hàng có thể truy cập vào ứng dụng để xem các chương trình khuyến mại của cửa hàng và xem tổng điểm đang có của mình
- Khách hàng có thể truy cập ứng dụng để thay đổi thông tin cá nhân của mình
- Người bán hàng có thể thêm mới, sửa thông tin, xóa khách hàng và sản phẩm, tìm kiếm khách hàng
- Người bán hàng có thể cộng trừ điểm cho khách hàng
2.2.2: Phạm vi dự án được ứng dụng
Chức năng của hệ thống
2.3.1: Chức năng quản lý khách hàng
- Thêm mới khách hàng: khi khách hàng tới mua hàng, xin thông tin cần thiết để tạo tài khoản cho khách hàng
- Sửa thông tin khách hàng: Khi khách hàng thay đổi thông tin cá nhân, hỗ trợ khách hàng cập nhật lại thông tin
- Xóa khách hàng: Tùy vào cách quản lý của cửa hàng, có thể sử dụng chức năng xóa tài khoản khách hàng khi cần thiết
- Tìm kiếm khách hàng: Khi tích điểm cho khách hàng, tìm kiếm tài khoản khách hàng thông qua số điện thoại của khách
2.3.2: Chức năng quản lý sản phẩm
- Thêm mới sản phẩm: Thêm mới sản phẩm bằng cách thêm thông tin, tên, hình ảnh, giá trước và sau giảm, thời gian áp dụng khuyến mại
- Sửa thông tin sản phẩm: Nếu cửa hàng nhập nhầm thông tin có thể chỉnh sửa lại, hoặc trong thời gian khuyến mại nếu muốn thay đổi thời gian, giá tiền có thể chỉnh sửa lại thông tin sản phẩm
- Xóa sản phẩm: Khi sản phẩm khuyến mại hết hoặc hết thời gian khuyến mại, người bán sẽ chủ động xóa sản phẩm đó trên ứng dụng
- Cộng trừ điểm cho khách theo cơ chế của của hàng: Dựa vào tổng hóa đơn rồi cộng điểm cho khách theo cơ chế của cửa hàng Trừ điểm cho khách thì trực tiếp quy ra tiền rồi trừ vào hóa đơn cho khách.
Giao diện của ứng dụng
- Giao diện phải bắt mắt, dễ dàng sử dụng
- Màu sắc hài hòa làm nổi bật hình ảnh sản phẩm, font chữ phải thống nhất, tiện lợi khi sử dụng
- Sản phẩm của cửa hàng phải là sản phẩm đang có tại cửa hàng, có thể là sản phẩm mới ra mắt hoặc sản phẩm bán chạy số lượng
2.4.2: Giao diện người quản trị
- Giao diện thân thiện, dễ dàng quản lý dữ liệu
- Phải được bảo vệ bằng user và password riêng của admin.
Phân tích thiết kế với uml
Bảng 2 1 Danh sách các Actor
Người quản trị là người có toàn quyền tương tác với hệ thống, quyền sử dụng tất cả các chức năng, điều khiển và kiểm soát mọi hoạt động của ứng dụng
Người dùng ở đây là những người đăng nhập tài khoản với tư cách khách hàng Người dùng chỉ có một số quyền nhất định đối với ứng dụng
Bảng 2 2 Danh sách các Usecase
1 Đăng nhập Usecase này mô tả chức năng đăng nhập vào hệ thống của người dùng hoặc Admin
2 Đăng kí Usecase này mô tả chức năng đăng kí tài khoản cho khách hàng của Admin
3 Tích điểm Usecase này mô tả chức năng cộng trừ điểm cho khách hành của Admin
Usecase này mô tả chức năng quản lý thông tin khách hàng như thêm, sửa, xóa khách hàng của Admin
5 Quản lý thông tin sản phẩm
Usecase này mô tả chức năng quản lý thông tin sản phẩm như thêm, sửa, xóa sản phẩm của Admin
6 Tìm kiếm Usecase này mô tả chức năng tìm kiếm khách hàng của Admin
7 Xem điểm Usecase này mô tả chức năng xem tổng số điểm đang có của khách hàng
8 Quản lý thông tin cá nhân
Usecase này mô tả chức năng sửa, xóa thông tin cá nhân của khách hàng
9 Xem sản phẩm Usecase này mô tả chức năng xem thông tin sản phẩm của khách hàng
Biểu đồ usecase mức tổng quát
2.6.1: Biểu đồ usecase tổng quát
Hình 2 1 Biểu đồ Usecase tổng quát
2.6.2: Biểu đồ usecase khách hàng
Hình 2 2 Biểu đồ Usecase khách hàng
Hình 2 3 Biểu đồ Usecase Admin
Đặc tả usecase
2.7.1 Đặc tả Usecase đăng nhập (khách hàng)
Hình 2 4 Usecase đăng nhập Tóm tắt
Actor khách hàng là người sử dụng Usecase này Usecase này được sử dụng để thực hiện chức năng đăng nhập vào tài khoản của khách hàng Sau khi đăng nhập vào ứng dụng, lúc đó Người dùng mới có thể thực hiện được các chức năng khác, như là: xem điểm, sửa đổi thông tin cá nhân, thay đổi mật khẩu
Dòng sự kiện a Dòng sự kiện chính
(1) Khách hàng chọn chức năng đăng nhập từ ứng dụng
(2) Người dùng nhập tài khoản của mình bao gồm tên đăng nhập và mật khẩu
(3) Hệ thống xác nhận thông tin đăng nhập
(7) Kết thúc Use Case b Các dòng sự kiện khác
(1) Người dùng nhập sai thông tin đăng nhập
(2) Hệ thống từ chối đăng nhập, hiển thị thông báo và trang đăng nhập (3) Kết thúc Use Case
Các yêu cầu đặc biệt
Không có yêu cầu đặc biệt
Trạng thái hệ thống khi bắt đầu thực hiện Use Case
Không đòi hỏi bất cứ điều kiện nào trước đó
Trạng thái hệ thống sau khi thực hiện Use Case
* Trường hợp đăng nhập thành công: hệ thống hiển thị trang chủ của hệ thống
Sau khi đăng nhập thành công, Người dùng có thể thực hiện các chức năng tương ứng với quyền đăng nhập của mình
* Trường hợp đăng nhập thất bại: Hệ thống đưa ra thông báo đăng nhập không thành công và vẫn hiển thị trang đăng nhập
2.7.2 Đặc tả Usecase đăng kí tài khoản
Hình 2 5 Usecase đăng kí Tóm tắt
Actor Admin là người sử dụng Use Case này Use Case này được sử dụng để thực hiện chức năng đăng kí tài khoản cho khách hàng Sau khi đăng kí tài khoản, khách hàng có thể đăng nhập vào ứng dụng
Dòng sự kiện a Dòng sự kiện chính
(1) Admin chọn chức năng thêm tài khoản khách hàng
(2) Trang chủ sẽ mở đến trang đăng kí
(3) Admin nhập đầy đủ thông tin tài khoản và thông tin cá nhân
(6) Kết thúc Use Case b Các dòng sự kiện khác
(1) Admin nhập thiếu thông tin khách hoặc số điện thoại đã tồn tại
(2) Hệ thống thông báo lỗi và yêu cầu nhập lại
Các yêu cầu đặc biệt
Không có yêu cầu đặc biệt
Trạng thái hệ thống khi bắt đầu thực hiện Use Case
Không đòi hỏi bất cứ điều kiện nào trước đó
Trạng thái hệ thống sau khi thực hiện Use Case
Trường hợp đăng kí thành công: hệ thống hiển thị thông báo đăng ký thành công
Trường hợp đăng kí thất bại: Hệ thống đưa ra vị trí thông tin cần sửa hoặc bổ sung
2.7.3 Đặc tả Usecase tích điểm
Hình 2 6 Usecase tích điểm Tóm tắt
Actor Admin là người sử dụng Usecase này Usecase này được sử dụng để thực hiện chức năng thay đổi điểm cho khách hàng Admin thực hiện cộng điểm cho khách hàng sau khi mua hàng
Dòng sự kiện a Dòng sự kiện chính
(1) Admin truy cập vào tài khoản khách hàng
(2) Trang chủ sẽ mở đến trang chứa thông tin khách hàng
(3) Admin kích vào thêm điểm sau đó trang sẽ hiện ô nhập số điểm
(4) Admin nhập tổng hóa đơn, hệ thống sẽ tự đổi thành điểm theo chiết khấu của cửa hàng
(6) Hệ thống xác nhận thêm điểm, hiển thị thông báo thành công
(7) Kết thúc Use Case b Các dòng sự kiện khác
Các yêu cầu đặc biệt
Không có yêu cầu đặc biệt
Trạng thái hệ thống khi bắt đầu thực hiện Use Case
Không đòi hỏi bất cứ điều kiện nào trước đó
Trạng thái hệ thống sau khi thực hiện Use Case Điểm của khách hàng sẽ tăng thêm
2.7.4 Đặc tả Usecase đổi điểm
Hình 2 7 Usecase tích điểm Tóm tắt
Actor Admin là người sử dụng Usecase này Usecase này được sử dụng để thực hiện chức năng thay đổi điểm cho khách hàng Admin thực hiện trừ điểm cho khách hàng khi khách hàng muốn quy đổi điểm sang tiền Sau đó giảm tiền trực tiếp vào hóa đơn cho khách hàng
Dòng sự kiện a Dòng sự kiện chính
(1) Admin truy cập vào tài khoản khách hàng
(2) Trang chủ sẽ mở đến trang chứa thông tin khách hàng
(3) Admin kích vào đổi điểm sau đó trang sẽ hiện ô đổi điểm
(4) Admin nhập số điểm cần đổi
(6) Hệ thống xác nhận đổi điểm, hiển thị thông báo thành công
(7) Kết thúc Use Case b Các dòng sự kiện khác
Dòng sự kiện thứ nhất
(1) Admin chưa nhập điểm cần đổi
Dòng sự kiện thứ hai
(1) Admin bấm hủy yêu cầu đổi điểm
(2) Hệ thống trở lại trang tài khoản khách hàng
Các yêu cầu đặc biệt
Không có yêu cầu đặc biệt
Trạng thái hệ thống khi bắt đầu thực hiện Use Case
Không đòi hỏi bất cứ điều kiện nào trước đó
Trạng thái hệ thống sau khi thực hiện Use Case Điểm của khách hàng sẽ tăng thêm
2.7.5 Đặc tả Usecase quản lý khách hàng
Hình 2 8 Usecase quản lý khách hàng Tóm tắt
Actor Admin là người sử dụng Usecase này Usecase này được sử dụng để thực hiện chức năng quản lý thông tin khách hàng Admin có thể thêm mới khách hàng, sửa thông tin khách hàng và xóa tài khoản khách hàng
Dòng sự kiện a Dòng sự kiện chính
(1) Admin chọn chức năng thêm khách hàng
(2) Hệ thống hiển thị trang đăng ký, Admin tiến hàng thêm tài khoản khách hàng mới
(3) Admin truy cập vào tài khoản khách hàng
(4) Admin chọn chức năng sửa thông tin
(5) Admin tiến hành sửa thông tin cho khách hàng rồi bấm lưu
(6) Hệ thống xác nhận thông tin và lưu lại
(7) Admin bấm giữ vào tài khoản khách hàng
(8) Hệ thống thông báo hộp thoại xác nhận xóa
(9) Admin đồng ý xóa hoặc hủy yêu cầu xóa
(10) Hệ thống xác nhận thông tin và xóa bỏ tài khoản khách hàng
(11) Kết thúc Use Case b Các dòng sự kiện khác
* Dòng sự kiện thứ nhất
(1) Người dùng hủy yêu cầu xóa
(2) Hệ thống hủy việc xóa và hiển thị trang thông tin khách hàng
* Dòng sự kiện thứ hai
(1) Người dùng nhập thiếu thông tin khách hàng
(2) Hệ thống đưa ra thông báo và yêu cầu nhập đủ
Các yêu cầu đặc biệt
Không có yêu cầu đặc biệt
Trạng thái hệ thống khi bắt đầu thực hiện Use Case
Không đòi hỏi bất cứ điều kiện nào trước đó
Trạng thái hệ thống sau khi thực hiện Use Case
* Trường hợp thêm mới khách hàng: Hệ thống sẽ cập nhật thông tin tài khoản
* Trường hợp sửa thông tin khách hàng: Hệ thống sẽ cập nhật lại thông tin khách hàng sau khi chỉnh sửa
* Trường hợp xóa khách hàng: Hệ thống sẽ xóa vĩnh viễn toàn bộ thông tin của tài khoản đã xóa
2.7.6 Đặc tả Usecase quản lý thông tin sản phẩm
Hình 2 8 Usecase quản lý thông tin tài khoản Tóm tắt
Actor Admin là người sử dụng Usecase này Usecase này được sử dụng để thực hiện chức năng quản lý thông tin tài khoản Admin thực hiện thêm mới sản phẩm, sửa thông tin sản phẩm và xóa sản phẩm
Dòng sự kiện a Dòng sự kiện chính
(1) Admin bấm vào thêm sản phẩm mới
(2) Hệ thống mở trang thêm sản phẩm mới, Admin tiến hành nhập thông tin sản phẩm cần thêm
(3) Admin đồng ý thêm sản phẩm mới
(4) Hệ thống xác nhận thông tin và lưu thông tin sản phẩm mới
(5) Admin truy cập trang sản phẩm sau đó chọn sản phẩm cần sửa thông tin 6) Hệ thống mở trang thông tin sản phẩm, Admin tiến hàng thay đổi thông tin
(7) Admin đống ý lưu thông tin
(8) Hệ thống mở xác nhận và cập nhật thông tin sản phẩm
(9) Admin truy cập trang sản phẩm sau đó chọn sản phẩm cần xóa
(10) Hệ thống mở trang thông tin sản phẩm, Admin bấm chọn xóa sản phẩm
(11) Hệ thống thông báo hộp thoại xác nhận xóa sản phẩm hoặc hủy yêu cầu xóa
(12) Hệ thống thông báo hộp thoại xác nhận xóa sản phẩm hoặc hủy yêu cầu xóa
(13) Admin chọn xóa sản phẩm hoặc hủy yêu cầu xóa
(14) Hệ thống xác nhận thông tin và thông báo thành công
(15) Kết thúc Use Case b Các dòng sự kiện khác
* Dòng sự kiện thứ nhất
(1) Người dùng hủy yêu cầu xóa
(2) Hệ thống hủy việc xóa và hiển thị trang thông tin sản phẩm
* Dòng sự kiện thứ hai
(1) Người dùng nhập thiếu thông tin sản phẩm
(2) Hệ thống đưa ra thông báo và yêu cầu nhập đủ
Các yêu cầu đặc biệt
Không có yêu cầu đặc biệt
Trạng thái hệ thống khi bắt đầu thực hiện Use Case
Không đòi hỏi bất cứ điều kiện nào trước đó
Trạng thái hệ thống sau khi thực hiện Use Case
* Trường hợp thêm sản phẩm: Hệ thống tiến hành tiếp nhận thông tin và cập nhật sản phẩm mới
* Trường hợp sửa thông tin: Hệ thống cập nhật lại thông tin sản phẩm sau khi sửa
* Trường hợp xóa sản phẩm: Hệ thống cập nhật lại thông tin và xóa sản phẩm khỏi hệ thống
2.7.7 Đặc tả Usecase tìm kiếm
Actor Admin là người sử dụng Usecase này Usecase này được sử dụng để thực hiện chức năng tìm kiếm tài khoản khách hàng Với chức năng này, Admin có thể tìm kiếm tài khoản khách hàng thông qua số điện thoại của khách
Dòng sự kiện a Dòng sự kiện chính
(1) Người dùng chọn chức năng tìm kiếm
(2) Người dùng nhập số điện thoại khách hàng cần tìm
(4) Hệ thống xác nhận thông tin và thực hiện tìm kiếm
(5) Hệ thống trả về thông tin tìm kiếm
(6) Kết thúc Use Case b Các dòng sự kiện khác
(1) Khi số điện thoại tìm kiếm không có trong hệ thống
(2) Hệ thống thông báo lỗi và xuất hiện trang thêm mới khách hàng
(3) Admin chấp nhận thêm mới khách hàng, hệ thống chuyển qua trang thêm mới khách hàng
Các yêu cầu đặc biệt
Không có yêu cầu nào đặc biệt
Trạng thái hệ thống khi bắt đầu thực hiện Use Case
Không đòi hỏi bất cứ điều kiện nào trước đó
Trạng thái hệ thống sau khi thực hiện Use Case
* Trường hợp thành công: hệ thống hiển thị thông tin tài khoản khách hàng
* Trường hợp thất bại: Hệ thống đưa ra thông báo lỗi và chuyển sang trang thêm mới khách hàng
2.7.8 Đặc tả Usecase xem điểm
Hình 2 10 Usecase xem điểm Tóm tắt
Actor khách hàng là người sử dụng Usecase này Usecase này được sử dụng để thực hiện chức năng xem điểm của khách hàng
Dòng sự kiện a Dòng sự kiện chính
(1) Khách hàng chọn vào thông tin cá nhân
(2) Hệ thống hiển thị trang thông tin cá nhân
(3) Trong trang này, khách hàng có thể xem được số điểm đã tích lũy của mình
(7) Kết thúc Use Case b Các dòng sự kiện khác
Các yêu cầu đặc biệt
Không có yêu cầu đặc biệt
Trạng thái hệ thống khi bắt đầu thực hiện Use Case
Không đòi hỏi bất cứ điều kiện nào trước đó
Trạng thái hệ thống sau khi thực hiện Use Case
Khách hàng xem được tổng số điểm hiện có của mình
2.7.9 Đặc tả Usecase quản lý thông tin cá nhân
Hình 2 11 Usecase quản lý thông tin cá nhân
Actor khách hàng là người sử dụng Usecase này Usecase này được sử dụng để thực hiện chức năng quản lý thông tin cá nhân của khách hàng Sau khi đăng nhập vào hệ thống, khách hàng có thể sửa thông tin cá nhân hoặc thay đổi mật khẩu
Dòng sự kiện a Dòng sự kiện chính
(1) Khách hàng truy cập vào trang thông tin cá nhân
(2) Khách hàng chọn sửa thông tin, sau đó tiến hành thay đổi thông tin cần sửa
(3) Khách xác nhận lưu thông tin
(4) Hệ thống lưu thông tin và hiển thị thông báo
(5) Khách hàng chọn thay đổi mật khẩu
(6) Khách tiến hàng nhập mật khẩu cũ, mật khẩu mới và nhập lại mật khẩu mới
(7) Khách hàng xác nhận lưu mật khẩu mới
(8) Kết thúc Use Case b Các dòng sự kiện khác
(1) Khách nhập thiếu thông tin khi thay đổi mật khẩu
(2) Hệ thống thông báo và yêu cầu nhập đầy đủ thông tin
Các yêu cầu đặc biệt
Không có yêu cầu đặc biệt
Trạng thái hệ thống khi bắt đầu thực hiện Use Case
Không đòi hỏi bất cứ điều kiện nào trước đó
Trạng thái hệ thống sau khi thực hiện Use Case
* Trường hợp khách hàng sửa thông tin: Hệ thống ghi nhận thông tin, tiến hành cập nhật lai dữ liệu và đưa ra thông báo thành công
* Trường hợp khách hàng thay đổi mật khẩu: Hệ thống lưu thông tin và đưa ra thông báo
2.7.10 Đặc tả Usecase xem thông tin sản phẩm
Hình 2 12 Usecase xem thông tin sản phẩm Tóm tắt
Actor khách hàng là người sử dụng Usecase này Usecase này được sử dụng để thực hiện chức năng xem thông tin sản phẩm của khách hàng
Dòng sự kiện a Dòng sự kiện chính
(1) Khách hàng truy cập trang thông tin sản phẩm
(2) Hệ thống hiển thị trang thông tin các sản phẩm
(3) Kết thúc Use Case b Các dòng sự kiện khác
* Dòng sự kiện thứ nhất
(1) Admin hủy yêu cầu nhập hàng
(2) Hệ thống bỏ qua trang nhập hàng, trở lại trang chủ quản trị
Các yêu cầu đặc biệt
Không có yêu cầu đặc biệt
Trạng thái hệ thống khi bắt đầu thực hiện Use Case
Không đòi hỏi bất cứ điều kiện nào trước đó
Trạng thái hệ thống sau khi thực hiện Use Case
Hệ thống hiển thị trang thông tin khách sản phẩm.
Biểu đồ tuần tự
Hình 2 13 Biểu đồ tuần tự chức năng đăng kí
Hình 2 14 Biểu đồ tuần tự chức năng đăng nhập
Hình 2 15 Biểu đồ tuần tự chức năng tích điểm
Hình 2 16 Biểu đồ tuần tự chức năng đổi điểm
2.8.5: Chức năng thêm mới khách hàng
Hình 2 17 Biểu đồ tuần tự chức năng thêm mới khách hàng
2.8.6: Chức năng sửa thông tin khách hàng
Hình 2 18 Biểu đồ tuần tự chức năng sửa thông tin khách hàng
2.8.7: Chức năng xóa khách hàng
Hình 2 19 Biểu đồ tuần tự chức năng xóa khách hàng
2.8.8: Chức năng thêm mới sản phẩm
Hình 2 20 Biểu đồ tuần tự chức năng thêm sản phẩm mới
2.8.9: Chức năng sửa thông tin sản phẩm
Hình 2 21 Biểu đồ tuần tự chức năng chỉnh sửa thông tin sản phẩm
2.8.10: Chức năng xóa sản phẩm
Hình 2 22 Biểu đồ tuần tự chức năng xóa sản phẩm
Hình 2 23 Biểu đồ tuần tự chức năng tìm Kiếm
2.8.12: Chức năng sửa thông tin các nhân
Hình 2 24 Biểu đồ tuần tự chức năng chỉnh sửa thông tin cá nhân
2.8.13: Chức năng đổi mật khẩu
Hình 2 25 Biểu đồ tuần tự chức năng đổi mật khẩu
Thiết kế cơ sở dữ liệu
Bảng 2 3 Bảng chức năng của các yêu cầu
STT TÊN YÊU CẦU MÔ TẢ YÊU CẦU
Tích điểm Tích điểm theo phần trăm hóa đơn cho khách sau khi khách mua hàng
2 Đổi điểm Đổi từ điểm sang tiền mặt rồi trừ trực tiếp vào hóa đơn cho khách hàng
3 Thêm sản phẩm Thêm sản phẩm khuyến mại mới lên hệ thống
4 Sửa sản phẩm Sửa thông tin sản phẩm khuyến mại
Xóa sản phẩm Xóa sản phẩm khuyến mại khi hết chương trình khuyến mại
6 Thêm khách hang Thêm tài khoản khách hàng mới
7 Sửa khách hàng Sửa thông tin khách hàng
8 Xóa khách hàng Xóa tài khoản khách hàng
9 Tìm kiếm Tìm kiếm tài khoản khách hàng bằng số điện thoại
10 Sửa thông tin cá nhân
Khách hàng tự sửa thông tin cá nhân của mình
11 Đổi mật khẩu Khách hàng tự thay đổi mật khẩu tài khoản của mình
Bảng 2 4 Bảng phi chức năng của các yêu cầu
STT TÊN YÊU CẦU MÔ TẢ YÊU CẦU
1 Giao diện Giao diện phải bắt mắt, khoa học, dễ sử dụng cho người dùng
2 Tốc độ xử lý Hệ thống xử lý phải nhanh chóng và chính xác
3 Bảo mật Tính bảo mật và độ an toàn cao
4 Tương thích Tương thích với đa phần các trình duyệt website hiện tại
2.9.2: Sơ đồ phân cấp chức năng
2.9.3: Thiết kế cơ sở dữ liệu
Bảng 2 5 Bảng cơ sở dữ liệu Admin
1 Mk_ad int Khóa chính Mật khẩu tài khoản
2 Ten_ad Varchar Not null Tên admin
3 Sdt_ad Int Not null Khóa chính
4 Dia_chi Varchar Not null Địa chỉ admin
Bảng 2 6 Bảng cơ sở dữ liệu khách hàng
Tích điểm Đổi điểm Sản phẩm Khách hàng
Sửa thông tin cá nhân Xem sản phẩm
Hình 2 26 Sơ đồ phân cấp chức năng
1 Mk_kh int Khóa chính Mật khẩu tài khoản khách hàng
2 Ten_kh Varchar Not null Tên khách hàng
3 Sdt Int Not null Khóa chính
4 Hoa_don int Not null Tổng hóa đơn khách hàng
5 Dia_chi Varchar Not null Địa chỉ admin
Bảng 2 7 Bảng cở sở dữ liệu sản phẩm
1 Ten-sp Char Not null Tên sản phẩm
2 Gia_spbd int Not null Giá sản phẩm ban đầu
3 Gia_spsg int Not null Giá sản phẩm sau giảm
4 Ngay_bd datetime Not null Ngày bắt đầu giảm giá
5 Ngay_kt datetime Not null Ngày kết thúc giảm giá
XÂY DỰNG ỨNG DỤNG
Các class được triển khai trong ứng dụng
3.1.1 Class thiết kế giao diện
- activity_home.xml: Thiết kế giao diện hiển thị trang chủ của Admin
- bottom_menu_admin.xml: Thiết kế menu cho trang Admin
- item_productsale.xml: Thiết kế giao diện hiển thị danh sách sản phẩm
- fragment_detail_productsale.xml: Thiết kế giao diện hiển thị thông tin sản phẩm
- fragment_add_productsale.xml: Thiết kế giao diện chức năng thêm sản phẩm
- item_customer.xml: Thiết kế giao diện hiển thị tài khoản khách hàng
- fragment_detail_customer.xml: Thiết kế giao diện hiển thị thông tin khách hàng
- fragment_home.xml: Thiết kế giao diện hiển thị danh sách khách hàng
- fragment_all_customer.xml: Thiết kế giao diện hiển thị trang quản lý tài khoản khách hàng
- fragment_add_customer.xml: Thiết kế giao diện chức năng thêm khách hàng
3.1.2 Class xử lý các sự kiện
- HomeActivity: Xử lý các sự kiện trong trang chủ Admin
- DetailProductSaleFlagment: Xử lý các sự kiện trong trang thông tin sản phẩm
- AddProductSaleFlagment: Xử lý các sự kiện trong trang thêm sản phẩm mới
- AdapterProductSale: Xử lý các sự kiện trong quản lý sản phẩm
- HomeFrafment: Xử lý sự kiện trong hiển thị danh sách khách hàng
- DetailCustomerFlagment: Xử lý các sự kiện quản lý tài khoản khách hàng
- AddCustomerFlagment: Xử lý các sự kiện thêm khách hàng mới
- AdapterCustomer: Xử lý thêm một vài sự kiện trong quản lý khách hàng
Thiết kế các giao diện của ứng dụng
Hình 3 1 Giao diện đăng nhập3.2.2 Giao diện trang chủ của khách hàng
3.2.2 Giao diện trang chủ khách hàng
Hình 3 2 Giao diện trang chủ khách hàng
3.2.3 Giao diện tài khoản khách hàng
Hình 3 3 Giao diện tài khoản khách hàng
3.2.4 Giao diện trang chủ của Admin
Hình 3 4 Giao diện trang chủ Admin
3.2.5 Giao diện thêm mới khách hàng
Hình 3 5 Giao diện thêm mới khách hàng
3.2.6 Giao diện thêm mới sản phẩm
Hình 3 6 Giao diện thêm mới sản phẩm
3.2.7 Giao diện thông tin khách hàng của Admin
Hình 3 7 Giao diện thông tin khách hàng của Admin
3.2.8 Giao diện sửa thông tin sản phẩm
Hình 3 8 Giao diện sửa thông tin sản phẩm
Triển khai chương trình
- Đăng nhập tài khoản khách hàng:
Khi khách hàng đăng nhập vào tài khoản của mình, nếu khách nhập mật khẩu hoặc số điện thoại sai thì hệ thống sẽ báo lỗi Nếu khách hàng nhập đúng thông tin tài khoản thì hệ thống sẽ chuyển đến trang chủ của khách hàng như hình bên dưới:
Hình 4 1 Đăng nhập tài khoản khách hàng
Khi đăng nhập được vào hệ thống thì khách hàng có thể xem thông tin sản phẩm khuyễn mại và thực hiện một số thao tác với tài khoản của mình
- Khách hàng chỉnh sửa thông tin cá nhân:
Khách hàng bấm vào trang cá nhân rồi bấm vào sửa thông tin, sau khi chỉnh sử thì bấm lưu Hệ thống sẽ cập nhật lại thông tin đã chỉnh sửa của khách và thông báo cập nhật thành công
Hình 4 2 Khách hàng sửa thông tin cá nhân
- Khách hàng đổi mật khẩu:
Khách hàng bấm vào trang cá nhân rồi bấm vào đổi mật khẩu Nếu khách hàng nhập thiếu mật khẩu hoặc sai mật khẩu cũ hoặc hai lần nhập mật khẩu mới không trùng nhau thì hệ thống sẽ thông báo lỗi Khi khách hàng nhập đúng thông tin thì hệ thống cập nhật lại thông tin và thông báo thành công
Hình 4 3 Khách hàng đổi mật khẩu
- Khách hàng đăng xuất tài khoản:
Khi khách hàng bấm vào đăng xuất, hệ thống sẽ thông báo xác nhận yêu cầu, nếu khách bấm hủy thì hệ thống vẫn ở lại trang cá nhân của khách Nếu khách bấm xác nhận hủy thì hệ thống chuyển về trang đăng nhập
Hình 4 4 Đăng xuất tài khoản
- Admin thêm sản phẩm mới:
Khi Admin thêm sản phẩm mới, nếu thông tin đưa vào rơi vào các trường hợp sau đây thì hệ thống sẽ báo lỗi: nhập thiếu thông tin, nhập giá sau giảm lớn hơn giá trước giảm giá, nhập ngày hết hạn bé hơn ngày bắt đầu khuyến mại Sau khi Admin nhập đúng và đủ thông tin thì hệ thống sẽ cập nhật sản phẩm lên hệ thống và thông báo thành công
Khi Admin thêm khách hàng mới, nếu nhập thiếu thông tin, trùng số điện thoại đã có trên hệ thống hoặc nhập hai lận mật khẩu không trùng nhau thì hệ thống thông báo lỗi Sau khi Admin nhập đúng và đủ thông tin thì hệ thống sẽ cập nhật khách và thông báo thành công.
Hình 4 6 Thêm khách hàng mớ
Admin bấm vào sản phẩm sau đó bấm vào xóa sản phẩm, hệ thống sẽ thông báo xác nhận yêu cầu Nếu Admin bấm hủy, hệ thống vẫn ở lại trang sản phẩm đó Nếu Admin bấm vào xóa thì hệ thống sẽ cập nhật thông tin và thông báo thành công
Admin bấm vào sản phẩm sau đó bấm vào sửa sản phẩm giảm giá Sau khi sửa xong thì bấm lưu, hệ thống cập nhật lại thông tin rồi thông báo thành công
Admin bấm vào trang quản lý khách hàng sau đó bấm giữ vào tài khoản khách hàng muốn xóa Hệ thống thông báo xác nhận xóa, nếu Admin bấm hủy thì hệ thống ở lại trang quản lý khách hàng, nếu bấm vào đồng ý thì hệ thống sẽ cập nhật thông tin và thông báo thành công
- Sửa thông tin khách hàng
Admin bấm vào trang quản lý khách hàng rồi bấm chọn vào tài khoản khách cần sửa Hệ thống hiển thị trang thông tin khách hàng đó, sau khi sửa xong thông tin khách hàng thì Admin bấm lưu Hệ thống cập nhật lại thông tin rồi thông báo thành công
Hình 4 10 Sửa thông tin khách hàng
Admin bấm khách hàng cần đổi quà sau đó bấm vào đổi quà Hệ thống hiện thị trang nhập số điểm muốn đổi thì nhập số điểm cần đổi Nếu nhập số điểm cao hơn số điểm trong tài khoản thì hệ thống báo lỗi Ngược lại hệ thống sẽ cập nhập lại số điểm của khách hàng và thông báo thành công
Admin bấm vào khách hàng cần thêm điểm rồi bấm vào thêm điểm Hệ thống hiện thị trang nhập điểm sau đó nhập số điểm cần thêm Sau đó bấm lưu, hệ thống cập thông tin rồ thông báo thành công
Admin bấm vào biểu tượng tìm kiếm trong trang quản lý khách hàng sau đó nhập số điện thoại khách hàng cần tìm Nếu nhập số chưa có trong hệ thống thì hệ thống sẽ hiển thị gợi ý thêm khách hàng mới Ngược lại sẽ tìm được tài khoản của khách thông qua số điện thoại
Hình 4 13 Tìm khiếm khách hàng