CHƯƠNG I: GIỚI THIỆU VỀ CÔNG CỤ HỖ TRỢ PHÁT TRIỂN ĐỀ TÀI Để có ứng dụng đi vào sử dụng thực tế, phần mềm cần phải được tích hợp bởi các nền tảng công nghệ khác nhau.. - Công nghệ sử dụn
Trang 1TRƯỜNG ĐẠI HỌC HẢI PHÒNG
KHOA CÔNG NGHỆ THÔNG TIN
ĐỒ ÁN TỐT NGHIỆP CHUYÊN NGÀNH: CÔNG NGHỆ THÔNG TIN
ĐỀ TÀI: XÂY DỰNG ỨNG DỤNG THƯƠNG MẠI ĐIỆN TỬ
Trang 2UBND THÀNH PHỐ HẢI PHÒNG
TRƯỜNG ĐẠI HỌC HẢI PHÒNG
-
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự do – Hạnh phúc -
PHIẾU NHẬN XÉT CỦA CÁN BỘ HƯỚNG DẪN ĐỒ ÁN, KHOÁ LUẬN TỐT NGHIỆP Họ và tên sinh viên:
Ngày sinh: Nơi sinh:
Tên đề tài:
Giảng viên hướng dẫn:
1 Ý thức tổ chức, kỷ luật trong quá trình nghiên cứu
2 Khả năng nghiên cứu và vận dụng kiến thức
3 Các nhận xét khác (nếu có)
CÁN BỘ HƯỚNG DẪN
(Ký, ghi rõ họ tên)
Trang 3LỜI CAM ĐOAN
Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi Các số liệu, kết quả nêu trong báo cáo là trung thực Tôi xin cam đoan rằng các thông tin trích dẫn trong báo cáo đều đã được chỉ rõ nguồn gốc
Hải Phòng, ngày tháng năm 2023
Tác giả
Vũ Thế Vương
Trang 4LỜI CẢM ƠN Lời đầu tiên cho em gửi lời cảm ơn chân thành và sâu sắc nhất tới Th.S Trần Quang Huy đã hỗ trợ giúp đỡ em hoàn thành báo cáo đồ án này
Em xin chân thành cảm ơn sự giúp đỡ của toàn thể các giảng viên khoa công
nghệ thông tin, trường Đại học Hải Phòng, cũng như sự chỉ bảo của các anh chị Đỗ Đức Hùng nơi em thực tập đã dìu dắt, dạy dỗ em cả về kiến thức chuyên môn và tinh
thần học tập độc lập, sáng tạo để em có được kiến thức thực hiện báo cáo của mình
Trong quá trình làm bài, cũng như là trong quá trình làm bài báo cáo, khó tránh khỏi thiếu sót rất mong các thầy, cô bỏ qua Đồng thời do trình độ lý luận cũng như kinh nghiệm thực tiễn còn hạn chế nên bài báo cáo không thể tránh khỏi những thiếu sót, em rất mong nhận được ý kiến đóng góp thầy, cô để em học thêm được nhiều kinh nghiệm và sẽ hoàn thành tốt hơn báo tốt nghiệp lần này
Em xin chân thành cảm ơn!
Trang 5MỤC LỤC
LỜI CAM ĐOAN i
LỜI CẢM ƠN ii
MỤC LỤC iii
DANH MỤC HÌNH ẢNH vi
DANH MỤC HÌNH ẢNH vi
MỞ ĐẦU 1
CHƯƠNG I: GIỚI THIỆU VỀ CÔNG CỤ HỖ TRỢ PHÁT TRIỂN ĐỀ TÀI 3
1 Môi trường cài đặt 3
2 Giới thiệu về Visual Studio Code 3
2.1 Visual Studio Code dành cho những đối tượng nào? 4
2.2 Những tính năng nổi bật của Visual Studio Code : 4
3 Giới thiệu về Flutter 5
3.1 Flutter là gì? 5
3.2 Tại sao nên sử dụng Flutter ? 6
4 Giới thiệu về ngôn ngữ Dart 7
4.1 Dart là gì? 7
4.2 Tại sao lại sử dụng Dart? 7
4.3 Tính năng của Dart 8
5 Giới thiệu về Android Studio 10
5.1 Android Studio là gì? 10
5.2 Lịch sử hình thành 10
5.3 Tính năng của Android Studio 11
5.4 Ưu điểm của android studio 11
5.5 Nhược điểm của Android studio 12
6 Giới thiệu về Firebase 12
6.1 Firebase là gì? 12
6.2 Đặc điểm nổi bật 12
CHƯƠNG II: KHẢO SÁT VÀ PHÂN TÍCH THIẾT KẾ HỆ THỐNG 14
1 Khảo sát hệ thống 14
2 Xác định yêu cầu hệ thống 14
3 Phân tích yêu cầu hệ thống 14
Trang 63.1 Yêu cầu chức năng 14
3.2 Yêu cầu phi chức năng 15
4 Danh sách Actor và UserCase 15
4.1 Danh sách Actor 15
4.2 Danh sách các UseCase 16
5 Biểu đồ UserCase tổng quát 16
6 Mô hình ca sử dụng 17
7 Quản lí sản phẩm 17
8 Đối với tác nhân người dùng 18
9 Usercase thông tin cá nhân khách hàng 19
10 Biểu đồ hoạt động 20
10.1 Biểu đồ hoạt động đăng nhập 20
10.2 Biểu đồ hoạt động đăng xuất 21
10.3 Biểu đồ hoạt động quên mật khẩu 22
10.4 Biểu đồ hoạt động chỉnh sửa 23
11 Mô tả các bảng dữ liệu 24
11.1 Cấu trúc bảng cơ sở dữ liệu user (Bảng người dùng) 24
11.2 Cấu trúc bảng cơ sở dữ liệu tin nhắn 24
11.3 Cấu trúc bảng cơ sở dữ liệu đơn hàng 25
11.4 Cấu trúc bảng cơ sở dữ liệu sản phẩm 25
11.5 Cấu trúc bảng cơ sở dữ liệu người bán 26
CHƯƠNG III: KẾT QUẢ THỰC NGHIỆM 27
1 Chức năng đăng nhập 27
2 Chức năng đăng ký 28
3 Chức năng xem danh mục sản phẩm 29
4 Chức năng hiển thị chi tiết đơn hàng 32
5 Dashboard thêm sản phẩm 33
6 Dashboard quản lý tài khoản 34
7 Dashboard hiển thị thống kê sản phẩm 34
8 Dashboard quản lí sản phẩm 35
KẾT LUẬN 36
TÀI LIỆU THAM KHẢO 37
Trang 7DANH MỤC BẢNG BIỂU
Bảng 2.1: Danh sách các actor của hệ thống 15
Bảng 2.2: Danh sách các UserCase của hệ thống 16
Bảng 2.3: Đặc tả UseCase quản lý người dùng 17
Bảng 2.4: Đặc tả UseCase quản lý số lượng sản phẩm 17
Bảng 2.5: Đặc tả tổng quát UseCase khách hàng 18
Bảng 2.6: Đặc tả Usecase thông tin cá nhân khách hàng 19
Trang 8DANH MỤC HÌNH ẢNH
Hình 2.1: Biểu đồ UseCase tổng quát cảu quản lý và Admin 16
Hình 2.2: Biểu đồ tổng quát dành cho tác nhân người dùng 18
Hình 2.3: Biểu đồ Usercase phân rã thông tin cá nhân khách hàng 19
Hình 2.4: Biểu đồ hoạt động đăng nhập 20
Hình 2.5: Biểu đồ hoạt động đăng xuất 21
Hình 2.6: Biểu đồ hoạt động quên mật khẩu 22
Hình 2.7: Biểu đồ hoạt động chỉnh sửa 23
Hình 2.8: Cơ sở dữ liệu 24
Hình 2.9: Bảng người dùng 24
Hình 2.10: Bảng tin nhắn 24
Hình 2.11: Bảng đơn hàng 25
Hình 2.12: Bảng sản phẩm 25
Hình 2.13: Bảng người bán 26
Hình 3.1: Màn đăng nhập 27
Hình 3.2: Màn đăng ký ứng dụng 28
Hình 3.3: Màn hình phần danh mục sản phẩm 29
Hình 3.4: Màn hình điền thông tin thanh toán 30
Hình 3.5:Màn hình chọn phương thức thanh toán 31
Hình 3.6: Màn hình hiển thị chi tiết đơn hàng 32
Hình 3.7: Màn hình quản lí đăng nhập 33
Hình 3.8: Màn hình thêm sản phẩm 33
Hình 3.9: Màn hình quản lý tài khoản người dùng 34
Hình 3.10: Màn hình thống kê sản phẩm 34
Hình 3.11: Màn hình quản lí sản phẩm 35
Trang 9MỞ ĐẦU
1 Tên đề tài tốt nghiệp:
Xây dựng ứng dụng thương mại điện tử vezor bằng Flutter
2 Nội dung của đề tài
- Lý do chọn đề tài
Chúng ta có thể nói rằng thế kỷ 21 đã và đang chứng kiến sự phát triển mạnh
mẽ của ngành Công nghệ thông tin Công nghệ thông tin (CNTT) đã và đang thay đổi thế giới một cách nhanh chóng và từng bước kéo nền tri thức của nhân loại xích lại gần nhau hơn Việc mua bán trao đổi qua các ứng dụng di động ngày càng phát triển
và phổ biến Ngày nay, ứng dụng di động đã đóng một vai trò quan trọng đối với con người chúng ta từ giải trí cho đến quảng cáo, thương mại, quản lý Cụ thể Ứng dụng bán hàng online (thương mại điện tử) sẽ dần dần thay thế những phương thức kinh doanh cũ trong các doanh nghiệp bởi tính ưu việt mà Ứng dụng bán hàng online mang lại như: nhanh hơn, rẻ hơn, tiện dụng hơn, hiệu quả hơn và không bị giới hạn không gian và thời gian
Mục tiêu của đề tài
+ Tìm hiểu và nắm bắt quy trình xây dựng một ứng dụng thương mại trên di động + Từ đó xây dựng và phát triển ứng dụng thương mại điện tử trên di động + Đáp ứng nhu cầu sử dụng thực tế và thuận tiện cho người dùng khi sử dụng
- Phương pháp nghiên cứu đề tài
+ Phương pháp nghiên cứu lí thuyết: thu thập các thông tin, tìm hiểu các tài liệu liên quan đến đề tài nghiên cứu: về ứng dụng thương mai điện tử trên điện thoại
+ Tổng hợp, đưa ra cách thực hiện triển khai xây dựng hệ thống phù hợp với người dùng, đáp ứng được yêu cầu nghiệp vụ trong khả năng của mình
Bố cục của báo cáo:
Báo cáo thực tập gồm những chương sau:
CHƯƠNG I: GIỚI THIỆU VỀ CÔNG CỤ HỖ TRỢ PHÁT TRIỂN ĐỀ TÀI
Đây là giai đoạn trong quá trình phát triển một hệ thống thông tin Nhiệm vụ chính giai đoạn này là giới thiệu các công cụ để làm trong quá trình phát triển đề tài Xem xét được các ưu nhược điểm của các công cụ này trong quá trình làm
CHƯƠNG II: KHẢO SÁT VÀ PHÂN TÍCH THIẾT KẾ HỆ THỐNG
Trang 10Chương này sẽ trình các thiết kế hệ thống từ đó sẽ hiểu rõ được hệ thống làm việc ra sao, tìm hiểu, thu thập thông tin cần thiết để chuẩn bị cho việc giải quyết các
yêu cầu được đặt ra của đề tài
CHƯƠNG III: KẾT QUẢ THỰC NGHIỆM
KẾT LUẬN
TÀI LIỆU THAM KHẢO
Trang 11CHƯƠNG I: GIỚI THIỆU VỀ CÔNG CỤ HỖ TRỢ PHÁT
TRIỂN ĐỀ TÀI
Để có ứng dụng đi vào sử dụng thực tế, phần mềm cần phải được tích hợp bởi các nền tảng công nghệ khác nhau Sau đây em xin trình bày chi tiết hơn về các công nghệ được sử dụng trong việc tạo lập và thiết đặt
1 Môi trường cài đặt
Việc lựa chọn công nghệ sao cho phù hợp với ứng dụng muốn phát triển là điều quan trọng Với sự phát triển của công nghệ thông tin như hiện nay, nhiều công nghệ mới ra đời, xuất hiện nhiều ngôn ngữ mới để đáp ứng cho nhiều nhu cầu khác nhau thuộc các lĩnh vực khác nhau
Dart là một ngôn ngữ còn khá mới mẻ và đầy hứa hẹn về các công nghệ mới để phát triển và hơn thế nữa
Đề tài: “xây dựng ứng dụng thương mại điện tử vezor bằng flutter” được xây dựng dựa vào kiến thức nghiệp vụ kết hợp với công nghệ hiện có trong ngôn ngữ
- Công nghệ sử dụng: Flutter
- Môi trường phát triển: Visual Studio Code, Android Studio
- Ngôn ngữ lập trình: Dart
- Lưu trữ dữ liệu Firebase
2 Giới thiệu về Visual Studio Code
Visual Studio Code là công cụ soạn thảo mã nguồn do Microsoft phát triển Nó được giới thiệu lần đầu tiên vào năm 2015 và chính thức được phát hành vào năm 2016
Visual Studio Code (VS Code) có dung lượng khá nhẹ và khả năng vận hành mạnh mẽ trên cả 3 nền tảng được phát triển bởi Microsoft là: macOS, Linux và Windows Đặc biệt, VS Code là một mã nguồn mở và hoàn toàn miễn phí Vì vậy, nó trở thành cái tên quen thuộc của nhiều lập trình viên
Có thể nói, Visual Studio Code là sự kết hợp cực kỳ hoàn hảo giữa IDE và Code Editor Nó hỗ trợ cho người dùng rất nhiều tiện ích như: đổi theme, hỗ trợ Git, cải tiến mã nguồn, có syntax highlighting, hỗ trợ cho quá trình gõ code, sử dụng các phím tắt và nhiều tùy chọn khác nhau,…
Trang 12Hiện nay, Visual Studio Code chiếm ưu thế ở hầu hết các môi trường phát triển dành cho lập trình viên Trong một khảo sát của Stack Overflow (năm 2019), Visual Studio Code được đánh giá là môi trường phát triển được dùng phổ biến nhất với hơn 50% lượt bình chọn trong tổng số hơn 90 nghìn người dùng tham gia khảo sát Trong khi đó, con số này của năm 2018 chỉ có 35% Điều này cho thấy độ phủ sóng ngày càng rộng rãi và sự hữu ích mà VSCode mang lại cho lập trình viên
2.1 Visual Studio Code dành cho những đối tượng nào?
VSCode thích hợp sử dụng cho nhiều đối tượng khác nhau như:
- Lập trình viên chuyên nghiệp
- Người yêu thích công việc lập trình hoặc đang theo học chuyên ngành công nghệ thông tin
- Tester
- Các data administrator
Nhìn chung, hầu hết những người yêu thích và quan tâm đến lập trình đều có thể
sử dụng Visual Studio Code phục vụ cho công việc cũng như mục đích học tập cá nhân
2.2 Những tính năng nổi bật của Visual Studio Code :
- Intellisense
Intellisense là sự kết hợp giữa trí tuệ nhân tạo và code auto-complete Nó sẽ cung cấp hàng loạt các đề nghị, gợi ý và mô tả ngắn khi chúng ta đang viết code Những gợi ý sẽ được tính toán dựa trên nhiều nhân tố như: cú pháp, ngôn ngữ lập trình, hàm, biến,…
- Tích hợp sẵn Git
Git trên Visual Studio Code sẽ cung cấp cho bạn tất cả các git action cơ bản như: push, commit code,… Đặc biệt, qua từng phiên bản khác nhau thì tính năng hỗ trợ Git ngày càng đầy đủ và tiện ích
Trang 13Terminal là chương trình giao diện cửa sổ dòng lệnh Đây là một tính năng vô cùng quan trọng với lập trình viên Khi sử dụng VSCode, bạn có thể mở một hoặc có thể
mở nhiều tab terminal tại thư mục bạn đang làm việc, giúp nâng cao hiệu quả công việc
- Khả năng mở rộng và tùy chỉnh
Visual Studio Code cung cấp cho người dùng khả năng tùy chỉnh tuyệt vời như: tùy chỉnh theme, kích thước, font chữ, keyboard shortcut, coding style, tùy chỉnh tính năng,… một cách linh hoạt Bên cạnh đó, bạn cũng có thể tùy chỉnh trên từng workshop vô cùng tiện lợi
- Code Spell Checker
Tính năng này cho phép người dùng kiểm tra tên hàm, các comment, tên biến sai chính tả một cách nhanh chóng Từ đó giúp bạn có thể chỉnh sửa dễ dàng và nhanh chóng hơn
Ngoài ra, VSCode còn cung cấp rất nhiều tính năng hữu ích khác
3 Giới thiệu về Flutter
3.1 Flutter là gì?
Flutter được phát triển nhằm giải quyết bài toán thường gặp trong mobile là Fast Development và Native Performance Nếu như React Native chỉ đảm bảo Fast Development và code native thuần chỉ đảm bảo Native Performance thì Flutter làm được cả 2 điều trên.Flutter được viết bởi ngôn ngữ dart do Google phát triển
Flutter là một bộ SDK đa nền tảng, các ứng dụng Flutter có thể hoạt động trên
cả iOS và Android Nó như một thủ thuật khôn khéo để tương thích được với framework UI trên cả hai hệ điều hành này Các ứng dụng này không biên dịch trực tiếp với các ứng dụng native của Android và iOS
Đóng gói cả một engine đi kèm cùng ứng dụng sẽ làm cho kích thước bộ cài đặt lớn hơn hẳn Trang Hỏi đáp của Flutter cho biết, một ứng dụng “trống” thông thường
sẽ chỉ khoảng 6-7MB trên Android, vì vậy dù là ứng dụng nào, phần kích thước tăng lên cũng là rất nhiều Nhưng lợi ích của việc này là các ứng dụng này sẽ rất nhanh
Flutter được thiết kế từ đầu để đạt tới tốc độ khung hình 60fps Trong khi đây không phải là một con số hiếm gặp trên iOS, nhưng với Android, bạn có thể cảm thấy
sự khác biệt rõ rệt ngay lập tức Cũng nhờ việc xuất xưởng cùng với cả một nền tảng cho ứng dụng của mình, các nhà phát triển sẽ tránh được nhiều vấn đề về sự phân mảnh của Android
Trang 143.2 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 của nó 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
UI đẹp và biểu cảm: Thỏa mãn người dùng của bạn với các widget built-in đẹp mắt theo Material Design và Cupertino (iOS-flavor), các API chuyển động phong phú, scroll tự nhiên mượt mà và tự nhận thức được nền tảng
Truy cập các tính năng và SDK native: Làm cho ứng dụng của bạn trở nên sống động với API của platform, SDK của bên thứ ba và native code Nó cho phép bạn sử dụng lại mã Java, Swift và ObjC hiện tại của mình và truy cập các tính năng và SDK native trên iOS và Android
Phát triển ứng dụng thống nhất: Flutter có các công cụ và thư viện để giúp bạn
dễ dàng đưa ý tưởng của mình vào cuộc sống trên iOS và Android Nếu bạn chưa có kinh nghiệm phát triển trên thiết bị di động, thì Flutter là một cách dễ dàng và nhanh chóng để xây dựng các ứng dụng di động tuyệt đẹp Nếu bạn là một nhà phát triển iOS hoặc Android có kinh nghiệm, bạn có thể sử dụng Flutter cho các View của bạn và tận dụng nhiều code Java / Kotlin / ObjC / Swift hiện có của bạn
- Đặc điểm nổi bật
1 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
2.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
3.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
Trang 154 Giới thiệu về ngôn ngữ Dart
4.1 Dart là gì?
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à một ngôn ngữ lập trình hiện đại có mục đích chung, cấp cao, được phát triển ban đầu bởi Google Đây là ngôn ngữ lập trình mới xuất hiện vào năm 2011, nhưng phiên bản ổn định của nó đã được phát hành vào tháng 6 năm 2017 Dart không quá phổ biến vào thời điểm đó, nhưng nó đã trở nên phổ biến khi được sử dụng bởi Flutter
Dart là một ngôn ngữ lập trình động, dựa trên lớp, hướng đối tượng với phạm vi đóng và từ vựng Về mặt cú pháp, nó khá giống với Java, C và JavaScript Nếu bạn biết bất kỳ ngôn ngữ lập trình nào trong số này, bạn có thể dễ dàng học ngôn ngữ lập trình Dart
Dart là một ngôn ngữ lập trình mã nguồn mở được sử dụng rộng rãi để phát triển ứng dụng di động, ứng dụng web hiện đại, ứng dụng máy tính để bàn và Internet
of Things (IoT) bằng cách sử dụng khung Flutter Nó cũng hỗ trợ một số khái niệm nâng cao như giao diện, mixin, lớp trừu tượng, tổng thể trường và giao diện kiểu Nó
là một ngôn ngữ biên dịch và hỗ trợ hai loại kỹ thuật biên dịch
AOT (Ahead of Time) – Nó chuyển đổi mã Dart sang mã JavaScript được tối
ưu hóa với sự trợ giúp của trình biên dịch dar2js và chạy trên tất cả các trình duyệt web hiện đại Nó biên dịch mã tại thời điểm xây dựng
JOT (Just-In-Time) – Nó chuyển đổi mã byte trong mã máy (mã gốc), nhưng chỉ mã cần thiết
4.2 Tại sao lại sử dụng Dart?
- Dart là một ngôn ngữ độc lập với nền tảng và hỗ trợ tất cả các hệ điều hành như Windows, Mac, Linux, v.v
- Nó là một ngôn ngữ mã nguồn mở, có nghĩa là nó có sẵn miễn phí cho tất cả mọi người Nó đi kèm với giấy phép BSD và được công nhận bởi tiêu chuẩn ECMA
- Nó là một ngôn ngữ lập trình hướng đối tượng và hỗ trợ tất cả các tính năng của oops như kế thừa, giao diện và các tính năng kiểu tùy chọn
- Dart rất hữu ích trong việc xây dựng các ứng dụng thời gian thực vì tính ổn định của nó
Trang 16- Dart đi kèm với trình biên dịch dar2js để truyền mã Dart thành mã JavaScript chạy trên tất cả các trình duyệt web hiện đại
- Máy ảo Dart độc lập cho phép mã Dart chạy trong môi trường giao diện dòng lệnh
- Công cụ Dart có thể báo cáo hai loại sự cố trong khi mã hóa, cảnh báo và lỗi Cảnh báo là dấu hiệu cho thấy mã của bạn có thể có một số vấn đề, nhưng nó không làm gián đoạn quá trình thực thi của mã, ngược lại lỗi có thể ngăn chặn việc thực thi mã
4.3 Tính năng của Dart
Dart là một ngôn ngữ lập trình hướng đối tượng, mã nguồn mở, chứa nhiều tính năng hữu ích Đây là ngôn ngữ lập trình mới và hỗ trợ một loạt các tiện ích lập trình như giao diện, bộ sưu tập, lớp, kiểu gõ động và tùy chọn Nó được phát triển cho máy chủ cũng như trình duyệt Dưới đây là danh sách các tính năng quan trọng của Dart
Nền tảng độc lập
Dart hỗ trợ tất cả các hệ điều hành chính như Windows, Linux, Macintosh, v.v Dart có Máy ảo riêng được gọi là Dart VM, cho phép chúng tôi chạy mã Dart trong mọi hệ điều hành
Hướng đối tượng
Dart là một ngôn ngữ lập trình hướng đối tượng và hỗ trợ tất cả các khái niệm oops như lớp, kế thừa, giao diện và các tính năng gõ tùy chọn Nó cũng hỗ trợ các khái niệm nâng cao như mixin, abstract, các lớp, hệ thống kiểu chung được sửa đổi và mạnh mẽ
Đồng nhất
Dart là một ngôn ngữ lập trình không đồng bộ, có nghĩa là nó hỗ trợ đa luồng
sử dụng Isolates Các vùng cách ly là các thực thể độc lập có liên quan đến các luồng nhưng không chia sẻ bộ nhớ và thiết lập giao tiếp giữa các quá trình bằng cách truyền thông điệp Thông điệp nên được nối tiếp nhau để tạo hiệu quả truyền thông Việc tuần
tự hóa thông báo được thực hiện bằng cách sử dụng một ảnh chụp nhanh được tạo ra bởi đối tượng đã cho và sau đó truyền đến một vùng cách ly khác để giải mã
Thư viện mở rộng
Dart bao gồm nhiều thư viện tích hợp hữu ích bao gồm SDK (Bộ phát triển phần mềm), lõi, toán học, không đồng bộ, toán học, chuyển đổi, html, IO, v.v Nó cũng cung cấp cơ sở để tổ chức mã Dart thành các thư viện với không gian tên riêng Nó có
Trang 17Dễ học
Như chúng ta đã thảo luận trong phần trước, học Dart không phải là nhiệm vụ của Hercules vì chúng ta biết rằng cú pháp của Dart tương tự như Java, C #, JavaScript, kotlin, v.v nếu bạn biết bất kỳ ngôn ngữ nào trong số này thì bạn có thể học Dart dễ dàng
Biên dịch linh hoạt
Dart cung cấp sự linh hoạt để biên dịch mã và nhanh chóng Nó hỗ trợ hai loại quy trình biên dịch, AOT (Ahead of Time) và JIT (Just-in-Time) Mã Dart được truyền bằng ngôn ngữ khác có thể chạy trong các nhà sản xuất web hiện đại
Nhập An toàn
Dart là ngôn ngữ an toàn kiểu, có nghĩa là nó sử dụng cả kiểm tra kiểu tĩnh và kiểm tra thời gian chạy để xác nhận rằng giá trị của một biến luôn khớp với kiểu tĩnh của biến, đôi khi nó được gọi là kiểu gõ âm thanh
Mặc dù loại là bắt buộc, nhưng chú thích loại là tùy chọn vì loại nhiễu Điều này làm cho mã dễ đọc hơn Ưu điểm khác của ngôn ngữ an toàn kiểu chữ là khi chúng ta thay đổi phần mã, hệ thống sẽ cảnh báo chúng ta về sửa đổi mà chúng ta đã sửa trước đó
Các đối tượng
Dart coi mọi thứ như một đồ vật Giá trị gán cho biến là một đối tượng Các hàm, số và chuỗi cũng là một đối tượng trong Dart Tất cả các đối tượng kế thừa từ lớp Đối tượng
Hỗ trợ trình duyệt
Dart hỗ trợ tất cả các trình duyệt web hiện đại Nó đi kèm với trình biên dịch dart2js để chuyển đổi mã Dart thành mã JavaScript được tối ưu hóa phù hợp với tất cả các loại trình duyệt web
Cộng đồng
Dart có một cộng đồng lớn trên toàn thế giới Vì vậy, nếu bạn gặp vấn đề trong khi viết mã thì rất dễ dàng tìm được trợ giúp Nhóm các nhà phát triển chuyên dụng đang làm việc để nâng cao chức năng của nó
Trang 185 Giới thiệu về Android Studio
5.1 Android Studio là gì?
Chức năng của Android Studio là cung cấp giao diện để tạo các ứng dụng và xử
lý phần lớn các công cụ quản lý file phức tạp đằng sau hậu trường Ngôn ngữ lập trình được sử dụng ở đây là Java và Dart và được cài đặt riêng trên thiết bị của bạn Android Studio rất đơn giản, bạn chỉ cần viết, chỉnh sửa và lưu các dự án của mình và các file trong dự án đó Đồng thời, Android Studio sẽ cấp quyền truy cập vào Android SDK
Google đã nỗ lực rất nhiều để làm cho Android Studio trở nên mạnh mẽ và hữu ích nhất có thể Nó cung cấp những gợi ý trực tiếp trong khi viết code và thường đề xuất những thay đổi cần thiết để sửa lỗi hoặc làm code hiệu quả hơn Ví dụ, nếu không
sử dụng biến, biến đó sẽ được tô đậm bằng màu xám Và khi bắt đầu gõ một dòng code, Android Studio sẽ cung cấp danh sách gợi ý tự hoàn thành để giúp bạn hoàn thiện dòng code đó Chức năng này rất hữu ích khi bạn không nhớ được chính xác cú pháp hoặc để tiết kiệm thời gian
Android is an source code open based on Linux Kernel dành riêng cho tất cả các thiết bị di động (điện thoại, bảng máy tính, đồng hồ thông minh, …)
Là chính thức IDE và được sử dụng rộng rãi trong ứng dụng Android phát triển Nó được phát triển bởi Google và sử dụng nó để tạo ra những ứng dụng mà bạn
sử dụng hàng ngày
Phần mềm thư viện cũng như các tiện ích công cụ Hỗ trợ nhiều hơn giúp bạn
có thể được xây dựng cũng như kiểm tra và hỗ trợ bạn gỡ bỏ các lỗi của ứng dụng Android
Hỗ trợ bạn các điều hành như Windows, Mac OS X, Linux và đặc biệt là định thức IDE của google To phát triển các ứng dụng của Android gốc thay thế cho các dự
án của công cụ phát triển android trên IDE của eclipse
5.2 Lịch sử hình thành
- Android studio được công bố lần đầu tiên vào năm 2013 tại hội nghị Google I /
0 Được công bố rộng khắp thế giới vào năm 2014 với rất nhiều phiên bản khác nhau
- Trước khi phát hành Android studio, các thành viên lập trình thường sử dụng các công cụ hỗ trợ như Eclipse IDE Hay một IDE của Java được hỗ trợ trên nhiều ngôn ngữ khác nhau
Trang 19- Việc tạo ứng dụng bởi Android Studio sẽ dễ dàng hơn với các chuyên gia phần mềm
5.3 Tính năng của Android Studio
Sau khi tìm hiểu về phần giới thiệu về android studio cùng lịch sử hình thành Chúng ta cùng khám phá về một số tính năng nổi trội của android studio là gì nhé!
- Build được các biến và tạo được nhiều file APK
- Code of template to support are features of the information app
- Gradle support – based một cách linh hoạt
- Với GitHub tích hợp giúp bạn xây dựng được các ứng dụng tính năng một cách phổ biến
- Chỉnh sửa được bố cục một cách đa dạng với các hoạt động kéo thả linh hoạt
- Help Capture is being offset, also well as well as used to use the same version and a some of problem liên quan
- Tích hợp lên google Cloud Platform, giúp bạn có thể dễ dàng tích hợp được app engine và google cloud Messaging
- Giúp mô phỏng được phần mềm để tiến hành sửa chữa và nâng cấp được các sản phẩm khi cần
- Các trình soạn thảo mã và công cụ Intell cung cấp các tính năng cao
- Instant Run giúp thay đổi các ứng dụng đang chạy mà không cần xây dựng APK mới
- Hỗ trợ được C++ và NDK
- Giúp Sâu firebase và các ứng dụng sau click chuột
- Công cụ build dựa trên Gradle
- Các wizard tích hợp giúp các lập trình viên có thể tạo ứng dụng từ các mẫu có sẵn
- Chức năng dò và sửa lỗi nhanh để hướng Android
5.4 Ưu điểm của android studio
- Được phát triển bới Google, cũng là chủ sở hữu của hệ điều hành Android
- Các công cụ hỗ trợ và được cập nhật mới nhất và đầy đủ
- Tính năng dễ làm quen và giao diện thân thiện, nó là điểm cộng lớn
- Có tài liệu tham khảo và hướng dẫn đầy đủ cùng các diễn đàn dành cho lập trình viên Android
Trang 205.5 Nhược điểm của Android studio
- Là công cụ hỗ trợ tích hợp tất cả nên dữ liệu phải phát triển tối ưu nhất Lượng lớn dữ liệu chiếm nhiều không gian bộ nhớ máy tính của bạn
- Có thể kiểm tra được cash hoạt động của app thông qua giả lập của Android studio Điều này làm đơ máy, lag, nóng máy tính và gây tiêu tốn nhiều pin
- Android là một công cụ lập trình hỗ trợ mạnh mẽ với các hỗ trợ và cập nhật các tính năng mới nhất từ google Google đã khắc phục vấn đề tối ưu tài nguyên máy tính giúp giảm bớt Android Studio trên máy tính cũ
6 Giới thiệu về Firebase
6.1 Firebase là gì?
Firebase là một nền tảng để phát triển ứng dụng di động và trang web, bao gồm các API đơn giản và mạnh mẽ mà không cần backend hay server Nó còn giúp các lập trình viên rút ngắn thời gian triển khai và mở rộng quy mô của ứng dụng mà họ đang phát triển Là dịch vụ cơ sở dữ liệu hoạt động trên nền tảng đám mây – cloud Kèm theo đó là hệ thống máy chủ cực kỳ mạnh mẽ của Google Chức năng chính là giúp người dùng lập trình ứng dụng bằng cách đơn giản hóa các thao tác với cơ sở dữ liệu
Cụ thể là những giao diện lập trình ứng dụng API đơn giản
6.2 Đặc điểm nổi bật
- Firebase realtime database: Khi đăng ký một tài khoản trên Firebase để tạo
ứng dụng, bạn đã có một cơ sở dữ liệu thời gian thực Dữ liệu bạn nhận được dưới dạng JSON Đồng thời nó cũng luôn được đồng bộ thời gian thực đến mọi kết nối client Đối với các ứng dụng đa nền tảng, tất cả các client đều sử dụng cùng một cơ sở
dữ liệu Nó được tự động cập nhật dữ liệu mới nhất bất cứ khi nào các lập trình viên phát triển ứng dụng Cuối cùng, tất cả các dữ liệu này được truyền qua kết nối an toàn SSL có bảo mật với chứng nhận 2048 bit Trong trường hợp bị mất mạng, dữ liệu được lưu lại ở local, vì thế khi có mọi sự thay đổi nào đều được tự động cập nhật lên Server của Firebase Bên cạnh đó, đối với các dữ liệu ở local cũ hơn với Server thì cũng tự động cập nhật để được dữ liệu mới nhất
- Fire Authentication: Hoạt động nổi bật của Firebase là xây dựng các bước
xác thực người dùng bằng Email, Facebook, Twitter, GitHub, Google Đồng thời cũng xác thực nặc danh cho các ứng dụng Hoạt động xác thực có thể giúp thông tin cá nhân
Trang 21- Firebase hosting: cung cấp các hosting được phân phối theo tiêu chuẩn SSL từ
mạng CDN CDN viết tắt của Content Delivery Network là mạng lưới máy chủ lưu giữ bản sao của các nội dung tĩnh bên trong website và phân phối đến nhiều máy chủ PoP Mạng lưới máy chủ CDN được đặt ở khắp mọi nơi trên toàn cầu Từ PoP (Points of Presence), dữ liệu sẽ tiếp tục được gửi đến người dùng cuối Thông qua CDN, bản sao nội dung trên máy chủ gần nhất sẽ được trả về cho người dùng khi họ truy cập website
- Triển khai ứng dụng nhanh chóng: Bởi không phải quan tâm đến phần
backend cùng các API tốt, hỗ trợ đa nền tảng, Firebase tiết kiệm rất nhiều thời gian quản lý và đồng bộ tất cả dữ liệu cho người dùng Song song đó, nó còn cung cấp hosting và hỗ trợ xác thực thông tin khách hàng khiến việc triển khai ứng dụng nhanh chóng hơn
- Bảo mật: Hoạt động trên nền tảng đám mây cloud, sử dụng kết nối thông qua
giao thức bảo mật SSL và cho phép phân quyền người dùng cơ sở dữ liệu bằng Javascript, các đặc điểm này của Firebase giúp nâng cao độ bảo mật cho các ứng dụng
- Sự ổn định: Hầu hết các ứng dụng trên nền tảng Firebase luôn hoạt động ổn
định vì chúng được viết dựa trên nền tảng cloud cung cấp bởi Google Hơn nữa, nhờ Firebase mà việc nâng cấp hay bảo trì Server cũng diễn ra khá đơn giản mà không cần phải dừng lại
Trang 22CHƯƠNG II: KHẢO SÁT VÀ PHÂN TÍCH THIẾT KẾ HỆ THỐNG
Để làm rõ hơn về cấu trúc, em xin trình bày nội dung khảo sát hệ thống và phân tích thiết kế hệ thống
1 Khảo sát hệ thống
Chúng ta có thể nói rằng thế kỷ 21 đã và đang chứng kiến sự phát triển mạnh
mẽ của ngành Công nghệ thông tin Công nghệ thông tin (CNTT) đã và đang thay đổi thế giới một cách nhanh chóng và từng bước kéo nền tri thức của nhân loại xích lại gần nhau hơn Việc mua bán trao đổi qua các ứng dụng di động ngày càng phát triển
và phổ biến Ngày nay, ứng dụng di động đã đóng một vai trò quan trọng đối với con người chúng ta từ giải trí cho đến quảng cáo, thương mại, quản lý Cụ thể Ứng dụng bán hàng online (thương mại điện tử) sẽ dần dần thay thế những phương thức kinh doanh cũ trong các doanh nghiệp bởi tính ưu việt mà Ứng dụng bán hàng online mang lại như: nhanh hơn, rẻ hơn, tiện dụng hơn, hiệu quả hơn và không bị giới hạn không gian và thời gian
+ Phần mềm: Visual Studio Code, npm
- Yêu cầu giao diện
+ Thân thiện, dễ sử dụng với người dùng
3 Phân tích yêu cầu hệ thống
Sau khi khảo sát và xác định được các yêu cầu của hệ thống, có thể phân tích để đưa ra các quy trình nghiệp vụ chung của hệ thống bao gồm các phần:
3.1 Yêu cầu chức năng
- Đối với quản trị hệ thống
+ Quản lý người dùng: Kích hoạt tài khoản người dùng, có thể thêm, sửa, xóa
dữ liệu trong quyền hạn cho phép
+ Quản lý hệ thống: Cho phép cập nhật chức năng, bảo trì hệ thống