Kết quả mong đợi: - Các chức năng cơ bản của một ứng dụng đặt hàng online phải được thực hiện một cách chính xác, hiệu quả, không xảy ra lỗi.. Sau khi ứng dụng được cài đặt, người dùng
Phạm vi
Phạm vi môi trường: Ứng dụng hỗ trợ hệ thống chuỗi đặt hàng thức ăn trực tuyến
− Đối với bên phía người dùng:
Chúng tôi hỗ trợ người dùng đặt hàng trực tuyến dễ dàng và thuận tiện nhất, đồng thời phân tích nhu cầu khách hàng để đưa ra tư vấn phù hợp Ngoài ra, chúng tôi cung cấp liên hệ trực tiếp với nhân viên tư vấn để hỗ trợ các vấn đề vượt quá khả năng của khách hàng và cập nhật phương án xử lý cho từng trường hợp cụ thể, đảm bảo trải nghiệm mua sắm suôn sẻ và hài lòng.
− Đối với phía cửa hàng/admin:
+ Cung cấp dữ liệu, thông số
+ Hỗ trợ tính toán, đánh giá doanh thu
Đối tượng sử dụng
− Tất cả các cửa hàng đồ ăn vừa và nhỏ muốn thêm phương thức giao đồ ăn trực tuyến
− Người dùng muốn đặt đồ ăn trực tuyến
Phương pháp thực hiện
Làm việc nhóm 2 thành viên thông qua cả 2 phương thức online dưới sự hướng dẫn của giảng viên hướng dẫn
− Phân tích nhu cầu sử dụng của đối tượng người dùng
− Nghiên cứu tài liệu các công nghệ liên quan
− Quản lý source code thông qua Github
− Sử dụng Trello, Google doc,… để quản lý tiến trình và tài liệu
Nền tảng công nghệ
− Ngôn ngữ lập trình Kotlin
− Môi trường phát triển tích hợp (IDE) Android Studio
− Cơ sở dữ liệu thời gian thực Firebase
− Dịch vụ kho lưu trữ mã nguồn GitHub
Kết quả mong đợi
- Các chức năng cơ bản của một ứng dụng đặt hàng online phải được thực hiện một cách chính xác, hiệu quả, không xảy ra lỗi
Để đảm bảo trải nghiệm người dùng tốt, mọi thao tác đặt đồ ăn của khách hàng cũng như quy trình của cửa hàng phải dễ thực hiện, rõ ràng và không gây nhầm lẫn Việc tối ưu hóa quy trình giúp khách hàng đặt hàng thuận tiện, dễ hiểu, từ đó nâng cao sự hài lòng và thúc đẩy doanh số bán hàng Đồng thời, các bước thao tác cần được thiết kế đơn giản, dễ sử dụng, giúp cả khách hàng và cửa hàng tiết kiệm thời gian và công sức trong quá trình giao dịch.
Ứng dụng được thiết kế nhằm hỗ trợ doanh nghiệp mở rộng tập khách hàng một cách hiệu quả, không giới hạn ở phạm vi địa phương mà còn mở rộng tiếp cận khách hàng toàn quốc Mục tiêu chính của nền tảng là giúp doanh nghiệp tăng trưởng doanh số bằng cách thu hút và giữ chân khách hàng trên quy mô lớn hơn Nhờ đó, doanh nghiệp có thể nâng cao khả năng cạnh tranh và phát triển bền vững trên thị trường quốc gia.
Hướng phát triển của đề tài
− Tăng cường tốc độ xử lý bằng các thuật toán nhanh hơn, cải thiện trải nghiệm của người dùng
− Chỉnh sửa UI/UX sao cho phù hợp hơn nữa với người dung
− Nhúng được quảng cáo vào ứng dụng, hỗ trợ thu them lợi nhuận
− Thiết kế chức năng thống kê (statistic) với nhiều loại hình biểu đồ theo nhiều mốc thời gian khác nhau hỗ trợ cho người bán
− Thêm chức năng block người bán từ người mua và ngược lại
− Thêm chức năng theo dõi, tình trạng đơn hang
− Thêm chức năng tích điểm thành viên
Kế hoạch làm việc
Bài toán
Trong bối cảnh dịch Covid-19 diễn biến phức tạp với nhiều biến chủng mới xuất hiện, hệ thống y tế toàn cầu đối mặt với những thử thách nghiêm trọng Các ngành dịch vụ thương mại đang gặp khó khăn lớn, chịu ảnh hưởng bởi giãn cách xã hội và sự sụt giảm nghiêm trọng về doanh thu cũng như nguồn cầu thị trường Tình hình này yêu cầu các chính phủ và doanh nghiệp nhanh chóng thích nghi để duy trì hoạt động kinh doanh hiệu quả trong thời kỳ đại dịch.
Các nhà hàng truyền thống và quán ăn đông đúc đều bị ảnh hưởng nặng nề bởi đại dịch toàn cầu, khi người dân hạn chế việc ra ngoài, tiếp xúc trực tiếp và tham gia các hoạt động ẩm thực Đặc biệt, những người không thường nấu ăn tại nhà gặp nhiều khó khăn trong việc duy trì thói quen ăn uống, ảnh hưởng lớn đến ngành ẩm thực truyền thống.
Với nhận thức rõ về thực tiễn, nhóm quyết định phát triển dự án "Ứng dụng đặt đồ ăn trực tuyến" nhằm thúc đẩy doanh số cho các cửa hàng bán đồ ăn địa phương Ứng dụng này giúp người dùng dễ dàng đặt món từ xa, phù hợp với xu hướng phát triển của các hệ thống thương mại điện tử hiện nay Đồng thời, giải pháp còn hỗ trợ các quán ăn quản lý đơn đặt hàng thuận tiện hơn, nâng cao hiệu quả kinh doanh.
Phạm vi
Dựa trên kiến thức đã học, nhóm đã quyết định phát triển một ứng dụng Android để số hóa các cửa hàng bán đồ ăn truyền thống Ứng dụng cho phép người dùng xem thông tin các món ăn, thực hiện các thao tác với giỏ hàng và đặt hàng một cách dễ dàng Ngoài ra, ứng dụng còn hỗ trợ xếp hạng món ăn dựa trên các đánh giá mới nhất, giúp người dùng tham khảo và đưa ra lựa chọn phù hợp.
Vào thời điểm này, người dùng có thể thêm món ăn yêu thích và trò chuyện, nhắn tin với shop để khiếu nại hoặc trao đổi thông tin Đồng thời, nhà cung cấp có thể sử dụng ứng dụng riêng để quản lý các đơn hàng, thêm, xóa hoặc chỉnh sửa danh sách món ăn của cửa hàng Ứng dụng còn hỗ trợ quản lý đơn hàng từ khách hàng và cung cấp chức năng nhắn tin trao đổi trực tiếp để nâng cao trải nghiệm khách hàng.
Kết quả hướngtới
Các chức năng cơ bản của một ứng dụng đặt hàng online phải được thực hiện một cách chính xác, hiệu quả, không xảy ra lỗi
Việc thiết kế thao tác đặt hàng và quản lý cho người dùng, dù là khách hàng hay cửa hàng cung cấp thức ăn, cần đảm bảo thuận tiện, dễ hiểu và dễ sử dụng Điều này giúp tạo trải nghiệm mượt mà, giảm thiểu sự nhầm lẫn và tăng sự hài lòng của khách hàng Các bước thực hiện phải rõ ràng, thống nhất và tối ưu hóa để người dùng không gặp khó khăn khi thao tác trên nền tảng của bạn.
Mục tiêu của ứng dụng là hỗ trợ doanh nghiệp mở rộng tập khách hàng một cách hiệu quả, không giới hạn chỉ trong khu vực địa phương mà còn có khả năng tiếp cận khách hàng trên toàn quốc Ứng dụng giúp doanh nghiệp phát triển thị trường, nâng cao doanh số và tăng khả năng cạnh tranh trong môi trường kinh doanh ngày càng cạnh tranh Với các tính năng tối ưu hóa, ứng dụng chăm sóc khách hàng toàn diện, doanh nghiệp dễ dàng quản lý và mở rộng quy mô khách hàng một cách nhanh chóng và bền vững.
2 – CÔNG NGHỆ KĨ THUẬT SỬ DỤNG
Ngôn ngữ lập trình Kotlin
Kotlin là ngôn ngữ lập trình đa nền tảng hiện đại, hoàn toàn tương thích với Android, do JetBrains phát triển, công ty đứng sau IntelliJ IDEA Kotlin không phải là ngôn ngữ riêng biệt mà là một phương pháp mới để phát triển code Java, giúp các lập trình viên Java dễ dàng chuyển đổi và tận dụng các lợi ích của Kotlin Nhờ khả năng hoạt động liền mạch với Java, Kotlin giúp phát triển ứng dụng Android nhanh chóng và hiệu quả, đồng thời mở rộng khả năng sử dụng thư viện của Java.
Kotlin là một ngôn ngữ lập trình kiểu tĩnh chạy trên máy ảo Java (JVM), được thiết kế để tối ưu hóa khả năng phát triển ứng dụng Android và các dự án Java khác Ngôn ngữ này có khả năng biên dịch sang mã nguồn Java, giúp dễ dàng tích hợp vào các dự án Java hiện có Ngoài ra, Kotlin còn có thể sử dụng cơ sở hạ tầng trình biên dịch LLVM, mở rộng khả năng tối ưu hóa và hiệu suất cho các nền tảng khác nhau Với cú pháp đơn giản, hiện đại và khả năng mở rộng mạnh mẽ, Kotlin ngày càng trở thành lựa chọn phổ biến cho các nhà phát triển phần mềm.
2.1.2 Lý do sử dụng Kotlin
Code ngắn gọn, tối ưu hóa để giảm thiểu các đoạn không cần thiết giúp tăng tính trực quan và dễ học, dễ làm, dễ sử dụng, đồng thời tiết kiệm thời gian Theo ước tính của Ovechkin, việc sử dụng code ngắn gọn mang lại hiệu quả cao trong quá trình phát triển phần mềm.
Kotlin, code base có thể được thu nhỏ hơn từ 15-25%
Trong lập trình Java, việc đảm bảo an toàn và tránh lỗi NullPointerException là rất quan trọng, vì lỗi này xảy ra khi mã tham chiếu đến một biến nhưng biến đó không có giá trị trong quá trình chạy ứng dụng NullPointerException khiến ứng dụng gặp sự cố hoặc không thể thực thi các chức năng mong đợi, dẫn đến trải nghiệm người dùng giảm sút và gây gián đoạn hoạt động Để tránh lỗi này, cần kiểm tra null trước khi truy cập vào các phương thức hoặc thuộc tính của biến, cũng như sử dụng các kỹ thuật như Optional hoặc các biện pháp phòng ngừa lỗi phù hợp trong quá trình phát triển Điều này giúp duy trì độ ổn định của ứng dụng và nâng cao tính an toàn khi xử lý dữ liệu.
Kotlin, đảm bảo các nhà phát triển sẽ không gặp phải vấn đề này
• Khả năng tương tác cao, tương thích 100% và đẩy mạnh sử dụng các thư viện hiện có trong JVM, bao gồm cả SAM support
• Tool làm việc thân thiện, có thể lựa chọn các Java IDE để làm việc hoặc làm việc với command line.
Môi trường phát triển tích hợp (IDE) Android Studio
2.2.1 Giới thiệu sơ lược android studio
Android Studio là một phần mềm phát triển ứng dụng Android, cung cấp bộ công cụ toàn diện để xây dựng và tối ưu các ứng dụng chạy trên thiết bị Android như điện thoại thông minh và tablet Với Android Studio, các nhà phát triển có thể dễ dàng thiết kế giao diện, viết mã, kiểm thử và triển khai ứng dụng một cách hiệu quả Đây là môi trường lập trình chính thống được sử dụng phổ biến trong cộng đồng phát triển ứng dụng Android, giúp tối ưu hóa hiệu suất và đảm bảo tính tương thích cao trên nhiều loại thiết bị.
Android Studio là một bộ tích hợp bao gồm code editor, debugger, các công cụ phân tích hiệu suất và hệ thống build/deploy, giúp lập trình viên phát triển ứng dụng nhanh chóng và hiệu quả Trong đó, trình giả lập (emulator) cho phép mô phỏng môi trường của điện thoại hoặc máy tính bảng trên máy tính, hỗ trợ phát triển và thử nghiệm ứng dụng từ đơn giản đến phức tạp.
Android Studio là IDE chính thức của Google dành cho phát triển ứng dụng Android, hỗ trợ các hệ điều hành Windows, Mac OS X và Linux Đây là công cụ quan trọng giúp các nhà phát triển xây dựng ứng dụng Android gốc một cách hiệu quả và chuyên nghiệp, thay thế các phương pháp lập trình truyền thống Với tính năng đa nền tảng, Android Studio giúp tối ưu hóa quá trình phát triển, thử nghiệm và triển khai ứng dụng trên nhiều hệ điều hành khác nhau.
Development Tools (ADT) dựa trên Eclipse
2.2.2 Một số điểm mạnh của android studio so với các IDE khác
• Một hệ thống xây dựng Gradle linh hoạt
• Trình mô phỏng nhanh và tính năng phong phú
• Một môi trường hợp nhất nơi bạn có thể phát triển cho tất cả các thiết bị Android
• Instant Run để đẩy các thay đổi vào ứng dụng đang chạy của bạn mà không cần xây dựng một APK mới
• 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 và nhập mã mẫu
• Các công cụ và khuôn khổ thử nghiệm mở rộng
Cơ sở dữ liệu thời gian thực Firebase
Firebase là dịch vụ cơ sở dữ liệu thời gian thực do Google cung cấp, hoạt động dựa trên nền tảng đám mây, giúp các lập trình viên phát triển ứng dụng di động nhanh chóng và dễ dàng hơn Với Firebase, việc thao tác với cơ sở dữ liệu trở nên đơn giản, tối ưu hóa quá trình lưu trữ và truy xuất dữ liệu cho các ứng dụng của bạn Đây là giải pháp lý tưởng cho các dự án cần cập nhật dữ liệu tức thì và linh hoạt trong môi trường đám mây.
Dự án được ứng dụng ba trong số rất nhiều dịch vụ hỗ trợ của firebase bao gồm :
Firebase Authentication là công cụ hỗ trợ đăng nhập và đăng ký thông tin khách hàng cùng thông tin cửa hàng một cách an toàn và dễ dàng Công nghệ này giúp xây dựng hệ thống xác thực mạnh mẽ, góp phần cải thiện trải nghiệm đăng nhập cho người dùng Việc tích hợp Firebase Authentication giúp doanh nghiệp nâng cao độ bảo mật và tối ưu quá trình quản lý thông tin người dùng một cách hiệu quả.
+ Firebase Realtime Database : Cơ sở dữ liệu thời gian thực Firebase là cơ sở dữ liệu
NoQuery lưu trữ trên đám mây giúp bạn dễ dàng lưu trữ và đồng bộ hóa dữ liệu giữa các người dùng trong thời gian thực Công nghệ này phù hợp để quản lý thông tin toàn bộ ứng dụng, đảm bảo dữ liệu luôn đồng bộ giữa khách hàng và cửa hàng Nhờ đó, quá trình trao đổi dữ liệu diễn ra nhanh chóng, hiệu quả hơn, nâng cao trải nghiệm người dùng và tối ưu hoạt động kinh doanh.
+ Firebase storage : Cung cấp dịch vụ lưu trữ file dưới dạng tệp âm thanh, hình ảnh,…
Dùng để lưu trữ thông tin ảnh của món ăn
Dịch vụ kho lưu trữ mã nguồn GitHub
GitHub là một dịch vụ lưu trữ mã nguồn hàng đầu, cung cấp kho lưu trữ Git cho các dự án phần mềm Nền tảng này không chỉ hỗ trợ đầy đủ các tính năng của Git mà còn bổ sung các tính năng xã hội giúp các developer dễ dàng tương tác và cộng tác với nhau Với GitHub, các lập trình viên có thể quản lý mã nguồn hiệu quả, chia sẻ dự án, và xây dựng cộng đồng phát triển phần mềm mạnh mẽ.
Github cung cấp các tính năng social networking như feeds, followers, và network graph để các developer học hỏi kinh nghiệm của nhau thông qua lịch sử commit
Github trở thành một yếu tố có sức ảnh hưởng lớn trong cộng động nguồn mở Cùng với
LinkedIn và GitHub được xem như những phiên bản thay thế của CV cá nhân, giúp bạn giới thiệu kỹ năng và kinh nghiệm nghề nghiệp một cách chuyên nghiệp Nhà tuyển dụng thường xuyên tham khảo hồ sơ GitHub để đánh giá năng lực lập trình và khả năng làm việc thực tế của ứng viên Việc duy trì hồ sơ LinkedIn và GitHub cập nhật thường xuyên sẽ tăng cơ hội được tuyển dụng và thể hiện vị thế cạnh tranh trên thị trường lao động.
Quản lý mã nguồn dễ dàng hơn với GitHub, nơi tất cả mã nguồn của dự án được lưu trữ an toàn trên nền tảng này Bạn có thể theo dõi toàn bộ quá trình làm việc qua các bình luận sau mỗi lần commit, giúp quản lý và kiểm soát dự án hiệu quả hơn Đặc biệt, GitHub cho phép nhiều người cùng hợp tác trên cùng một repo, thúc đẩy làm việc nhóm và tăng năng suất phát triển phần mềm.
Tracking sự thay đổi qua các version
Markdown là một cách định dạng văn bản phổ biến trên web giúp bạn dễ dàng chỉnh sửa cách hiển thị của tài liệu Với Markdown, bạn có thể định dạng từ khóa như in đậm, in nghiêng, thêm hình ảnh và tạo danh sách một cách dễ dàng Đây là công cụ mạnh mẽ để làm cho nội dung trực tuyến trở nên chuyên nghiệp và dễ đọc hơn.
Ứng dụng Đặt hàng
3.1.1 Login bằng account ứng dụng
1 Người dùng muốn đăng nhập
2 Từ màn hình đăng nhập, người dùng chọn Login
3 Người dùng nhập thông tin đăng nhập
5 Hệ thống hiển thị màn hình chính của ứng dụng -> đã đăng nhập thành công
3.1 Hệ thống báo lỗi nếu người dùng nhập thông tin đăng nhập sai định dạng 4.1 Chọn Login
5.1 Hệ thống báo lỗi sai định dạng thông tin
3.2 Hệ thống báo lỗi nếu người dùng cung cấp sai thông tin đăng nhập
5.2 Hệ thống báo lỗi sai thông tin đăng nhập
1 Người dùng muốn đăng nhập bằng tài khoản google
2 Từ màn hình đăng nhập, người dùng chọn Login by google
3 Google sẽ hiển thị tài khoản đã đăng nhập trên google service
4 Chọn Continue with *****(google account name)
5 Hệ thống hiển thị màn hình chính của ứng dụng -> đã đăng nhập thành công
1 Người dùng muốn đăng nhập bằng tài khoản facebook
2 Từ màn hình đăng nhập, người dùng chọn Login by facebook
3 Người dùng đăng nhập tài khoản facebook mình muốn đăng nhập
5 Hệ thống hiển thị màn hình chính của ứng dụng -> đã đăng nhập thành công
5.a Hệ thống báo lỗi nếu gmail dùng để truy cập facebook của người dùng trùng với email của 1 tài khoản đã tạo sẵn
6 Người dùng muốn đăng kí tài khoản
7 Từ màn hình đăng nhập, người dùng chọn Signup
8 Hệ thống hiển thị màn hình đăng kí
9 Người dùng nhập thông tin đăng kí
5.a Hệ thống báo lỗi nếu người dùng nhập thông tin đăng nhập sai hoặc dùng tài khoản đã tạo sẵn Kết thúc flow
1 Người dùng muốn đổi mật khẩu
2 Từ màn hình đăng nhập, người dùng chọn forgot password
3 Hệ thống hiển thị màn hình forgot password
4 Người dùng nhập email đăng kí
5 Người dùng kiểm tra email đăng kí và làm theo hướng dẫn để lấy lại mật khẩu
1.a Từ màn hình chính của ứng dụng, chọn profile ở thanh điều hướng phía dưới màn hình
Bắt đầu flow chính từ bước 2
3.1.6 Xác nhận địa chỉ của bản thân
1 Người dùng muốn thay đổi địa chỉ nhận hàng của bản thân
2 Người dùng chọn nút mũi tên ở phần địa chỉ trên đầu Page Home của ứng dụng
3 Hệ thống hiển thị màn hình google map để tìm kiếm địa chỉ
4 Người dùng chọn địa chỉ
5 Người dùng xác nhận địa chỉ
6 Hệ thống cập nhật lại địa chỉ
1 Người dùng chọn thanh tìm kiếm ở trang Home của ứng dụng
2 Người dùng nhập tên món ăn muốn tìm kiếm
3 Người dùng bấm nút tìm kiếm
4 Hệ thống hiển thị món ăn có tên trùng với tên người dùng tìm kiếm
1 Người dùng chọn loại món ăn ở trang Home của ứng dụng
2 Hệ thống hiển thị món ăn có theo loại món ăn
1 Người dùng muốn xem thông tin giỏ hàng
2 Từ màn hình chính của ứng dụng, người dùng chọn icon giỏ hàng ở bên phải phía trên thanh điều hướng
3 Hệ thống hiển thị màn hình cart
3.1.9.2 Thêm hàng vào giỏ hàng
1 Người dùng chọn món ăn ở trang Home của ứng dụng
2 Hệ thống hiển thị thông tin món ăn
3 Người dùng chọn kích thước món
4 Người dùng chọn kích thước số lượng
5 Người dùng bấm Add to cart
6 Hệ thống thêm món vào giỏ hàng của bản thân
1 Bấm vào món bất kì
2 Hệ thống hiển thị thông tin món ăn
3 Người dùng chọn kích thước,số lượng món ăn
5 Hệ thống chuyển sang màn hình Checkout
6 Chọn phương thức thanh toán, hình thức thanh toán
7 Xác nhận địa chỉ giao hàng và tổng hoá đơn
3.1.11 Thêm món ăn ưa thích
1 Người dùng chọn loại món ăn ở trang Home của ứng dụng
2 Hệ thống hiển thị thông tin món ăn
3 Người dùng bấm chọn Icon trái tim
4 Hệ thống đưa món ăn vào Favorite Page trong Navigation bar
5 Người dùng xem món ăn ưa thích ở Favorite Page trong Navigation bar
1 Từ trang chính của ứng dụng, chọn profile ở bên góc phải của thanh điều hướng
3 Hệ thống hiển thị lịch sử đặt hàng của người dùng
3.1.13 Cập nhật thông tin cá nhân
1 Từ trang chính của ứng dụng, chọn Profile ở bên góc phải của thanh điều hướng
3 Chọn nút thay đổi thông tin
Ứng dụng Cửa hàng
3.2.1 Login bằng account ứng dụng
6 Người dùng muốn đăng nhập
7 Từ màn hình đăng nhập, người dùng chọn Login
8 Người dùng nhập thông tin đăng nhập
10 Hệ thống hiển thị màn hình chính của ứng dụng -> đã đăng nhập thành công
3.1 Hệ thống báo lỗi nếu người dùng nhập thông tin đăng nhập sai định dạng 4.1 Chọn Login
5.1 Hệ thống báo lỗi sai định dạng thông tin
3.2 Hệ thống báo lỗi nếu người dùng cung cấp sai thông tin đăng nhập
5.2 Hệ thống báo lỗi sai thông tin đăng nhập
11 Người dùng muốn đăng kí tài khoản
12 Từ màn hình đăng nhập, người dùng chọn Signup
13 Hệ thống hiển thị màn hình đăng kí
14 Người dùng nhập thông tin đăng kí
5.a Hệ thống báo lỗi nếu người dùng nhập thông tin đăng nhập sai hoặc dùng tài khoản đã tạo sẵn Kết thúc flow
1 Từ trang chính của ứng dụng, chọn floating button ở góc trái, chọn add food để thêm món
2 Hệ thống hiển thị giao diện thêm món ăn
3 Người dùng nhập thông tin món
5 Hệ thống hiển thị thông báo thêm thành công
3a Người dùng nhập thiếu/sai thông tin món ăn 4a Chọn Add
4a.1 Hệ thống hiển thị thông báo lỗi Kết thúc flow
3.2.3.2 Sửa thông tin món ăn
1 Người dùng chọn món ăn muốn sửa thông tin
2 Người dùng bấm nút thay đổi
3 Người dùng thực hiện thay đổi thông tin món ăn
4 Người dùng bấm nút thay đổi để lưu lại thông tin
2a Người dùng nhập thông tin không đúng định dạng
2a.1 Hệ thống báo lỗi thông tin không đúng định dạng
1 Người dùng chọn món muốn xoá
2 Người dùng kéo qua phải bấm nút xoá
3 Người dùng bấm nút xoá
4 Hệ thống xoá món thành công
3.2.4 Cập nhật thông tin cửa hàng
6 Từ trang chính của ứng dụng, chọn floating button ở bên góc trái màn hình
8 Chọn nút thay đổi thông tin
11 Từ trang chính của ứng dụng, chọn floating button ở bên góc trái màn hình
15 Hệ thống sẽ hiển thị đồ thị thể hiện doanh thu theo khoảng thời gian bạn chọn
MVC
Đa số các ứng dụng thuộc bất kì nền tảng nào cũng có thể chia thành hai phần: giao diện
Trong quá trình phát triển mô hình, việc tách riêng phần "View" và dữ liệu "Model" đòi hỏi một phần trung gian có khả năng kết nối hai thành phần này một cách hiệu quả Phần trung gian này chính là một mô hình (pattern), giúp đồng bộ hóa dữ liệu và giao diện người dùng, tạo ra quá trình phát triển phần mềm linh hoạt và dễ bảo trì Áp dụng mô hình phù hợp không chỉ nâng cao trải nghiệm người dùng mà còn tối ưu hóa hiệu suất hệ thống, mang lại lợi ích lâu dài cho dự án.
Quen thuộc và phổ biến nhất với chúng ta là mô hình MVC (Model – View – Controller)
MVC là mô hình tiêu chuẩn được đánh giá cao về tính logic và hợp lý, giúp tối ưu hóa quá trình phát triển ứng dụng Tuy nhiên, khi có sự xuất hiện của các mô hình mới, việc làm quen và thích nghi có thể gây ra sự bối rối cho các nhà phát triển.
MVC được hiểu như thế nào?
Giao diện (View) là phần dành cho người sử dụng, nơi người dùng có thể truy cập và lấy dữ liệu từ mô hình MVC thông qua các thao tác truy vấn Giao diện còn ghi nhận hoạt động của người dùng nhằm tương tác hiệu quả với Controller, đồng thời có khả năng thực hiện các hành vi và phản hồi lại người dùng nhờ vào tính năng binding và command.
Mô hình lưu trữ toàn bộ dữ liệu của ứng dụng, đóng vai trò là cầu nối kết nối giữa cơ sở dữ liệu quản lý nhân sự và giao diện người dùng Nó cho phép người dùng nhập dữ liệu và xuất dữ liệu từ cơ sở dữ liệu theo đúng quyền truy cập của từng người dùng khi có yêu cầu.
Trong kiến trúc MVC, Controller đóng vai trò quan trọng trong việc xử lý các yêu cầu của người dùng qua giao diện người dùng (view) Nó kết nối với mô hình (model) để truy xuất dữ liệu phù hợp, sau đó truyền dữ liệu này trở lại view để hiển thị rõ ràng và chính xác cho người dùng Controller đảm bảo quá trình trao đổi dữ liệu giữa người dùng, mô hình và giao diện diễn ra thuận lợi, giúp nâng cao trải nghiệm người dùng và đảm bảo tính tương tác của ứng dụng.
Ứng dụng Đặt hàng
5.1.1 Form đăng nhập Điều kiện hiển thị: Người dùng mở ứng dụng từ điện thoại
Chức năng: Đăng nhập vào hệ thống
1 Edit text Người dùng nhập email
2 Edit text Người dùng nhập mật khẩu
3 Text view Chuyển tới màn hình Reset password
4 Button Thực hiện chức năng đăng nhập
5 Button Chuyển đến đăng nhập bằng facebook
6 Button Chuyển đến đăng nhập bằng google
7 Button Người dùng chuyển qua đăng ký
1 Edit text Người dùng nhập email
2 Edit text Người dùng nhập mật khẩu
3 Edit text Người dùng xác nhận mật khẩu
Thực hiện chức năng đăng kí tài khoản
5 Button Chuyển về đăng nhập
5.1.2 Form Signup Điều kiện hiển thị : Người dùng chọn
Signup tại Form đăng nhập
Chức năng : Đăng kí tài khoản
1 Edit text Người dùng nhập email
Thực hiện chức năng reset mật khẩu
3 Button Chuyển về đăng nhập
5.1.3 Reset mật khẩu Điều kiện hiển thị : Người dùng chọn Forgot password tại Login form
Chức năng : Reset mật khẩu khách hàng
2 Search bar Nhập tên món cần tìm
3 Button Tìm kiếm món ăn theo tên đã nhập
5 Button Đưa ra tất cả món ăn
6 Button Đưa ra tất cả món ăn Phương Tây
7 Button Hiển thị các món đồ uống
8 Button Hiển thị các món asian
Hiển thị món theo lượng rating gần đây
5.1.4 Màn hình Home Điều kiện hiển thị: Đăng nhập thành công vào hệ thống
Chức năng: Xem món ăn, là cầu nối liên kết toàn bộ ứng dụng
Hiển thị các thông tin món ăn mới
Hiển thị danh sách món ăn đang sale
12 Button Chuyển đến giỏ hàng
1 Search bar Tìm địa chỉ nhận hàng
2 Button Thay đổi thành ảnh vệ tinh
3 Button ĐỊnh vị vị trí hiện tại
4 Picker Chọn vị trí trong bản đồ
5 Button Xác nhận địa chỉ
5.1.5 Chọn vị trí Điều kiện hiển thị : Trong trang Home chọn thay đổi địa chỉ
Chức năng : CHọn địa chỉ nhận hàng
5.1.6 Màn hình chi tiết món ăn Điều kiện hiển thị: Người dùng chọn vào một item món ăn bất kì
Chức năng của ứng dụng cho phép người dùng xem thông tin chi tiết về món ăn, đánh giá ưa thích, nhắn tin trực tiếp với cửa hàng để đặt hàng hoặc hỏi đáp Người dùng có thể dễ dàng chia sẻ món ăn yêu thích, tăng giảm số lượng hoặc chọn kích thước phù hợp trước khi thực hiện mua hàng hoặc thêm vào giỏ hàng Ngoài ra, hệ thống còn cho phép khách hàng đánh giá món ăn và để lại bình luận, giúp tăng trải nghiệm mua sắm và tối ưu hóa quy trình đặt hàng trực tuyến.
1 Image View Hình ảnh món ăn
2 Text view Xem lượt rating
3 Text view Tên món ăn
5 Text view Mô tả món ăn
11 Button Thêm vào giỏ hàng
12 Button Chuyển tới thanh toán
13 Recycle View Hiển thị các món ăn cùng cửa hảng
14 Recycle View Hiển thị các món ăn cùng Category
Hiển thị danh sách các comment
5.1.7 Màn hình Favorite Điều kiện hiển thị : Người dùng Favourite trên Navigation Bar
Chức năng : Hiển thị danh sách các món ăn ưa thích
Hiển thị danh sách các món ăn ưa thích
5.1.8 Màn hình giỏ hàng Điều kiện hiển thị : Người dùng chọn icon giỏ hàng tại màn hình chính, hoặc chọn Buy now tại màn hình chi tiết món ăn
Chức năng của hệ thống cho phép người dùng xem lại các món ăn trong giỏ hàng của mình một cách dễ dàng Người dùng có thể xóa các món ăn không còn muốn mua hoặc thay đổi số lượng món ăn bằng cách tăng hoặc giảm lượng trong giỏ hàng Điều này giúp tối ưu trải nghiệm mua sắm, mang lại sự tiện lợi và linh hoạt trong quá trình đặt hàng.
1 Button Giảm số lượng món ăn
2 Button Tăng số lượng món ăn
3 Text View Số tiền món ăn
5 Button Ghi chú thích về món ăn
6 Text View Hiển thị số món ăn trong giỏ
7 Text View Tổng số tiền
8 Button Chuyển sang thanh toán
5.1.9 Màn hình thanh toán Điều kiện hiển thị : Khách hàng chọn nút Continue trong giỏ hàng
Chức năng : Giúp khách hàng kiểm tra địa chỉ nhận hàng, chọn cách thanh toán, cách thay toán,
Hiển thị địa chỉ nhận hàng hiện tại
Chọn phương thức vận chuyển
3 Radio Group Chọn phương thức thanh toán
4 Text View Số tiền các món trong giỏ
5 Text View Số tiền vận chuyển
6 Text View Số tiền giảm giá
7 Text View Tổng tiền đơn hàng
8 Button Thực hiện chức năng đặt hàng
5.1.10 Quản lý tính năng cá nhân Điều kiện hiển thị : Khách hàng chọn Profile trên thanh Navigation Bar
Chức năng : Hiển thị các tính năng liên quan đến bản thân người dùng
1 Text view Hiển thị tên khách hàng
2 Text view Hiển thị email đăng kí
Chuyển tới trang quản lý thông tin
Chuyển tới trang quản lý hình thức thanh toán
Chuyển tới trang lịch sử đơn hàng
Chuyển tới trang giới thiệu app
5.1.11 Quản lý thông tin Điều kiện hiển thị : Trong quản lý tính năng cá nhân chọn Profile Chức năng : Quản lý thông tin khách hàng
1 Image View Avatar người dùng
Chọn ảnh từ thư viện để thay đổi avatar
Chuyển sang chế độ thay đổi thông tin
4 Text View Tên người dùng
5 Text View Email người dùng
6 Text View Số điện thoại người dùng
5.1.12 Phương thức thanh toán Điều kiện hiển thị : Trong quản lý tính năng cá nhân chọn Payment method
Chức năng : Quản lý các hình thức thanh toán
1 Text View Số tiền hiện tại
2 Button Thêm cách thanh toán
Toàn bộ các đơn hàng
2 Text View Mã đơn hàng
3 Text View Tổng tiền đơn hàng
4 Text View Tổng số item trong đơn hàng
5 Text View Ngày tháng đặt hàng
5.1.13 Lịch sử đặt hàng Điều kiện hiển thị : Trong quản lý tính năng cá nhân chọn Order History
Chức năng : Xem lại toàn bộ thông tin các đơn hàng từ trước tới nay
5.1.14 Xem thông tin đơn hàng đã mua Điều kiện hiển thị : Khách hàng chọn button show detail order tại Order history
Chức năng : Xem đơn hàng (thông tin, giá cả), thực hiện chuyển đến hủy đơn hàng
1 Text view Thời gian đặt hàng
Toàn bộ các món ăn trong đơn hàng
3 Text view Tổng tiền các món ăn
5 Text view Tổng tiền vận chuyển
6 Text view Tổng tiền hoá đơn
7 Text view ID hoá đơn
8 Text view Tên người đặt
9 Text view Số điện thoại
Ứng dụng Cửa hàng
5.2.1 Đăng nhập Điều kiện hiển thị: Vào ứng dụng
2 Button Chọn page Sign up
3 Edit Text Người dùng nhập email
4 Edit Text Người dùng nhập mật khẩu
5 Button Người dùng chọn để đăng nhập
1 Edit text Người dùng nhập email
2 Edit text Người dùng nhập mật khẩu
3 Edit text Người dùng xác nhận mật khẩu
4 Edit text Người dùng nhập tên cửa hàng
5 Edit text Người dùng nhập số điện thoại
6 Edit text Người dùng nhập địa chỉ
Thực hiện chức năng reset mật khẩu
5.2.2 Đăng ký Điều kiện hiển thị : Người dùng chọn Sign up tại Login form
Chức năng : Đăng ký tài khoản mới
5.2.3 Home page Điều kiện: Đăng nhập thành công
Chức năng: Hiển thị thông tin các món của cửa hàng, thông tin cơ bản của cửa hàng
2 Text View Hiển thị tên cửa hàng
3 Text View Hiển thị email cửa hàng
4 Text View Hiển thị địa chỉ cửa hàng
5 Text View Hiển thị số món ăn cửa hàng
Hiển thị danh sách các món ăn của cửa hàng
5.2.4 Trang thêm món ăn Điều kiện hiển thị: Nhấn chọn Add food
Chức năng: Thêm món ăn
1 Edit Text Tên món ăn
2 Spinner Chọn loại món ăn
3 Edit Text Số tiền giảm giá
4 EditText Tiền của món size S
5 EditText Số lượng của món size S
6 EditText Tiền của món size M
7 EditText Số lượng của món size M
8 EditText Tiền của món size L
9 EditText Số lượng của món size L
10 Button Chọn ảnh món ăn
11 Image View Hiện ảnh món ăn
12 Edit Text Mô tả món ăn
13 Button Xóa hết thông tin đã điến
14 Button Thêm món ăn vào list
5.2.5 Trang sửa món Điều kiện hiển thị: Nhấn chọn ảnh của món ăn bất kỳ trong home page
Chức năng: Xem sửa thông tin,xem rating, comment
Kí hiệu Loại Component Mô tả
1 Image View Hiển thị ảnh món ăn
3 Button Chuyển sang chế độ chỉnh sửa thông tin
4 EditText Số lượng món size S
5 EditText Số tiền món size S
6 EditText Số lượng món size M
7 EditText Số tiền món size M
8 EditText Số lượng món size L
9 EditText Số tiền món size L
10 EditText Số tiền giảm giá
11 EditText Mô tả món ăn
12 Recycle View Danh sách các comment đánh giá món ăn
5.2.6 Profile Điều kiện hiển thị: Nhấn chọn mục Profile Chức năng: Quản lý thông tin cá nhân
1 Edit text Tên cửa hàng
2 Text view Email cửa hàng
3 Text View Số điện thoại của cửa hàng
4 Button Thay đổi thông tin
5 Text View Địa chỉ của cửa hàng
1 Date Picker Chọn ngày bắt đầu
2 Date Picker Chọn ngày kết thúc
Thống kê doanh thu theo thời gian được chọn
5.2.7 Thống kê doanh thu Điều kiện hiển thị : Chọn statistical button
Chức năng : Xem thông tin về doanh thu dưới dạng biểu đồ
Nhằm đảm bảo phần mềm có thể hoạt động một cách hiểu quả nhất, điện thoại của người dùng cần phải đạt các tối thiểu các yêu cầu sau:
Hệ điều hành android Phiên bản SDK nhỏ nhất 26 (Khuyến khích 30)
Dung lượng bộ nhớ Tối thiểu 256MB trở lên
Tốc độ sử lý Tối thiểu 1 GHz trở lên
Bảng phân công công việc Đồ án nhóm Pizza University Ngày chuẩn bị
No Nhiệm vụ Ngày bắt đầu Ngày hoàn thành Người phụ trách Trạng thái
9 Thiết kế UI Login 29/09/2022 29/09/2022 Hoàn thành
13 Thiết kế UI các Filters 14/10/2022 17/10/2022 Hoàn thành
Bill Detail 29/10/2022 30/10/2022 Trần Hoàng Gia Bảo Hoàn thành
Provider 18/12/2022 28/12/2022 Trần Hoàng Gia Bảo Hoàn thành
27/12/2022 28/12/2022 Trần Hoàng Gia Bảo Hoàn thành
27/12/2022 28/12/2022 Nguyễn Trọng Tính Hoàn thành
Đánh giá
• Giao diện trực quan, chức năng thuận tiện, dễ dàng sử dụng
• Đáp ứng được các chức năng trong việc mua hàng online như đặt hàng, đưa vào giỏ hàng, tạo sản phẩm mới
• Đối với ứng dụng quản lý, sửa dổi dữ liệu sản phẩm nhanh chóng, tránh gây thiệt hại cho người bán
Người dùng có thể đồng thời là người mua và người bán trên nền tảng của chúng tôi chỉ với một lần đăng ký tài khoản Việc tạo tài khoản duy nhất giúp người dùng dễ dàng truy cập tất cả các chức năng và dịch vụ, tối ưu hóa trải nghiệm mua bán trực tuyến Đây là giải pháp tiện lợi, tiết kiệm thời gian và nâng cao hiệu quả giao dịch trên hệ thống.
Thiết kế tách biệt giữa ứng dụng dành cho người mua và người quản lý giúp nâng cao hiệu quả quản lý đơn hàng, tối ưu hóa quá trình xử lý và cải thiện trải nghiệm người dùng.
• Ứng dụng hỗ trợ người mua gửi đánh giá về sản phẩm cho người bán
• Ứng dụng hỗ trợ chức năng nhắn tin giúp người bán và người mua có thể liên lạc trực tiếp
• Ứng dụng vẫn chưa hỗ trợ người mua thanh toán chuyển khoản cho người bán
• Người mua chưa thể chặn người bán và ngược lại
• Chưa có chức năng theo dõi đơn hàng
• Chưa nhúng được quảng cáo vào ứng dụng
• Chưa có tính năng tích điểm thành viên.
Hướng phát triển
• Tăng cường tốc độ xử lý bằng các thuật toán nhanh hơn, cải thiện trải nghiệm của người dùng
• Chỉnh sửa UI/UX sao cho phù hợp hơn nữa với người dung
• Nhúng được quảng cáo vào ứng dụng, hỗ trợ thu them lợi nhuận
• Thiết kế chức năng thống kê (statistic) với nhiều loại hình biểu đồ theo nhiều mốc thời gian khác nhau hỗ trợ cho người bán
• Thêm chức năng block người bán từ người mua và ngược lại
• Thêm chức năng theo dõi, tình trạng đơn hang
• Thêm chức năng tích điểm thành viên