Báo cáo đồ án xây dựng ứng dụng bán giày - SV: Nguyễn Tuấn Khôi & Nguyễn Bá Khanh

Tài liệu tham khảo đồ án xây dựng ứng dụng bán giày bằng Flutter và Firebase. Báo cáo đầy đủ, chi tiết các chức năng, kiến trúc hệ thống cho sinh viên.

Chuyên ngành

Lập trình di động

Người đăng

Ẩn danh

Thể loại

Đồ án môn học

2022

68
1
0

Phí lưu trữ

30 Point

Tóm tắt

I. Giới Thiệu Về Ứng Dụng Bán Giày Flutter Firebase

Ứng dụng bán giày xây dựng bằng Flutter và Firebase là một giải pháp thương mại điện tử hiện đại, cung cấp trải nghiệm mua sắm mượt mà trên cả iOS và Android. Flutter cho phép phát triển đa nền tảng nhanh chóng với giao diện đẹp, trong khi Firebase cung cấp backend mạnh mẽ với xác thực người dùng, cơ sở dữ liệu realtime và lưu trữ đám mây. Đây là đồ án hoàn hảo cho những ai muốn tìm hiểu về phát triển ứng dụng di động và nền tảng dịch vụ đám mây hiện đại.

1.1. Tại Sao Chọn Flutter và Firebase

Flutter là framework phát triển ứng dụng nguồn mở của Google, nổi tiếng với hiệu suất cao và khả năng tạo UI đẹp mắt. Firebase là nền tảng phát triển ứng dụng của Google cung cấp các dịch vụ backend hoàn chỉnh. Kết hợp hai công nghệ này giúp giảm thời gian phát triển, chi phí vận hành và tăng khả năng mở rộng ứng dụng.

II. Các Tính Năng Chính Của Ứng Dụng

Ứng dụng bán giày cần tích hợp các tính năng thiết yếu để tạo trải nghiệm mua sắm hoàn chỉnh. Bao gồm hệ thống xác thực người dùng an toàn, danh sách sản phẩm với tìm kiếm và lọc, giỏ hàng động, thanh toán trực tuyến, quản lý đơn hàng và hệ thống đánh giá sản phẩm. Các tính năng này được hỗ trợ toàn bộ bởi Firebase Realtime Database và Cloud Firestore, đảm bảo dữ liệu được đồng bộ hóa thời gian thực.

2.1. Quản Lý Sản Phẩm và Giỏ Hàng

Hệ thống quản lý sản phẩm cho phép hiển thị danh sách giày chi tiết với hình ảnh, giá cả và kích cỡ. Tính năng giỏ hàng cho phép người dùng thêm, xóa và sửa số lượng sản phẩm. Dữ liệu giỏ hàng được lưu trữ trên Firebase, cho phép đồng bộ hóa giữa các thiết bị của người dùng.

2.2. Hệ Thống Thanh Toán và Đơn Hàng

Ứng dụng tích hợp gateway thanh toán như Stripe hoặc PayPal để xử lý giao dịch an toàn. Sau khi thanh toán thành công, đơn hàng được lưu vào Firebase và người dùng có thể theo dõi trạng thái đơn hàng thời gian thực. Admin có thể quản lý và cập nhật trạng thái giao hàng từ bảng điều khiển.

III. Kiến Trúc Kỹ Thuật và Stack Công Nghệ

Kiến trúc ứng dụng bao gồm ba lớp: Frontend (Flutter), Backend (Firebase) và Database (Firestore/Realtime Database). Flutter xử lý giao diện người dùng và logic khách hàng, Firebase Authentication quản lý xác thực, Cloud Firestore lưu trữ dữ liệu sản phẩm và đơn hàng, Firebase Storage lưu trữ hình ảnh, và Cloud Functions xử lý logic phía máy chủ. Mô hình kiến trúc này đảm bảo độ bảo mật, khả năng mở rộng và hiệu suất cao.

3.1. Frontend với Flutter

Flutter cung cấp widget rich, Material Design components để xây dựng giao diện đẹp. Sử dụng các package như provider, get hoặc bloc để quản lý state. Kết nối với Firebase SDK để gửi yêu cầu API và lắng nghe dữ liệu thời gian thực, tạo trải nghiệm người dùng responsive và interactive.

3.2. Backend với Firebase

Firebase cung cấp các dịch vụ backend đầy đủ mà không cần máy chủ riêng. Cloud Firestore quản lý dữ liệu sản phẩm, người dùng, đơn hàng với các quy tắc bảo mật chi tiết. Cloud Functions thực thi logic phía máy chủ, xử lý thanh toán và gửi thông báo. Realtime Database đồng bộ hóa dữ liệu theo thời gian thực.

IV. Hướng Dẫn Phát Triển và Best Practices

Để phát triển ứng dụng thành công, cần tuân theo các best practices: thiết kế cơ sở dữ liệu Firestore hợp lý với bộ sưu tập lồng nhau, thiết lập quy tắc bảo mật chi tiết (Firebase Security Rules), tối ưu hóa câu truy vấn để giảm chi phí, sử dụng Firebase Emulator Suite để kiểm tra cục bộ, và triển khai CI/CD pipeline. Ngoài ra, cần đảm bảo xử lý lỗi toàn diện, caching dữ liệu, và tối ưu hiệu suất ứng dụng.

4.1. Thiết Lập Dự Án và Cấu Hình Ban Đầu

Bước đầu tiên là tạo dự án Firebase trên console, cấu hình iOS và Android. Thiết lập Firebase SDK trong Flutter bằng firebase_core, cloud_firestore, và firebase_auth. Tạo cấu trúc thư mục rõ ràng: models, services, screens, widgets. Cấu hình quy tắc bảo mật Firestore để chỉ cho phép người dùng xác thực truy cập dữ liệu.

4.2. Testing Deployment và Tối Ưu Hóa

Thực hiện unit testing cho logic, widget testing cho UI, integration testing cho toàn bộ flow. Sử dụng Firebase Emulator Suite để kiểm tra mà không tốn chi phí. Tối ưu hóa hiệu suất bằng lazy loading, pagination, và caching. Triển khai qua Firebase Hosting, Google Play Store và Apple App Store với CI/CD pipeline.

28/12/2025

Trích đoạn nội dung tài liệu

CHƯƠNG I. GIỚI THIỆU ĐỀ TÀI 1. Giới thiệu chung Hiện nay, các công nghệ tiên tiến ngày càng phát triển mạnh mẽ và được ứng dụng ngày càng nhiều vào lĩnh vực kinh tế cũng như đời sống thường nhật của con người. Một điểm tiêu biểu trong việc phát triển các công nghệ đó phải kể đến việc ứng dụng công nghệ thông tin vào hầu hết các hoạt động.

Nhờ đó, các công việc được thực hiện nhanh, chính xác và đạt kết quả cao hơn rất nhiều. Khi xã hội ngày càng phát triển, mức sống của người dân được nâng cao, thu nhập kinh tế càng được cải thiện thì chiếc điện thoại thông minh không còn trở nên xa lạ với mọi người nữa mà ngược lại nó là một vật dụng không thể thiếu đối với người dân hiện nay. Hầu hết mỗi người đều trang bị cho mình một chiếc điện thoại phù hợp với nhu cầu và túi tiền của mình. Tuy nhiên, với cuộc sống ngày càng bận rộn như hiện nay thì việc muốn mua một đôi giày ưa thích thì người tiêu dùng phải đến tận cửa hàng để chọn lựa vì thế sẽ mất khác nhiều thời gian và công sức.

Cùng với các lý do đã nêu trên, nhóm đồ án đã quyết định chọn đề tài "Xây dựng ứng dụng bán giày". Người dùng chỉ cần các thao tác đơn giản trên điện thoại di động là có thể đặt hàng nhanh chóng và có được đôi giày mình cần mà không cần phải tới tận cửa hàng. Mục tiêu đề tài 2. Lý thuyết - Nghiên cứu về Flutter và ngôn ngữ lập trình Dart - Nắm rõ các thao tác trên môi trường phát triển tích hợp Android studio và công cụ lập trình Visual studio code - Nghiên cứu và sử dụng dịch vụ cơ sở dữ liệu trên nền tảng đám mây – Firebase - Nghiên cứu cách thức phát triển ứng dụng đa nền tảng 2.

Mục tiêu - Người dùng có thể lưu lại thông tin cá nhân và đơn hàng để phục vụ tốt hơn trong việc quản lý mua hàng - Ứng dụng sẽ hỗ trợ từ cơ bản đến đầy đủ chức năng của một ứng dụng bán giày điển hình - Ứng dụng có giao diện thân thiện, dễ sử dụng 3. Quá trình hiện thực Trải qua quá trình tìm hiểu và thực hiện đề tài, nhóm đã giải quyết được các vấn đề đặt ra ban đầu, từng bước giải quyết và liên tục đặt ra những vấn đề mới để ngày càng hoàn thiện sản phẩm. Những bước thực hiện: - Phân tích yêu cầu bài toán - Lựa chọn nền tảng công nghệ phù hợp với yêu cầu - Nghiên cứu cơ sở lý thuyết của công nghệ lựa chọn - Áp dụng lý thuyết vào xây dựng ứng dụng thực tiễn - Kiểm tra và khám phá các ứng dụng tương tự để tối ưu hoá trải nghiệm người dùng và cải thiện các tính năng cho ứng dụng 4. Tổng quan về chức năng Hình 1.

Tổng quan về chức năng CHƯƠNG II. Tổng quan và lịch sử Flutter là một bộ công cụ phát triển phần mềm mã nguồn mở được tạo ra bởi Google – một trong những công ty công nghệ lớn nhất hành tinh. Nó được sử dụng với mục đích phát triển các ứng dụng đa nền tảng cho Android, iOS, Linux, Windows, MacOS và web chỉ từ một nền tảng mã duy nhất. Flutter được giới thiệu lần đầu tiên vào năm 2015 và đến tháng 5, 2017 phiên bản ổn định đầu tiên được ra mắt chính thức.

Dù được ra mắt khá trễ nhưng Flutter đã và đang phát triển mạnh mẽ, dần trở thành một đối thủ nặng ký đối với những công cụ hỗ trợ lập trình đa nền tảng khác như React Native (Facebook), Xamarin (Microsoft)… Tính đến thời điểm hiện tại Flutter đang là một trong những công cụ hỗ trợ lập trình đa nền tảng được sử dụng nhiều nhất. Một số ứng dựng nổi tiếng được viết bằng Flutter: Hình 2. Một số ứng dụng nổi tiếng được viết bằng Flutter 1. Thành phần của Flutter Flutter gồm có hai tầng chính là Engine và Framework: - Tầng engine chứa một thư viện đồ hoạ giúp render giao diện người dùng và máy ảo Dart – môi trường để thực thi mã nguồn và biên dịch mã lệnh Dart.

Đây cũng chính là nơi thực hiện việc kết nối với hệ thống - Tầng framework được viết bằng mã lệnh Dart, cung cấp các lớp, chức năng và tiện ích (widget) được dùng để tạo ứng dụng Flutter. Lập trình viên sẽ sử dụng chủ yếu tầng này để lập trình. Kiến trúc của Flutter 1. Một số đặc điểm nổi bật - Fast Development: Tíng năng Hot Reload hoạt động trong milliseconds để hiện thị giao diện tới bạn.

Sử dụng tập hợp các widget có thể customizable để xây dựng giao diện trong vài phút. Ngoài ra Hot Reload còn giúp bạn thêm các tính năng, fix bug tiết kiệm thời gian hơn mà không cần phải thông qua máy ảo, máy android hoặc iOS. - Expressive and Flexible UI: Có rất nhiều các thành phần để xây dựng giao diện của Flutter vô cùng đẹp mắt theo phong cách Material Design và Cupertino, hỗ trợ nhiều các APIs chuyển động, smooth scrolling. - Native Performance: Các widget của fluter kết hợp các sự khác biệt của các nền tảng ví dụ như scrolling, navigation, icons, font để cung cấp một hiệu năng tốt nhất tới iOS và Android.

Ưu và nhược điểm của Flutter: 1. Ưu điểm: - Flutter là một bộ open-source SDK, tức là nó hoàn toàn miễn phí và “mở” chính vì thế mà cộng đồng lập trình viên có thể cùng tham gia phát triển và hoàn thiện nó - Flutter cung cấp đầy đủ và đa dạng các tiện ích (widget) hỗ trợ nên lập trình viên ít khi cần sự hỗ trợ từ thư viện của bên thứ ba cung cấp - Hỗ trợ hot reload: Tính năng này cho phép thay đổi xuất hiện trực tiếp trên ứng dụng mà không cần phải rebuild lại toàn bộ ứng dụng từ đó làm giảm thời gian của lập trình viên và khiến việc xây dựng ứng dụng trở nên dễ dàng hơn 1. Nhược điểm: - Còn nhiều hạn chế khi phát triển các ứng dụng có các chức năng cần can thiệp sâu vào phần cứng của thiết bị - Kích thước ứng dụng khá lớn do Flutter hỗ trợ đa nền tảng nên hiển nhiên số lượng file và mã nguồn cũng sẽ bị đội lên khá nhiều, tuy nhiên điều này đã được Google cam kết sẽ cải thiện hơn trong tương lai - Công nghệ còn mới và vẫn chưa có quá nhiều thư viện hỗ trợ, tuy nhiên thì cộng đồng lập trình viên sử dụng Flutter đang ngày càng nhiều, chính vì thế mà trong tương lai chắc chắn sẽ có thêm nhiều thư viện hỗ trợ tốt cho Flutter 2. Ngôn ngữ lập trình Dart 2.

Tổng quan - Flutter sử dụng ngôn ngữ lập trình Dart. Ra đời từ năm 2011 và được phát triển bởi Google, Dart được sử dụng để xây dựng các ứng dụng web, server, máy tính để bàn và thiết bị di động. - Dart là ngôn ngữ lập trình đa mục đích ban đầu được phát triển bởi Google và sau đó được Ecma (ECMA-408) phê chuẩn làm tiêu chuẩn. - Dart là một ngôn ngữ hướng đối tượng, được xác định theo lớp, với cơ chế garbage-collected, sử dụng cú pháp kiểu C để dịch mã tùy ý sang JavaScript.

Nó hỗ trợ interface, mixin, abstract, generic, static typing và type safe. Tại sao Flutter chọn Dart? - Năng suất: Cú pháp Dart rõ ràng và súc tích, công cụ của nó đơn giản nhưng mạnh mẽ. Type-safe giúp bạn xác định sớm các lỗi tinh tế. Dart có các thư viện cốt lõi và một hệ sinh thái gồm hàng ngàn package - Nhanh: Dart cung cấp tối ưu hóa việc biên dịch trước thời hạn để có được dự đoán hiệu suất cao và khởi động nhanh trên các thiết bị di động và web - Tính di động: Dart biên dịch thành mã ARM và x86, để các ứng dụng di động của Dart có thể chạy tự nhiên trên iOS, Android và hơn thế nữa.

Đối với các ứng dụng web, chuyển mã từ Dart sang JavaScript - Dễ học và sử dụng: Dart quen thuộc với nhiều nhà phát triển hiện có, nhờ vào cú pháp và định hướng đối tượng không gây ngạc nhiên của nó. Nếu bạn đã biết C++, C # hoặc Java, bạn có thể làm việc hiệu quả với Dart chỉ sau vài ngày. Hệ quản trị cơ sở dữ liệu Firebase 3. Firebase là gì? 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 3.

Firebase Realtime database Đầu tiên, để sử dụng nền tảng này tạo ứng dụng, lập trình viên cần đăng ký tài khoản Firebase. Đăng ký xong, bạn sẽ sở hữu một Realtime Database có dạng JSON được đồng bộ thời gian đến tất cả kết nối client Dữ liệu trong các database được tự động cập nhật liên tục khi lập trình viên tiến hành phát triển ứng dụng. Sau khi được cập nhật, những dữ liệu này sẽ được truyền tải thông qua kết nối SSL có chứng nhận 2048 bit Tại những ứng dụng đa nền tảng toàn bộ máy khách đều dùng chung một database. Trong trường hợp kết nối Internet bị gián đoạn, các dữ liệu sẽ được lưu trữ trên local và cập nhật khi đường truyền ổn định 3.

Firebase Authentication Hoạt động kế tiếp của Firebase là tạo lập quy trình xác thực người dùng thông qua các phương tiện như Google, Email, GitHub, Facebook, Twitter và xác thực nặc danh đối với các ứng dụng. Việc xác thực giúp bảo vệ an toàn dữ liệu về thông tin cá nhân của người dùng mạng 3. Firebase Hosting Các thức hoạt động tiêu biểu cuối cùng, không thể không nhắc đến của Firebase là cung cấp hosting. Firebase hosting thông qua sự hỗ trợ của SSL đến từ mạng CDN.

Nhờ vậy mà lập trình viên có thể tiết kiệm rất nhiều thời gian thiết kế cũng như phát triển ứng dụng. Ưu điểm của Firebase - 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ội dung được bảo vệ bản quyền — Tải xuống đầy đủ