Đặt vấn đề Có những đứa trẻ xin mua đồ chơi mới mỗi ngày nhưng chắc chắn trong một ngày hoặc tuần vài tuần, bạn có thể tìm thấy món đồ chơi đó ở một góc nhà của bạn. Cứ khoảng 238 đồ chơi được thu thập với một đứa trẻ, nhưng chỉ sử dụng 12 đồ chơi để chơi trong khoảng thời gian trong một ngày. Hiện nay, chi phí dành cho trẻ em trong mỗi gia đình đều là một vấn đề rất lớn. Trong đó có chi phí về đồ chơi dành cho trẻ.
Trẻ em thích chơi đồ chơi tuy nhiên rất nhanh chán nếu chơi mãi một món đồ chơi. Khiến cho phụ huynh phải mua đồ chơi mới để thay thế các đồ chơi cũ. Mục tiêu đề tài Để khắc phục cho vấn đề, ứng dụng Toydee được sinh ra nhằm cho phép người dùng trao đổi các món đồ chơi với nhau, tiết kiệm chi phí. Các phụ huynh trao đổi đồ chơi mà họ đã có với một số phụ huynh khác có thể cung cấp đồ chơi mà họ có.
Cả hai cha mẹ sẽ có thể cung cấp một món đồ chơi mới cho con của họ mà không cần chi một xu. Thông qua ứng dụng, người dùng có thể nắm được những thông tin về các món đồ chơi đăng lên trao đổi, đăng đồ chơi trao đổi của mình lên, yêu cầu trao đổi đồ chơi với người khác, trò chuyện với người trao đổi, … 1. Phạm vi đề tài Vì quá trình xây dựng ứng dụng và thực hiện đề tài có thời gian giới hạn, cùng với đó là mảng kiến thức về Dart và framework Flutter quá rộng lớn, nên phạm vi của đề tài được đề ra là các chức năng mấu chốt của đề tài được hoàn thiện, thực hiện tốt trải nghiệm người dùng trên môi trường di động. Phương pháp nghiên cứu - Tham khảo các tài liệu trực tuyến về các hoạt động trao đổi qua lại giữa người dùng.
- Tiến hình khảo sát lấy yêu cầu thực tế từ người dùng. 1 - Tham khảo một số ý tưởng và ứng dụng trao đổi đồ chơi qua internet. - Tham khảo tài liệu, video hướng dẫn cách áp dụng ứng dụng các công nghệ mới vào quá trình xây dựng ứng dụng. Ý nghĩa và kết quả của đề tài 1.
Sản phẩm - Tạo ra được ứng dụng trao đổi đồ chơi trực tuyến giữa các người dùng. - Đáp ứng được các chức năng đề ra của ứng dụng. Tài liệu - Kiến thức về các công nghệ đã sử dụng vào đồ án: ngôn ngữ, framework, database, … 2 CHƯƠNG 2. Ngôn ngữ Dart Dart là ngôn ngữ lập trình mới, được phát triển bởi Google, hiện đã được chấp thuận bởi tổ chức Ecma.
Dart được sử dụng để xây dựng các loại ứng dụng: web, server, di động (IOS và Android với công cụ Flutter). Dart là ngôn ngữ hỗ trợ lập trình hướng đối tượng, cú pháp kiểu C, mã code Dart có thể biên dịch thành JavaSript để chạy trên trình duyệt. Nó hỗ trợ những khái niệm lập trình hiện đại như giao diện lớp, lớp trừu tượng, … 2. Flutter là gì Flutter là mobile UI framework của Google để tạo ra các giao diện chất lượng cao trên iOS và Android trong khoảng thời gian ngắn.
Flutter hoạt động với những code sẵn có được sử dụng bởi các lập trình viên, các tổ chức. Flutter gồm 2 thành phần quan trọng: - Một SDK (Software Development Kit): Một bộ sưu tập các công cụ sẽ giúp bạn phát triển các ứng dụng của mình. Điều này bao gồm các công cụ để biên dịch mã của bạn thành mã máy gốc (mã cho iOS và Android). - Một Framework (UI Library based on widgets): Một tập hợp các thành phần giao diện người dùng (UI) có thể tái sử dụng (button, text inputs, slider, .) giúp bạn có thể cá nhân hóa tùy theo nhu cầu của riêng mình.
Tại sao nên sử dụng Flutter - Phát triển ứng dụng nhanh chóng: Tính năng hot reload giúp bạn nhanh chóng và dễ dàng thử nghiệm, xây dựng giao diện người dùng, thêm tính năng và sửa lỗi nhanh hơn. Trải nghiệm tải lại lần thứ hai, mà không làm mất trạng thái, trên emulator, simulator và device cho iOS và Android. - Giao diện người dùng đẹp và thu hút: Thỏa mãn người dùng của bạn với các widget built-in đẹp mắt của Flutter theo Material Design và Cupertino (iOS-flavor), các giao diện 3 lập trình ứng dụng (API) chuyển động phong phú, scroll tự nhiên mượt mà và tự nhận thức được nền tảng. - Framework hiện đại: Dễ dàng tạo giao diện người dùng của bạn với framework hiện đại của Flutter và tập hợp các platform, layout và widget phong phú.
Giải quyết các thách thức giao diện người dùng khó khăn của bạn với các API mạnh mẽ và linh hoạt cho 2D, animation, gesture, hiệu ứng và hơn thế nữa. Firebase Firebase là một nền tảng mà Google cung cấp để phát triển các ứng dụng di động và trang web, hỗ trợ Developer trong việc đơn giản hóa các thao tác với dữ liệu và không cần tác động tới backend hay server. Ưu điểm - Tốc độ cao: Firebase hỗ trợ phát triển ứng dụng với tốc độ nhanh chóng, giảm bớt thời gian phát triển và tiếp thị ứng dụng. - Đơn giản, dễ dàng trong sử dụng: Người dùng có thể tạo tài khoản Firebase bằng tài khoản Google và cũng như sử dụng nền tảng này trong phát triển ứng dụng một cách dễ dàng.
- Một nền tảng, đa dịch vụ: Firebase cung cấp đầy đủ các dịch vụ hỗ trợ phát triển web, bạn có thể chọn database Firestore hoặc Realtime theo ý muốn. - Là một phần của Google: Firebase đã được mua lại và hiện tại đang là một phần của Google. Nó khai thác triệt để sức mạnh và các dịch vụ sẵn có của Google. - Tập trung phát triển chủ yếu về giao diện người dùng: Firebase cho phép lập trình viên tập trung chủ yếu vào phát triển phần giao diện người dùng nhờ kho Backend mẫu phong phú đa dạng.
- Không có máy chủ: Điều này giúp Firebase có khả năng tối ưu hóa về hiệu suất làm việc thông qua mở rộng cụm database. 4 - Học máy: Firebase cung cấp học máy cho lập trình viên, hỗ trợ tối đa cho việc phát triển ứng dụng. - Tạo ra lưu lượng truy cập: Với khả năng hỗ trợ tạo lập các chỉ mục, Firebase giúp nâng cao thứ hạng của ứng dụng trên bảng xếp hạng Google, từ đó tăng lượt traffic. - Theo dõi lỗi: Firebase là công cụ phát triển, khắc phục lỗi tuyệt vời.
- Sao lưu: Firebase sao lưu thường xuyên, giúp đảm bảo tính sẵn có và bảo mật thông tin cho dữ liệu. Nhược điểm - Không phải mã nguồn mở. - Chỉ hoạt động trên CSDL NoSQL. - Lập trình viên không được truy cập mã nguồn.
- Phạm vi hoạt động bị hạn chế ở một vài quốc gia. - Một vài dịch vụ cần trả phí, chi phí dành cho Firebase tương đối lớn và không ổn. - Chỉ có thể chạy trên Google Cloud. KHẢO SÁT VÀ PHÂN TÍCH ĐẶT TẢ YÊU CẦU 3.
Khảo sát hiện hiện trạng 3. Phương pháp khảo sát Dùng bảng câu hỏi. Đối tượng khách hàng Những người trong độ tuổi từ 18 – 30. Danh sách câu hỏi khảo sát • Giới tính của bạn là gì? • Độ tuổi của bạn là bao nhiêu? • Bạn đang là sinh viên trường nào? • Gia đình bạn có thường chi tiền để mua sắm đồ chơi không? • Nếu có thì số tiền đó nằm ở mức nào? • Gia đình bạn có những đồ chơi không sử dụng không? • Gia đình bạn có nhu cầu trao đổi món đồ chơi không? • Bạn có từng sử dụng qua ứng dụng trao đổi đồ chơi nào chưa? • Tần suất sử dụng các ứng dụng này? • Theo bạn, ứng dụng trao đổi đồ chơi sẽ mang lại những lợi ích như thế nào? • Theo bạn, một ứng dụng trao đổi đồ chơi nên tập trung vào mặt nào? • Các chức năng cần thiết của một ứng dụng trao đổi là? 3.
Danh sách các yêu cầu STT Phân loại Tên yêu cầu Mô tả 1 Chức năng Đăng bài trao đổi các món Tính năng quan trọng của ứng dụng. Người dùng nhập bắt đầu nhập thông tin, xem trước bài đăng. 6 2 Chức năng Tìm kiếm nhanh theo yêu Ứng dụng hiện ra một danh sách các cầu người dùng. điều kiện lọc.
Người dùng chọn điều kiện mong muốn để tìm sản phẩm 3 Chức năng Trò chuyện giữa các bên Sau khi đồng ý trao đổi, hệ thống kết trao đổi. nối 2 người dùng với nhau thông qua màn hình tin nhắn. Hai bên tự trao đổi hình thức nhận đồ chơi (Ứng dụng chưa hỗ trợ vận chuyển) 4 Chức năng Đánh giá và điểm tin cậy Sau khi hoàn thành một trao đổi, người dùng người dùng sẽ được tăng điểm tin cậy (Điểm đánh giá), Sau khi quyên góp cũng sẽ nhận được điểm tin cậy. 5 Chức năng Kiểm trang tình trạng đồ Hệ thống cần xác nhận tình trạng của chơi chơi món đồ chơi thông qua thông tin người dùng cung cấp trong bài đăng.
Sau khi xác nhận xong, bài đăng sẽ được hiển thị trên ứng dụng. 6 Chức năng Đăng ký Hệ thống cho phép người dùng đăng ký tài khoản mới bằng email, số điện thoại, google, facebook, … Sau khi đăng ký, hệ thống sẽ gửi mail xác nhận cho người dùng. (cần xác nhận email) 7 Chức năng Đăng nhập Người dùng đăng nhập ứng dụng bằng tài khoản đã đăng ký. Người dùng có thể thay đổi mật khẩu thông qua email khi quên mật khẩu.
7 8 Chức năng Cài đặt Hệ thống cho phép người dùng thay đổi ngôn ngữ theo vị trí. Hệ thống cho phép người dùng thay đổi giao diện sáng tối ứng dụng. Người dùng có thể đặt lại mật khẩu hoặc lưu đăng nhập. 9 Chức năng Thông báo Hệ thống sẽ thông báo cho người dùng khi có yêu cầu trao đổi đồ chơi.
10 Giao diện Giao diện bắt mắt, đơn giản. 11 Hiệu năng Thời gian truy cập, tốc độ xử lý tương tác, độ chính xác cao 8 CHƯƠNG 4. PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 4. Phân tích thiết kế hệ thống 4.
Công nghệ sử dụng • Nền tảng: Flutter Framework, version 4.2 • Ngôn ngữ: Dart • UI Framework: Flutter Framework. • UI design tool: Figma • Database: Firebase Cloud Firebase • IDE: VS Code • Kiến trúc ứng dụng: MVVM’ 4. Kiến trúc hệ thống Mô hình Client – Server - Lớp Client: Hiển thị giao diện người dùng, thông qua kết nối Internet để kết nối đến cơ sở dữ liệu quản lý thư viện. Là nơi diễn ra các tương tác của người dùng với chương trình như nhập, các thao tác truy xuất dữ liệu.
- Lớp Server: Quản lý và chứa toàn bộ dữ liệu của phần mềm. Đồng thời xử lý các yêu cầu nhập/xuất được gửi xuống từ lớp Client. Kiến trúc ứng dụng Mô hình MVVM 9 4.