GIỚ I THI ỆU ĐỀ TÀI
Lý do ch ọn đồ án
Dịch bệnh COVID-19 đã quay trở lại Việt Nam vào những ngày đầu tháng 7 năm
Năm 2021, nhiều địa phương đã thực hiện Chỉ thị số 16/CT-TTg, yêu cầu tạm dừng các hoạt động kinh doanh không cần thiết nhằm nhanh chóng kiểm soát dịch bệnh COVID-19, với mục tiêu sớm đưa cuộc sống trở lại bình thường.
Nhiều địa phương đã điều chỉnh biện pháp phòng chống dịch theo Chỉ thị số 15/CT-TTg, cho phép một số hoạt động kinh doanh, bao gồm dịch vụ cắt tóc và gội đầu, hoạt động trở lại với điều kiện tuân thủ quy tắc 5K và giữ khoảng cách Tuy nhiên, việc khách đến salon quá đông dẫn đến tình trạng phải quay về, gây phiền toái cho khách hàng Trước đây, việc chờ đợi tại salon là điều bình thường, nhưng hiện tại chỉ có chuỗi salon 30Shine có ứng dụng đặt lịch hẹn cắt tóc trên Android và website, trong khi các salon khác gặp khó khăn trong việc quản lý lịch hẹn khi khách hàng phải liên hệ trực tiếp Để giải quyết vấn đề này, đồ án sẽ xây dựng ứng dụng đặt lịch cắt tóc.
Ứng dụng "e-Hair" trên hệ điều hành Android giúp khách hàng đặt lịch cắt tóc nhanh chóng tại nhà mà không phải chờ đợi lâu, đồng thời cho phép chủ salon quản lý số lượng lịch hẹn dễ dàng Đây là cầu nối hiệu quả giữa khách hàng và cửa hàng cắt tóc Để phát triển ứng dụng này, đồ án sử dụng Android Studio với ngôn ngữ lập trình Java và Firebase Realtime Database cho cơ sở dữ liệu đám mây, hỗ trợ đa nền tảng như Android, IOS và Web Ngoài ra, SQLite sẽ được áp dụng cho lưu trữ offline, và ứng dụng sẽ được xây dựng trên điện thoại Huawei Nova 2i thông qua cáp USB.
M ục tiêu đồ án
Dựa trên kiến thức từ các môn chuyên ngành Hệ thống thông tin doanh nghiệp và việc tự nghiên cứu thêm, đồ án xây dựng ứng dụng đặt lịch hẹn cắt tóc "e-Hair" hướng tới hai mục tiêu chính: cải thiện trải nghiệm người dùng trong việc đặt lịch hẹn và tối ưu hóa quy trình quản lý cho các tiệm cắt tóc.
- Biết tổng quan về Android và kỹ thuật lập trình Android.
- Xây dựng được ứng dụng phần mềm chạy trên nền tảng hệđiều hành Android.
TỔ NG QUAN ANDROID VÀ XÂY D Ự NG Ứ NG D Ụ NG
T ổ ng quan v ề android
Android là một hệ điều hành di động dựa trên nền tảng Linux, được phát triển bởi Google và trở thành sản phẩm chiến lược của tổ chức Open Handset Alliance (OHA).
Android là một sản phẩm mã nguồn mở, cho phép các nhà phát triển điều khiển thiết bị di động cài đặt hệ điều hành này thông qua các đoạn mã lệnh viết bằng ngôn ngữ Java.
Android lần đầu ra mắt vào năm 2008 với chiếc điện thoại HTC Dream G1 tại Mỹ Mặc dù còn nhiều thiếu sót, nhưng phiên bản này đã đặt nền móng cho những tính năng đặc trưng của Android hiện nay Google đã liên tục cập nhật hệ điều hành này, và mới đây, vào ngày 20/10/2021, công ty đã chính thức phát hành phiên bản Android 12 cho các smartphone sử dụng giao diện gốc như Pixel, sau thời gian thử nghiệm Android 12 Beta.
Giao diện Android được thiết kế dựa trên nguyên tắc tác động trực tiếp, cho phép người dùng sử dụng các thao tác cảm ứng như vuốt, chạm, kéo dãn và thu lại để tương tác với các đối tượng trên màn hình Ngoài ra, một số ứng dụng còn tận dụng các thiết bị phần cứng như gia tốc kế, con quay hồi chuyển và cảm biến khoảng cách để phản hồi hành động của người sử dụng Một trong những điểm mạnh nổi bật của Android là chức năng đa nhiệm, giúp người dùng dễ dàng chuyển đổi giữa các ứng dụng.
Thiết bị Android chủ yếu vận hành bằng pin, vì vậy hệ điều hành này được thiết kế để quản lý bộ nhớ RAM một cách hiệu quả nhằm giảm thiểu tiêu thụ điện năng Khi một ứng dụng không được sử dụng, hệ thống sẽ tự động ngăn chặn nó trong bộ nhớ, giúp tăng khả năng phản hồi và đảm bảo không tiêu tốn năng lượng một cách không cần thiết Hệ thống quản lý các ứng dụng trong bộ nhớ một cách tự động và được thiết kế ẩn đi với người sử dụng, chỉ bắt đầu xóa ứng dụng khi bộ nhớ thấp, ưu tiên xóa ứng dụng ít được sử dụng gần đây.
Android là một công nghệ tiên tiến với nhiều lợi thế nổi bật, đặc biệt là tính mở của nó, cho phép các nhà phát triển dễ dàng truy cập và cải tiến sản phẩm Kể từ phiên bản đầu tiên, Android đã trải qua nhiều nâng cấp và phát triển, giúp nâng cao tính năng và hiệu quả Sự cộng tác trong cộng đồng phát triển ứng dụng Android đã thúc đẩy sự đổi mới và hoàn thiện liên tục cho nền tảng này.
Android là hệ điều hành mã nguồn mở, cho phép mọi người dễ dàng truy cập thông tin về ứng dụng Tuy nhiên, điều này vừa là lợi thế vừa là bất lợi, vì các hacker có thể khai thác lỗ hổng để phát tán virus tấn công thiết bị (Phượng, 2014).
Xây d ự ng ứ ng d ụ ng
2.1 Quy trình xây dựng phần mềm
Quy trình phát triển ứng dụng di động khác biệt so với các ứng dụng phần mềm truyền thống trên máy tính để bàn, máy chủ hay laptop, bởi vì nó phải đối mặt với nhiều yêu cầu và thách thức bổ sung Những vấn đề phổ biến trong xây dựng ứng dụng di động bao gồm sự tích hợp phần mềm với phần cứng, hạn chế về lưu trữ, cũng như các vấn đề truyền thống liên quan đến độ tin cậy và hiệu suất (Muthuswamy và các cộng sự, 2013).
Ngành công nghiệp di động phần mềm chú trọng vào việc ra mắt sản phẩm nhanh chóng hơn là tuân thủ quy trình phát triển truyền thống Để duy trì sự cạnh tranh, các sản phẩm phần mềm cần phản ánh ý kiến của người sử dụng cuối và được phát hành kịp thời theo nhu cầu thị trường.
Để phát triển một ứng dụng di động Android hiệu quả, quy trình cần được thiết kế lại để phù hợp với tính thích ứng của ứng dụng Quy trình này bao gồm năm giai đoạn: Giai đoạn 1 là phân tích yêu cầu, Giai đoạn 2 là thiết kế và phát triển, Giai đoạn 3 là kiểm tra và đảm bảo chất lượng, Giai đoạn 4 là nghiệm thu sản phẩm, và Giai đoạn 5 là đưa sản phẩm ra thị trường Giai đoạn 5 đóng vai trò quan trọng trong việc xác nhận sự chấp nhận của sản phẩm; nếu sản phẩm không đáp ứng nhu cầu của khách hàng, quy trình sẽ quay lại giai đoạn phân tích yêu cầu để điều chỉnh.
2.2 Sơ lược về Android Studio
Ngày 16/05/2013, Android Studio được ra mắt công chúng tại hội nghị Google I/O
Android Studio là môi trường phát triển tích hợp (IDE) được thiết kế đặc biệt cho phát triển ứng dụng Android, hỗ trợ sửa mã thông minh cho các ngôn ngữ Kotlin, Java và C/C++, giúp tiết kiệm thời gian Ngoài ra, nó còn cung cấp các tính năng nổi bật như thiết kế bố cục trực quan, phân tích APK và trình giả lập thiết bị Android Android Studio tương thích với nhiều hệ điều hành, bao gồm Windows, Linux, Mac và Chrome OS Phiên bản mới nhất dành cho Windows (64-bit) là Android Studio 2020.3.1.26, được phát hành bởi Google vào năm 2021.
Hình 1: Quy trình xây dựng phần mềm (Nguồn: Kaleel & HariShankar (2013), trang 4)
Hình 2: Android Studio (Nguồn: Phần mềm Android Studio, màn hình tác giả)
2.3 Ngôn ngữ lập trình Java
Ngôn ngữ lập trình Android rất đa dạng nhưng phổ biến nhất là Kotlin, Java và C /
Đồ án này sẽ sử dụng ngôn ngữ Java cho lập trình Android, vì Java là ngôn ngữ phổ biến nhất trong lĩnh vực này Với tính đơn giản và dễ sử dụng, Java mang lại sự linh hoạt cao, đặc biệt khi kết hợp với Android Studio, nơi hỗ trợ mạnh mẽ cho cả Java và Kotlin Để lập trình Android bằng Java, việc cài đặt Java Development Kit (JDK) là cần thiết, đây là phần mềm miễn phí bao gồm các công cụ cần thiết cho phát triển ứng dụng.
2.4 Cơ sở dữ liệu Firebase
Initially, the servers utilized for Android applications included Oracle SQL, Microsoft SQL Server, and MySQL, which were connected to the server through PHP files.
Firebase được phát triển dành cho các ứng dụng Android, sử dụng định dạng JSON để lưu trữ dữ liệu Trong khi đó, nhiều máy chủ khác thường áp dụng cấu trúc bảng (hàng và cột) để quản lý dữ liệu (Khawas & Shah).
Firebase cung cấp nhiều dịch vụ hữu ích như phân tích dữ liệu người dùng, Google Cloud Messaging (GCM), xác thực qua các nền tảng như Facebook, Google, GitHub và Twitter, cơ sở dữ liệu thời gian thực, cùng với dịch vụ lưu trữ an toàn cho việc truyền tải tập tin và thông báo.
Firebase cải thiện tốc độ và hiệu quả cho các ứng dụng Android bằng cách loại bỏ nhu cầu sử dụng PHP như một ngôn ngữ bên thứ ba để kết nối với cơ sở dữ liệu Nó cung cấp một kênh giao tiếp an toàn giữa Java và cơ sở dữ liệu, cho phép phát triển ứng dụng không chỉ trên Android mà còn trên nhiều nền tảng khác.
Tất cả dữ liệu trong Realtime Database của Firebase được lưu trữ dưới dạng JSON, khác với cơ sở dữ liệu SQL không có bảng hay bản ghi Khi thêm dữ liệu, nó sẽ trở thành một nút trong cấu trúc JSON hiện có với một khóa liên kết Người dùng có thể cung cấp khóa như số điện thoại hoặc sử dụng phương thức push() của Firebase để tạo khóa tự động.
Hình 3: Firebase (Nguồn: website Firebase)
XÂY DỰ NG Ứ NG D ỤNG ĐẶ T L Ị CH H Ẹ N C ẮT TÓC “E - HAIR” 7 1 Lên ý tưở ng
Phân tích
Các tác nhân tham gia bao gồm:
- Khách hàng: người đăng ký đặt lịch hẹn tại các salon
- Salon: người nhận lịch hẹn từcác khách hàng đã đặt lịch
- Quản trịviên: Người đảm bảo duy trì ứng dụng
- Special_Admin: Người đảm bảo duy trình ứng dụng cấp cao
2.1.1Khách hàng a Đăng ký tài khoả n cá nhân
Mọi người đều có thể tạo tài khoản cá nhân bằng cách sử dụng số điện thoại của mình Quá trình đăng ký yêu cầu xác minh danh tính thông qua mã OTP, có thời gian hiệu lực là 60 giây.
Sau 60 giây không xác thực, người dùng cần gửi lại mã OTP Khi đăng ký, người dùng phải thiết lập mật khẩu 6 chữ số và nhập lại hai lần để xác nhận Đồng thời, họ cần cung cấp các thông tin cần thiết như họ tên, số điện thoại, ngày tháng năm sinh và địa chỉ Cuối cùng, người dùng phải xác nhận tính chính xác của thông tin và chấp nhận các chính sách của e-Hair Nếu đồng ý, người dùng sẽ không cần đăng nhập lại mà sẽ được chuyển đến trang chủ của e-Hair.
Nếu số điện thoại đã được đăng ký thành công trước đó, người dùng không thể thực hiện đăng ký lại Trong trường hợp người dùng không đồng ý với thông tin đã khai báo hoặc không chấp nhận chính sách của e-Hair, ứng dụng sẽ không yêu cầu thực hiện thêm bất kỳ bước nào khác.
Khi thiết lập mật khẩu, người dùng cần nhập lại mật khẩu mới để đảm bảo chúng trùng khớp Nếu hai lần nhập không giống nhau, người dùng phải tiếp tục nhập lại cho đến khi mật khẩu khớp.
Sau khi đăng ký tài khoản thành công, người dùng cần đăng nhập lại vào ứng dụng bằng số điện thoại và mật khẩu 6 chữ số đã thiết lập Nếu thông tin nhập vào chính xác, người dùng sẽ được chuyển đến trang chủ của e-Hair, nơi hiển thị danh sách bài viết từ các salon cùng các tùy chọn như đặt lịch, hủy lịch, xem lịch sử, tìm kiếm, nhận thông báo và thông tin cá nhân Người dùng có thể xem và báo cáo bài viết của salon, và nếu tài khoản cá nhân cũng là tài khoản salon, họ có thể sử dụng tài khoản đó để thực hiện báo cáo.
Nếu người sử dụng nhập sai mật khẩu quá 3 lần, thời gian chờ để đăng nhập lại sẽ bắt đầu từ 60 giây Trong trường hợp quên mật khẩu, người dùng có thể thực hiện khai báo bằng cách nhập số điện thoại để xác thực danh tính qua OTP Sau đó, người dùng cần thiết lập lại mật khẩu 6 chữ số và xác nhận bằng cách nhập lại mật khẩu mới 2 lần Khi hoàn tất quá trình thiết lập lại mật khẩu, người sử dụng có thể truy cập trang chủ của e-Hair.
Nếu mã OTP không còn hiệu lực, người dùng cần gửi lại mã OTP Trong trường hợp thiết lập lại mật khẩu, nếu mật khẩu mới không trùng khớp, người dùng phải tiếp tục nhập lại cho đến khi hai mật khẩu khớp nhau.
Trường hợp người sử dụng muốn đăng xuất tài khoản thì có thể chọn mục “Đăng xuất” trong trang cá nhân của mình c Đăng ký salon
Sau khi đăng nhập vào tài khoản cá nhân, người dùng có thể đăng ký tài khoản salon mà họ sở hữu hoặc quản lý Để thực hiện điều này, người dùng cần cung cấp các thông tin như tên salon, hình đại diện, hình bìa, số điện thoại của salon và chủ salon, địa chỉ chi tiết (bao gồm tỉnh thành, quận - huyện, phường – xã, số nhà, khu phố) cùng với mô tả về salon Cuối cùng, nếu người dùng xác nhận thông tin là chính xác và đồng ý với các điều khoản, ứng dụng sẽ tạo tài khoản salon cho họ.
Sau khi đăng nhập vào trang chủ e-Hair, người dùng có thể đặt lịch hẹn bằng cách chọn mục đặt lịch hoặc tìm kiếm Khi thực hiện lựa chọn, người dùng sẽ được chuyển đến trang tìm kiếm salon theo vùng miền và tỉnh thành Ứng dụng chỉ hiển thị các tỉnh thành có salon trong hệ thống e-Hair; các tỉnh không có salon sẽ không được hiển thị Sau khi chọn tỉnh thành, ứng dụng sẽ liệt kê các salon trong khu vực đó Khi người dùng đã chọn salon ưng ý, ứng dụng sẽ chuyển đến trang chủ của salon để tiếp tục đặt lịch hẹn.
Trang chủ của salon cung cấp thông tin quan trọng như tên, ảnh đại diện, trang bìa, số điện thoại và địa chỉ salon Người dùng có thể xem và lựa chọn từ danh sách các dịch vụ của salon, đồng thời truy cập vào mục bài viết để đọc các bài viết liên quan và theo dõi số lượt xem Mục đánh giá cho phép người dùng xem số lượng đặt lịch, đánh giá theo thang điểm 5 sao và nhận xét từ khách hàng trước đó, bao gồm cả phản hồi từ salon Khi người dùng chọn dịch vụ, ứng dụng sẽ hiển thị số lượng dịch vụ đã chọn và chuyển họ đến phần "Đặt lịch" Ngoài ra, người dùng có thể dễ dàng liên hệ với salon qua chức năng nhắn tin trên trang chủ.
Trong phần “Đặt lịch”, người dùng sẽ trải qua quy trình đặt lịch bao gồm việc chọn salon với thông tin như tên và địa chỉ, lựa chọn dịch vụ với tên và chi phí cụ thể, và xác định ngày giờ mong muốn Cuối cùng, người dùng có thể ghi chú cho salon (nếu cần) trước khi hoàn tất việc đặt lịch.
Nếu người dùng đã có một lịch hẹn chưa hoàn thành, ứng dụng sẽ ngăn không cho họ truy cập vào phần “Đặt lịch” và sẽ thông báo rằng họ đã có một lịch hẹn Để tạo thuận tiện, ứng dụng cần hiển thị thời gian đặt lịch trong vòng 7 ngày tiếp theo kể từ ngày đặt, bao gồm thông tin về thứ, ngày và tháng (hôm nay, ngày).
Người dùng chỉ có thể chọn các mốc thời gian trong tương lai và không thể lựa chọn các thời gian đã qua Ứng dụng sẽ hiển thị giờ theo cài đặt của salon đã được thiết lập Nếu số lượng mốc thời gian đã đạt giới hạn cho phép, người dùng cần chọn mốc thời gian khác.
Khi tài khoản người dùng hoặc tài khoản salon bị tạm khóa hoặc khóa, hệ thống sẽ thông báo cho người dùng và không cho phép đặt lịch Nếu salon đã đăng ký tạm dừng hoạt động nhưng chưa đến thời gian tạm dừng, ứng dụng chỉ hiển thị các thời gian hoạt động còn lại.
Khi ứng dụng xử lý thông tin thành công, người dùng sẽ nhận được thông tin đặt lịch bao gồm tên salon, hình đại diện, số điện thoại, địa chỉ, ngày giờ hẹn, tên và giá các dịch vụ đã đăng ký, tổng chi phí và ghi chú (nếu có) Người dùng không thể quay lại mục “Đặt lịch”; nếu muốn trở lại, ứng dụng sẽ đưa họ về trang chủ e-Hair.
Phát tri ể n
Phần mềm Android Studio cung cấp công cụ trực quan để thiết kế giao diện, nhưng để tối ưu hóa quy trình thiết kế và kiểm soát tốt hơn, đồ án sẽ sử dụng phương pháp viết XML Giao diện sẽ hiển thị tương ứng với nội dung được định nghĩa trong file XML.
Hình 10: Dịch vụ Cloud Firestore của Firebase (Nguồn: tác giả chụp tại trang quản trịcơ sở dữ liệu của Firebase với tên AppBookCutHair)
3.2 Lập trình Đồ án sử dụng ngôn ngữ lập trình Java để thực hiện xây dựng ứng dụng e-Hair Các file mã nguồn Java được tổ chức theo các gói theo đặc điểm chức năng của chúng Đồng thời, sử dụng điện thoại Huawei nova 2i để build trong quá trình lập trình
3.3 Chức năng của tác nhân khách hàng
3.3.1 Đăng ký tài khoản cá nhân
Hình 12: Thiết kế giao diện (Nguồn: ảnh chụp màn hình Android Studio của tác giả)
Hình 13: Lập trình Java (Nguồn: ảnh chụp màn hình Android Studio của tác giả)
Phần mềm hiển thị logo e-Hair khi khởi động phần mềm trong 2 giây đầu, kèm theo slogan
“Đặt lịch cắt tóc cùng bạn”
Sau 2 giây chờ, nếu người sử dụng chưa từng đăng nhập hoặc đã đăng xuất trước đây, phần mềm sẽ hiển thị màn hình để người sử dụng đăng nhập Nếu người sử dụng chưa có tài khoản mà muốn sử dụng phần mềm, buộc phải đăng ký tài khoản tại mục “Đăng ký tài khoản” dưới cùng màn hình
Sau khi người dùng chọn "Đăng ký tài khoản", phần mềm yêu cầu nhập số điện thoại để tiến hành đăng ký Nếu số điện thoại không hợp lệ hoặc đã được đăng ký trước đó, phần mềm sẽ hiển thị thông báo lỗi Nếu số điện thoại hợp lệ, người dùng sẽ nhận được yêu cầu xác thực robot trước khi nhận mã OTP để xác thực danh tính.
Hình 15: Màn hình nhập số điện thoại đăng ký
(Nguồn: tác giả xây dựng) Hình 14: Giao diện khi khởi động phần mềm
(Nguồn: tác giả xây dựng)
Xác thực reCAPTCHA là bước quan trọng khi xác minh số điện thoại trên Firebase Thông thường, người dùng có thể hoàn thành reCAPTCHA mà không cần thực hiện bất kỳ hành động nào Sau khi hoàn tất xác thực, người dùng sẽ nhận được một tin nhắn OTP để tiếp tục quy trình xác minh.
Hình 16: Màn hình xác thực robot
Hình 17: Màn hình nhập OTP Hình 18: Tin nhắn OTP
(Nguồn: màn hình ứng dụng tin nhắn)
Hình 20: Thiết lập mật khẩu (Nguồn: tác giả xây dựng) Hình 19: Nhập OTP
(Nguồn: tác giả xây dựng)
22 Hình 22: Trang chủ e-Hair (Nguồn: tác giả xây dựng)
23: Hình 23: Tìm kiếm salon Hình 24Hình 24: Salon ở TP.HCM
Phần mềm sẽ bắt đầu đếm thời gian hiệu lực của mã OTP, và nếu người sử dụng nhập sai, hệ thống sẽ thông báo lỗi Sau khi nhập đúng mã OTP, người dùng cần thiết lập mật khẩu 6 chữ số và xác nhận lại hai lần; hệ thống sẽ thông báo nếu mật khẩu không khớp Cuối cùng, người dùng phải cung cấp thông tin cần thiết và đồng ý với cam kết về tính chính xác của thông tin cũng như chính sách của e-Hair Để xem chi tiết chính sách, người dùng có thể chạm vào liên kết cung cấp.
Khi người dùng lần đầu đăng nhập vào trang chủ e-Hair, họ sẽ thấy giao diện chào mừng với các tính năng chính như công cụ tìm kiếm salon, mục thông báo và ba chức năng chính: đặt lịch, hủy lịch và xem lịch sử Do chưa có ảnh đại diện, giao diện sẽ chỉ hiển thị lời chào Người dùng cũng có thể khám phá các bài viết từ các salon bằng cách chạm vào bài viết và theo dõi lượt xem của từng bài.
Người sử dụng chọn biểu tượng ở trang chủ e-Hair để tìm kiếm salon có trong e-Hair Phần mềm cung cấp tìm kiếm salon theo miền, tỉnh thành (hình 23)
Sau khi chọn tỉnh thành người sử dụng có thể nhìn thấy các salon có trong tỉnh thành đó (hình 24)
(Nguồn: giao diện tham khảo ứng dụng đặt lịch 30Shine)
Hình 25: Trang chủ salon Hình 26: Chọn dịch vụ
(Nguồn hình ảnh và tên dịch vụ: salon 30Shine)
Hình 27: Xem chi tiết dịch vụ
Hình 28: Chọn thời gian đặt lịch (Nguồn giao diện tham khảo: ứng dụng đặt lịch 30 Shine)
Hình 29: Đặt lịch thành công (Nguồn: tác giả xây dựng)
Khi người dùng lựa chọn một salon từ danh sách, phần mềm sẽ hiển thị trang chủ của salon đó Tại trang này, người dùng có thể dễ dàng chọn dịch vụ mong muốn hoặc nhấn vào bất kỳ dịch vụ nào để xem thông tin chi tiết.
Hình 30Hình 30: Bài viết salon Hình 32: HHình 31: Xem bài viết : Hình 32: Đánh giá salon
(Nguồn hình ảnh: salon 30Shine)
Trên trang chủ của salon, người dùng không chỉ có thể đặt lịch hẹn mà còn có thể xem các bài viết và đánh giá từ những khách hàng trước đó.
3.3.5 Xem lịch sử lịch hẹn
Nếu người dùng đã từng đặt lịch hẹn nhưng chưa thực hiện đánh giá cho lịch hẹn đó, họ cần hoàn thành việc đánh giá trước khi có thể đặt thêm một lịch hẹn mới.
Hình 33: Hoàn tất đánh giá lịch hẹn (khách hàng)
(Nguồn: tác giả xây dựng)
Hình 34: Lịch sử lịch hẹn (Nguồn hình ảnh: Tiktok @huyleodaik)
Hình 35: Đánh giá và phản hồi Hình 36: Xem ảnh Hình 37: Tùy chọn lịch sử
(Nguồn: tác giả xây dựng)
Hình 38: Hủy lịch hẹn (Nguồn: tác giả xây dựng)
Người dùng có thể đánh giá dịch vụ theo thang điểm 5 sao và để lại nhận xét nếu muốn Sau khi hoàn tất đánh giá, họ sẽ được xem chi tiết lịch sử hẹn của mình (hình 34) Ngoài ra, để kiểm tra lịch sử hẹn, người dùng có thể truy cập mục “Lịch sử” trên trang chủ e-Hair.
Người sử dụng có thể xem chi tiết và phóng to hình ảnh bằng cách nhấn vào chúng Bên cạnh đó, họ cũng có khả năng chỉnh sửa đánh giá, xóa ảnh và báo cáo phản hồi theo quy định.
Khi người sử dụng đã đặt lịch thành công, nếu gặp các vấn đề người sử dụng có thể hủy lịch tại mục “Đặt lịch” của trang chủ e-
Sau khi hủy lịch, người sử dụng có thể dễ dàng xem danh sách các lịch hẹn đã bị hủy Để truy cập vào danh sách này, người dùng chỉ cần chọn mục “Hủy lịch” trên trang chủ e-Hair.
(Nguồn hình ảnh: Tiktok @huyleodaik)
Hình 39: Trang chủ e-Hair Hình 40: Xem bài viết
Hình 41: Cập nhật thông tin cá nhân (Nguồn: tác giả xây dựng) (Nguồn hình ảnh: salon 30Shine và MAY LUU Salon)
Sau khi người dùng đăng nhập thành công, trang chủ e-Hair sẽ xuất hiện với ba chức năng chính của phần mềm Tại đây, người dùng có thể xem các bài viết từ các salon và nhận thông báo Ngoài ra, nếu thấy bài viết không phù hợp, người dùng có thể báo cáo theo hướng dẫn trong phụ lục 3.
Người sử dụng có thể dễ dàng cập nhật thông tin cá nhân trên trang cá nhân của mình Tại mục “Thông tin cá nhân”, người dùng có quyền chỉnh sửa tất cả các thông tin liên quan đến bản thân Khi thực hiện việc cập nhật, người sử dụng cần cung cấp địa chỉ tên đường, tòa nhà, số nhà, cùng với ảnh đại diện và ảnh bìa nếu mong muốn.
Khi đã cập nhật thông tin hoàn tất, toàn bộ thông tin liên quan đến người sử dụng này sẽ được cập nhật lại
Hình 42: Hoàn tất cập nhật thông tin
(Nguồn hình ảnh: salon 30Shine và Internet)
Hình 43: Đổi mật khẩu (Nguồn: tác giả xây dựng)
Hình 44: Thông báo (Nguồn: tác giả xây dựng)
Ki ể m th ử ch ất lượ ng ph ầ n m ề m
Kiểm tra từng chức năng bằng cách viết test case và tiến hành kiểm thử các chức năng riêng lẻ Khi số lượng chức năng vượt quá 5, cần thực hiện kiểm thử tích hợp để đảm bảo sự tương tác giữa các giao diện Đồng thời, trong quá trình test hệ thống, cần kiểm tra các yêu cầu nghiệp vụ theo nguyên tắc phần mềm.
4.2 Kiểm tra phi chức năng
Kiểm tra thông báo khi đạt giới hạn gửi 10.000 mã OTP để đăng ký tài khoản mới hoặc khôi phục mật khẩu Thực hiện thử nghiệm trên điện thoại sử dụng hệ điều hành Android 5.0 trở lên.
50 e-Hair Trạng thái kiểm tra: Hoàn thành
Ngày Công việc Người thực hiện
10/12/2021 Viết test case Đào Phương Lâm
Tiền điều kiện Có tài khoản e-Hair, chưa đăng nhập
Tổng test case Đạt Thất bại
STT Mô tả Đầu vào Kết quả mong đợi Kết quả lần
1 Nhập số điện thoại - Nhập đủ 10 vào ô số điện thoại - Đúng kiểu đầu vào
- Chuyển con trỏ sang nhập mật khẩu Đạt Đạt Đạt
2 Nhập mật khẩu - Nhập đủ 6 số mật khẩu
- Mật khẩu không chính xác
- Ẩn mật khẩu, thực hiện đăng nhập
- Thông báo mật khẩu sai Đạt Đạt Đạt
3 Tài khoản không tồn tại
- Nhập số điện thoại không tồn tại - Thông báo tài khoản không tồn tại Đạt Đạt Đạt
4 Thời gian chờ - Nhập sai mật khẩu lần thứ 4 - Hiển thị thời gian chờ lần đầu
(60s), đăng nhập khi hết thời gian Đạt Đạt Đạt
5 Thời gian chờ - Tiếp tục nhập sai mật khẩu - Hiển thị thời gian chờ lần hai (2p), đăng nhập khi hết thời gian Đạt Đạt Đạt
6 Thời gian chờ - Tiếp tục kiểm tra thêm 3 lần sai mật khẩu
- Hiển thị thời gian chờ theo số lần nhập sai, đăng nhập khi hết thời gian Đạt Đạt Đạt
7 Đăng nhập thành công - Nhập đúng số điện thoại và mật khẩu - Hiển thị trang chủ e-Hair Đạt Đạt Đạt
8 Phục hồi thời gian chờ
- Nhập số điện cũ và sai mật khẩu lần đầu
- Thông báo sai mật khẩu
- Không hiển thị thời gian chờ
- Xử lý đăng nhập khi đổi mật khẩu
Thất bại Thất bại Đạt
9 Phục hồi thời gian chờ - Nhập số điện thoại cũ và sai mật khẩu 4 lần
- Hiển thị thời gian chờ lần đầu (60s), đăng nhập khi hết thời gian Thất bại Thất bại Đạt
10 Đảm bào thời gian chờ
- Nhập số điện thoại cũ và sai mật khẩu
- Hiển thị thời gian chờ thứ hai (2p), đăng nhập khi hết thời gian Đạt Đạt Đạt
11 Đảm bảo thời gian chờ
- Gỡ ứng dụng và cài ứng dụng
- Nhập số điện thoại cũ và sai mật khẩu
- Hiển thị thời gian chờ lần ba (3p), đăng nhập khi hết thời gian Đạt Đạt Đạt
Bảng 2: Test case (Nguồn: tác giả xây dựng)
Hình 79: Kiểm tra phi chức năng (Nguồn: tác giả xây dựng)
Hình 80: Đóng gói và cài đặt phần mềm (Nguồn:màn hình Android Studio và màn hình điện thoại)
Tri ể n khai
Thực hiện đóng gói phần mềm e-Hair bằng Android
Studio bằng cách tạo file keystore (.jks) và nhúng vào file apk Cuối cùng, chuyển file apk từ debug sang release
Để phần mềm tiếp cận người dùng, nó cần được đăng tải trên kho ứng dụng Google Play Tuy nhiên, do hạn chế về kinh phí, dự án chỉ thực hiện đến bước hoàn thiện sản phẩm và người dùng có thể cài đặt phần mềm bằng cách tải file apk mà tác giả đã upload Người sử dụng có thể tải phần mềm tại đây.
B ả o trì
Bảo trì phần mềm là quá trình sửa đổi phần mềm sau khi bàn giao nhằm khắc phục lỗi, nâng cao hiệu suất và cải thiện các thuộc tính khác Ngoài ra, bảo trì cũng giúp phần mềm thích ứng với những thay đổi trong môi trường hoạt động.
Nếu trong quá trình sử dụng phần mềm gặp phải lỗi không nằm trong danh sách đã được kiểm thử, hoặc nếu e-Hair muốn nâng cấp, bổ sung tính năng, hay khi thuật toán không còn hỗ trợ trên các phiên bản Android mới hơn, việc trì hoãn sẽ được thực hiện nhằm đảm bảo phần mềm hoạt động ổn định.
Sau khi hoàn thành, đồ án đã thành công trong việc xây dựng và đóng gói ứng dụng “e-Hair” cho phép người dùng đặt lịch hẹn cắt tóc với ba chức năng chính: đặt lịch, hủy lịch và xem lịch hẹn Ứng dụng còn tích hợp các tính năng bổ sung như nhắn tin, quản trị người dùng và xây dựng salon Đặc biệt, ứng dụng hoạt động ổn định trên các thiết bị Android, bao gồm Huawei Nova 2i và LG Qua quá trình thực hiện, đồ án đã đạt được mục tiêu đề ra, cung cấp cái nhìn tổng quan về Android và kỹ thuật lập trình Android bằng ngôn ngữ Java, sử dụng Android Studio và các dịch vụ Firebase để phát triển phần mềm.
Dù đồ án đã hoàn thành các mục tiêu đề ra, vẫn còn một số hạn chế trong việc hoàn thiện ứng dụng, đặc biệt là việc đưa ứng dụng vào kho Google Play.
e-Hair cần phát triển nhiều tính năng để đáp ứng yêu cầu khắt khe của người dùng Trong thời gian tới, ứng dụng cần hoàn thiện tính năng nhắn tin với khả năng gửi đa phương tiện và gọi điện Ngoài ra, việc bổ sung tính năng thanh toán qua Momo và thẻ ngân hàng là cần thiết Để hỗ trợ người dùng tốt hơn khi số lượng tăng lên, e-Hair cần sử dụng công cụ nhắn tin tự động thay vì công cụ thủ công Phát triển tính năng đăng ký qua Facebook và Google cũng là một ưu tiên Cuối cùng, hoạt động quảng bá hình ảnh và chính sách linh hoạt sẽ giúp ứng dụng tiếp cận nhiều người dùng hơn Video demo ứng dụng e-Hair có thể xem tại https://youtu.be/orS94K1IN9E.
Dixit, P K (2014) Android (1 ed.) India: House PVT LTD.
Firebase (2021) Authenticate with Firebase on Android using a Phone Number
Retrieved 12 11, 2021, from https://firebase.google.com/docs/auth/android/phone-auth?hl=en
Google (2021) Download Android Studio Retrieved 12 2021, from https://developer.android.com/studio?gclid=CjwKCAiA78aNBhAlEiwA7B76p 2q2LG86exDrkpezNzFRHNxOYrLTo8G4q2pKHInjy-
06TbkK4qqBahoCGGkQAvD_BwE&gclsrc=aw.ds
Hiệu, D (2021, 10 01) Người dân TP.HCM xếp hàng chờ cắt tóc Retrieved from
Zingnews: https://zingnews.vn/nguoi-dan-tphcm-xep-hang-cho-cat-toc- post1267730.html
IEEE (1993) IEEE 830-1993 - IEEE Recommended Practice for Software
Requirements Specifications Hoa Kỳ: Institute of Electrical and Electronics Engineers
Kaleel, S B., & HariShankar, S (2013) Applying Agile Methodology in Mobile
Khawas, C., & Shah, P (2018) Application of Firebase in Android App Development
Muthuswamy, S., Ganapathi, P., & S.Sathyanarayanan (2013) A survey on Mobile
Phượng, T T (2014) Giáo trình Lập trình Android Hồ Chí Minh: Nhà xuất bản Đại học Quốc gia Thành phố Hồ Chí Minh
Thảo, T (2021, 09 21) Người Hà Nội đổ xô đi cắt tóc Retrieved from Zingnews: https://zingnews.vn/nguoi-ha-noi-do-xo-di-cat-toc-post1264970.html
Trang, T H (2013) Giáo trình Android Hà Nội: Trang Hồ
CẤU TRÚC CÁC DỮ LIỆU TRONG CƠ SỞ DỮ LIỆU THỜI GIAN THỰC
Phụ lục 1 1: Cấu trúc các dữ liệu trong cơ sở dữ liệu
(Nguồn: tác giả xây dựng)
Phụ lục 1 2: Cấu trúc các dữ liệu trong cơ sở dữ liệu
(Nguồn: tác giả xây dựng)
MỘT SỐ CẤU TRÚC DỮ LIỆU GỐC TRONG CƠ SỞ DỮ LIỆU THỜI GIAN THỰC
Phụ lục 2 1 Một số cấu trúc dữ liệu gốc trong cơ sở dữ liệu thời gian thực
(Nguồn: tác giả xây dựng)
Hình phụ lục 3 1: Chỉnh sửa đánh giá (Nguồn: tác giả xây dựng)
Hình phụ lục 3 2: Xóa ảnh trong lích sử lịch hẹn Hình phụ lục 3 3: Báo cáo phản hồi
(Nguồn: tác giả xây dựng)
GIAO DIỆN PHẦN MỀM E-HAIR BỔ SUNG
Hình phụ lục 3 4 Báo cáo bài viết (Nguồn hình ảnh: salon 30Shine)
Hình phụ lục 3 5: Khai báo địa chỉ (Nguồn: tác giả xây dựng)
Hình phụ lục 3 6: Đăng nhập (Nguồn: tác giả xây dựng)
Hình phụ lục 3 7: Salon cập nhật lịch sử lịch hẹn
(Nguồn: tác giả xây dựng)
Hình phụ lục 3 8: Salon phản hồi, báo cáo đánh giá khách hàng
(Nguồn: tác giả xây dựng)
Hình phụ lục 3 9: Thêm và chỉnh sửa thể loại dịch vụ
(Nguồn: tác giả xây dựng)
Hình phụ lục 3 10: Xóa thể loại dịch vụ (Nguồn hình ảnh và dịch vụ: salon 30Shine)
Hình phụ lục 3 11: Hoàn tất xóa thể loại dịch vụ
(Nguồn hình ảnh và dịch vụ: salon 30Shine)
Hình phụ lục 3 12: Thiết lập cài đặt salon
(Nguồn: tác giả xây dựng)
Hình phụ lục 3 13: Thiết lập cài đặt và quản lý stylist
(Nguồn: tác giả xây dựng)
Hình phụ lục 3 14: Thiết lập tạm dừng và hoạt động trở lại
(Nguồn: tác giả xây dựng)
Hình phụ lục 3 15: Xử lý báo cáo lịch sử lịch hẹn (Nguồn hình ảnh: Tiktok @huyleodaik)
Hình phụ lục 3 16: Xử lý báo cáo bài viết và báo cáo vi phạm
(Nguồn hình ảnh: salon 30Shine và Quân BarberShop 2)
Hình phụ lục 3 17: Đổi tên admin (Nguồn: tác giả xây dựng)
Hình phụ lục 3 18: Thông báo vượt quyền hạn
(Nguồn: tác giả xây dựng)
Hình phụ lục 3 19: Giới hạn chức năng (Nguồn hỉnh ảnh: salon 30Shine)
Hình phụ lục 3 20: Giới hạn chức năng cá nhân và salon (Nguồn hình ảnh: salon Thuận Paris, Quân Baber Shop 2, MAY LUU Salon)