MẪU ĐỒ ÁN KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG VIỆT HÀN ĐỒ ÁN CHUYÊN NGÀNH 2 ĐỀ TÀI XÂY DỰNG SÀN THƯƠNG MẠI ĐIỆN TỬ CÁC SẢN PHẨM VỀ CÔNG NGHỆ LỜI NÓI[.]
Trang 1ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ
TRUYỀN THÔNG VIỆT - HÀN
ĐỒ ÁN CHUYÊN NGÀNH 2
ĐỀ TÀI:
XÂY DỰNG SÀN THƯƠNG MẠI ĐIỆN TỬ CÁC SẢN PHẨM VỀ CÔNG NGHỆ
Trang 2LỜI NÓI ĐẦU
Thời buổi công nghệ hiện đại, các ứng dụng ngày càng phổ biến, rộng khắp, ngaytrên các thiết bị di động thông minh của mình, có thể tải về và sử dụng các ứng dụng mộtcách nhanh chóng và dễ dàng Những ứng dụng di động đang giúp ích rất nhiều chochúng ta trong cuộc sống, chẳng hạn như có thể truy cập ứng dụng để kết nối, liên lạc vớibạn bè, người thân, hay bạn cũng có thể truy cập các ứng dụng để đọc báo, xem phim, hay làm tất cả mọi thứ có thể Nhờ những lợi thế đó, các ứng dụng di động ngày càngđược phát triển mạnh mẽ, cải thiện cả về số lượng và chất lượng
Cuộc sống ngày càng phát triển, mức sống của con người ngày càng cao, đi kèm
đó là đòi hỏi cao hơn về mức độ hưởng thụ, nhu cầu mua sắm, nhất là trong thời buổi dịchbệnh hoành hành, du cầu mua sắm trực tuyến lại càng tăng cao Chính vì đó, trong thờibuổi dịch bệnh này các website và ứng dụng di động về mua sắm trực tuyến là vô cùngcần thiết
Để đáp ứng nhu cầu đó, đề tài “Xây dựng sàn thương mại điện tử các sản phẩm vềcông nghệ” – Một ứng đa nền tảng bào gồm website, ứng dụng Android và cả iOS ra đờivới mục đích xây dựng một nền tảng mua sắm trực tuyến các sản phẩm công nghệ Vớikhả năng hoạt động đa nền tảng, ứng dụng sẽ chuyển đổi linh hoạt và đồng bộ giữa cácnền tảng khác nhau, đáp ứng được nhiều đối tượng người dùng
Trang 3LỜI CẢM ƠN
Để thực hiện và hoàn thành tốt đồ án này, chúng em đã nhận được sự giúp đỡ vàhướng dẫn rất tận tình của các thầy cô thuộc Đại học Nghệ Thông Tin Và Truyền ThôngViệt - Hàn – Đại học Đà Nẵng Em xin cảm ơn các thầy cô thuộc bộ môn chuyên ngành đãcung cấp cho em các thông tin, kiến thức vô cùng quý báu và cần thiết trong suốt thời gianquá để em có thể thực hiện và hoàn thành đồ án của mình Đặc biệt em xin chân thành cảm
ơn thầy TS Lê Văn Minh người đã trực tiếp hướng dẫn em trong thời gian thực hiện đề tàinày
Cuối cùng, xin chân thành cảm ơn các bạn trong ngành công nghệ thông tin đã ủng
hộ, giúp đỡ, chia sẻ kiến thức, kinh nghiệm và tài liệu có được giúp chúng tôi trong quátrình nghiên cứu và thực hiện đề tài
Do giới hạn về mặt thời gian và kiến thức cũng như kinh nghiệm thực tiễn nên đề tàikhông tránh khỏi những sai sót Em rất mong nhận được sự thông cảm của quý thầy cô vàmong đón nhận những góp ý của thầy cô và các bạn
Em xin chân thành cảm ơn!
Trang 4MỤC LỤC
Chương 1 1
GIỚI THIỆU 1
1.1.Tổng quan 1
1.1.1.Bối cảnh thực hiện đề tài 1
1.1.2.Vấn đề cần giải quyết 1
1.1.3.Đề xuất nội dúng thực hiện 1
1.2.Phương pháp, kết quả 1
1.2.1.Các phương pháp triển khai thực hiện đề tài 2
1.2.2.Kết quả 2
1.3.Cấu trúc đồ án 3
Chương 2 4
NGHIÊN CỨU TỔNG QUAN 4
2.1 Tổng quan về ứng dụng 4
2.2 Một số ứng dụng đã có trên thị trường 4
2.2.1 Foody 4
2.2.2 Tiki.vn 6
2.2.3 Shopee 7
2.3.Tổng quan về các công nghệ 7
2.3.1 React 8
2.3.2 Spring Boot 10
2.3.3 Flutter 11
2.3.4 MySQL 12
Chương 3 15
PHÂN TÍCH THIẾT KẾ HỆ THỐNG 15
3.1 Mô hình tổng quan của hệ thống 15
3.1.1 Mục đích 15
3.1.2 Phạm vi 15
3.2 Xác nhận các tác nhân 16
3.2.1 Tác nhân người dùng 16
3.2.2 Tác nhân người là chủ gian hàng 16
Trang 53.3.3 Admin quản lý toàn hệ thống 16
3.3 Biểu đồ UseCase 17
3.3.1 Biểu đồ 17
3.3.2 Danh sách UseCase 21
3.3.3 Đặc tả UseCase 21
a Login (Đăng nhập) 21
b Register (Đăng ký) 22
c View product (Xem sản phẩm) 23
d Cart (Giỏ hàng) 23
e Order (Đặt hàng) 23
f Rating (Đánh giá) 24
a Register (Đăng ký) 24
b Login (Đăng nhập) 25
c Product (Quản lý sản phẩm) 25
3.4 Biểu đồ tuần tự 27
3.4.1 Biểu đồ trình tự xác thực người dùng 27
3.4.2 Biểu đồ trình tự thực hiện một request 28
3.4.4 Biểu đồ trình tự xử lý yêu cầu của Administrator 28
3.5 Biểu đồ triển khai 29
Chương 4 30
TRIỂN KHAI XÂY DỰNG 30
4.1 Các ngôn ngữ và công nghệ sử dụng cho dự án 30
4.1.1 Client 30
4.1.3 Back-end 30
4.1.3 Hệ quản trị cơ sở dữ liệu Error! Bookmark not defined. 4.2 Đánh giá và xây dựng mô hình khuyến nghị 30
4.2.1 Hệ khuyến nghị 30
4.2.2 Biến đổi dữ liệu 32
4.2.3 Xây dựng và đánh giá mô hình 33
4.2.4 Triển khai hệ thống khuyến nghị 35
4.3 Các chức năng của ứng dụng 35
4.3.1 Chức năng đối với người dùng 35
4.3.2 Chức năng đối với cửa hàng 36
4.3.3 Chức năng đối với quản trị viên hệ thống 37
Trang 64.4 Giao diện ứng dụng 37
4.4.1 Ứng dụng di động đối với người dùng 37
4.4.2 Đối với cửa hàng 43
4.4.3 Đối với quản trị viên hệ thống 44
Chương 5 45
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 45
5.1 Kết quả đạt được 45
5.2 Hướng phát triển 46
Trang 7DANH MỤC HÌNH ẢNH
Hình 1 Sàn thương mại điện tử 5
Hình 2 Sàn thương mại điện tử Tiki 6
Hình 3 Sàn thương mại điện tử Shopee 7
Hình 4 ReactJS 8
Hình 5 Spring Boot 10
Hình 6 Flutter 11
Hình 8 Biểu đồ UseCase người dùng 17
Hình 9 Biểu đồ UseCase chủ cửa hàng 18
Hình 10 Biểu đồ UseCase admin hệ thống 19
Hình 11 Biểu đồ UseCase tổng hợp 20
Hình 10 Biểu đồ tuần tự xác thực 27
Hình 11 Biểu đồ tuần tự thực hiện request 28
Hình 12 Biểu đồ hoạt động của Admin 28
Hình 13 Biểu đồ triển khai 29
Hình 3 Hai loại hệ khuyến nghị 31
Hình 4 Các mô hình khuyến nghị dựa trên cộng tác 32
Hình 13 Giao diện đăng nhập 38
Hình 14 Giao diện trang chủ 40
Hình 15 Giao diện chi tiết sản phẩm và các product được hệ khuyến nghị recommend 41
Hình 16 Giao diện Profile 42
Hình 17 Giao diện giỏ hàng và checkout 43
Hình 20 Giao diện quản lý sản phẩm 43
Hình 21 Giao diện thêm sản phẩm mới 44
Hình 22 Giao diện quản lý danh mục 44
Trang 8DANH MỤC BẢNG
Bảng 1 Danh sách các lớp trong biểu đồ lớp Error! Bookmark not defined Bảng 2 Lớp User Error! Bookmark not defined Bảng 3 Lớp Product Error! Bookmark not defined Bảng 4 Lớp User Error! Bookmark not defined.
Trang 9Chương 1.
GIỚI THIỆU
1.1.Tổng quan
1.1.1.Bối cảnh thực hiện đề tài
Trong quá trình phát triển xã hội, công nghệ thông tin đã và đang phát triển mạnh
mẽ, ngày càng thâm nhập sâu, trở thành một công cụ hỗ trợ đắc lực cho con người trongmọi lĩnh vực
Và với sự phát triển đó, nhu cầu sử dụng các ứng dụng đa nền tảng cho nhu cầu muasắm cũng ngày càng phổ biến Để đáp ứng nhu cầu đó, ứng dụng mua bán các sản phẩm vềcông nghệ ra đời
1.1.2.Vấn đề cần giải quyết
Để đáp ứng nhu cầu tìm kiếm và lựa chọn các sản phẩm công nghệ của khách hàng,chạy theo xu hướng tiện lợi mọi lúc mọi nơi, cũng như chuyển đổi linh hoạt giữa các nềntảng Một ứng dụng mua bán sản phẩm công nghệ cần đáp ứng các tiêu chí như dễ dàngtruy cập, dễ dành sử dụng, phù hợp với mọi đối tượng người dùng, và nên được xây dựngnhiều nền tảng khách nhau
Ứng dụng cần phải hoạt động ổn định, có lượng dữ liệu đủ để đáp ứng nhu cầu củakhách hàng Và không chỉ để tìm kiếm và đặt hàng, người dùng có thể trao đổi trực tiếp vớingười bán, để lại cảm nhận, đánh giá về các sản phẩm đã mua, để đêm lại sự lựa chọn tốtnhất cho người khác rằng có phù hợp hay không
Hiện nay các nền tảng mua bán trực tuyến tương đối nhiều, sự cạnh tranh là vô vùnglớn, hệ thống của các nền này đã phát triển vô cùng lớn và mạnh mẽ Chính vì vậy vấn đề vềquảng bá ứng dụng và tiếp cận người dùng là vô cùng khó khăn
1.1.3.Đề xuất nội dúng thực hiện
Thực hiện khảo sát và nghiên cứu về thị trường, nhu cầu cung ứng của mảng này.Nghiên cứu, tham khảo các ứng dụng đã có, những điểm mạnh và yếu Vì sao ứng dụng đóthành công hoặc thất bại Rút ra được những bài học từ những người đi trước
1.2.Phương pháp, kết quả
Trang 101.2.1.Các phương pháp triển khai thực hiện đề tài
Nghiên cứu thị trường, tham khảo những ứng dụng đã có sẵn Tiếp thu điểm mạnh
và loại bỏ điểm yếu
Thực hiện nghiên cứu những công nghệ, công cụ cần sử dụng để thực hiện dự án.Lựa chọn những công nghệ tối ưu và hiện đại nhất để bắt kịp xu thế phát triển khôngngừng của công nghệ hiện nay
Sau khi đã nắm bắt được công nghệ và hướng đi, bắt tay vào lập kế hoạch triển khai
dự án, đứa ra những công việc cụ thể cần thực hiện Tiến hành phân tích thiết kế, chỉnhững rủi ro, tính khả thi cũng như bất khả thi của những công việc cần thực hiện
Sau khi phân tích, tiến hành thiết kế cơ sở dữ liệu, thiết kế giao diện và từng bướchoàn thiện, ghép nối dự án thành sản phẩm hoàn chỉnh
Sau khi có sản phẩm hoàn chỉnh, tiến hành thử nghiệm và chỉnh sửa, cập nhật nhữngsai sót
Cuối cùng là tổng kết và đưa ra hướng phát triển trong tương lai
1.2.2.Kết quả
Nghiên cứu và học hỏi từ những ứng dụng nổi bật như Tiki, Shopee Lazada,Sendo, , Nghiên cứu và học tập được các công nghệ được áp dụng để phát triển ứng dụngnhư ReactJS framework, Spring framework, ngôn ngữ Dart, Flutter framework, tìm hiểu vềAPI, tìm hiểu về kết nối đa nền tảng thông qua API, tìm hiểu về Neighborhood-BasedCollaborative Filtering (áp dụng cho hệ thống gợi ý sản phẩm),
Sau quá trình thực hiện, kết quả thu được là một sàn thương mại điện tử các sảnphẩm về công nghệ với các chức năng:
Người bán (Merchant): Tạo gian hàng, đăng sản phẩm, bán sản phẩm, liên hệvới khách hàng Các sản phẩm đăng bán phải là các sản phẩm về công nghệ,
đồ điện tử nói chung (điện thoại, máy tính, linh kiện, )
Người mua (User): Mua sản phẩm, đánh giá sản phẩm, liên hệ người bánhàng Ngoài ra người dùng có thể báo cáo với quản trị viên về các vấn đề liênquan đến mua bán gian lận, lừa đảo, hay lỗi hệ thống,
Người quản trị hệ thống (Admin): Quản lý toàn bộ hoạt động của ứng dụng,bao gồm cả quản lý người bán và người mua
Trang 11 Chương trình AI gợi ý sản phẩm (Recommender system): Gợi ý các sản phẩmphù hợp với nhu cầu của người mua thông qua các từ khóa người dùng tìmkiếm, các gian hàng họ truy cập, hay qua đánh giá của những người dùng đãmua sản phẩm
1.3.Cấu trúc đồ án
Nội dung đề tài được thể hiện qua 5 chương như sau:
Chương 1 Giới thiệu: Tổng quan về bối cảnh thực hiện đề tài, các vấn đề cần giảiquyết, đề xuất nội dúng thực hiện, phương pháp thực hiện và kết quả đạt được
Chương 2 Nghiên cứu tổng quan: Nghiên cứu tổng quan về sàn thương mại điện tửcác sản phẩm về công nghệ Nghiên cứu về các công nghệ cần sử dụng để xây dựngứng dụng
Chương 3 Phân tích thiết kế hệ thống: Phân tích, xây dựng hệ thống dựa trênphương pháp, công nghệ đã lựa chọn
Chương 4 Triển khai xây dựng: Triển khai xây dựng ứng dụng dựa vào các tiêu chí đãphân tích
Chương 5 Kết luận và hướng phát triển: Từ kết quả đạt được, rút ra được các kếtluận và tìm hướng đi trong tương lai
Trang 12- Mua hàng: Lựa chọn mua và thanh toán những sản phẩm
- Xây dựng hệ khuyến nghị đưa ra hình ảnh bài viết phù hợp với từng user, theo hoạtđộng của họ trên hệ thống
2.2 Một số ứng dụng đã có trên thị trường
Hiện nay có tương đối nhiều các sàn thương mại điện tử với các mặt hàng vô cùng
đa dạng, lượng người dùng khổng lồ, chất lượng dịch vụ cũng như sản phẩm ngày càngđược cải thiện, tiêu biểu kể đến như Tiki, Shoppe, Lazada,
2.2.1 Foody
Sàn thương mại điện tử (còn gọi là sàn giao dịch thương mại điện tử) là websitethương mại điện tử cho phép các thương nhân, tổ chức, cá nhân không phải chủ sở hữuhoặc người quản lý website có thể tiến hành bán hàng hóa hoặc cung ứng dịch vụ trên đó(là các trang rao vặt, mua bán …) Hay nói cách khác, sàn giao dịch thương mại điện tử lànơi diễn ra các hoạt động mua bán trực tuyến của nhiều tổ chức, cá nhân khác nhau trêncùng một website
Chức năng của sàn giao dịch điện tử là cầu nối giúp cho các thương nhân, tổ chức, cánhân bán được nhiều hàng hóa trên website thương mại điện tử đó, nó sẽ hiển thị cácthông tin sản phẩm, giá cả, tình trạng, thông tin liên hệ của chủ shop,v.v… Tương tự đối
Trang 13với sàn giao dịch thương mại điện tử khi thành lập cũng cần phải đăng kí với Bộ CôngThương.
Sàn giao dịch cung cấp nhiều dịch vụ như: Dịch vụ cộng tác, dịch vụ cộng đồng, tíchhợp các giải pháp kinh doành, trung tâm điều phổi logistics toàn cầu cho các thành viên,bao gốm dịch vụ kho hàng và vận chuyển
Ngoài ra, sàn giao dịch điện tử cũng cung cấp các dịch vụ khác, tạo môi trường chocác bên đàm phán các giao dịch kinh doanh
Hình 1 Sàn thương mại điện tử
Các đặc điểm của một sàn thương mại điện tử tiêu biểu đang có mặt trên thị trường:
Sàn giao dịch thương mại điện tử là một tổ chức kinh doanh dịch vụ, đóng vaitrò là người môi giới
Các phương thức giao dịch tại các sàn thương mại điện tử rất phong phú, baogồm cả những phương thức mua bán thực hiện và giao dịch khống
Số lượng người mua, người bán, nhà cung cấp tham gia rất lớn
Những người tham gia vừa có thể là người bán, vừa là người mua hoặc cả hai
Thể hiện quan hệ cung cầu hàng hóa của thị trường Giá hình thành trên sàngiao dịch là giá chung cho sản phẩm trên thị trường
Tất cả các quy trình mua, bán, giao dịch, đàm phán, thương lượng, thanhtoán đều được thực hiện trực tuyến trên mạng Internet
Người mua, người bán đều có thể tham gia các giao dịch mua bán tại sản vàobất cứ lúc nào và bất cứ nơi đâu
Trang 14 Chủng loại hàng hóa và dịch vụ mua bán rất đa dạng và phong phú, bao gồm
vô hình lẫn hữu hình
Thực hiện thông tin và kết nối khách hàng
Các thành viên tham gia sàn giao dịch được quyền khai thác thông tin về thịtrường, sản phẩm, chính sách …
2.2.2 Tiki.vn
Tiki là một hệ sinh thái thương mại tất cả trong một, gồm các công ty thành viênnhư:
TikiNOW Smart Logistics cung cấp dịch vụ logistics đầu-cuối
Ticketbox mang đến dịch vụ vé sự kiện, xem phim hàng đầu
Đơn vị bán lẻ Tiki Trading và Sàn Giao dịch cung cấp 10 triệu sản phẩm từ 26ngành hàng phục vụ hàng triệu khách hàng trên toàn quốc
Hình 2 Sàn thương mại điện tử Tiki
Tiki thành lập vào tháng 3/2010 từ một trang bán sách tiếng Anh online và đến nay
đã kịp chuyển mình trở thành một trang thương mại điện tử đa ngành cung cấp hàng trămnghìn sản phẩm thuộc 10 ngành hàng:
Sách
Điện thoại – Máy tính bảng
Trang 15Hình 3 Sàn thương mại điện tử Shopee
Bản thân Shopee là sàn thương mại điện tử, là kênh kết nối người mua và ngườibán Nguồn hàng từ Shopee là trực tiếp từ các thương hiệu, nhãn hàng, hoặc từ kênh ngườibán những sản phẩm được bày bán trên Shopee
Người Bán: là thương nhân, tổ chức, cá nhân có nhu cầu sử dụng dịch vụ của Shopeebao gồm: tạo lập gian hàng, đăng tin giới thiệu sản phẩm/dịch vụ, và hoặc khuyến mại sảnphẩm/dịch vụ
Trang 16Người Mua: là thương nhân, tổ chức, cá nhân có nhu cầu tìm hiểu thông tin về sảnphẩm/dịch vụ được đăng bán trên Shopee Người Mua bắt buộc đăng ký tài khoản để thamgia giao dịch mua bán.
Hình 4 ReactJS
Hiện nay, thư viện này nhận được rất nhiều sự quan tâm đến từ cộng đồng Nó đangđược bảo trì (maintain) bởi Facebook và Instagram, cũng với sự đóng góp của cộng đồngcác lập trình viên giỏi trên Thế giới
Trang 17b Vấn đề và giải pháp
Về cơ bản, việc xây dựng một ứng dụng MVC phía client với giàng buộc dữ liệu 2chiều (2 way data-binding) là khá đơn giản Tuy nhiên nếu dự án ngày càng mở rộng, nhiềutính năng hơn, làm cho việc bảo trì dự án gặp khó khăn, đồng thời hiệu năng cũng bị giảm
Vấn đề này có thể giải quyết bằng các thư viện khác như Backbone.js hay Angular.js,tuy nhiên có nhiều hạn chế
React ra đời sau AngularJS, nó sinh ra để dành cho các ứng dụng lớn dễ dàng quản lý
và mở rộng Mục tiêu chính của React là nhanh, đơn giản, hiệu năng cao và dễ dàng mởrộng
c Lựa chọn React cho quản lý ứng dụng phía admin
React giải quyết được vấn đề của tầng View:
o Nó giải quyết vấn đề của tầng View trong mô hình MVC (Model-ViewController).Giúp viết mã Javascript dễ dàng hơn với JSX
o Nó sử dụng JSX (JavaScript Syntax eXtension) (Phần bổ xung cú phápJavascript) Là một sự hòa trộn giữa Javascript và XML, vì vậy nó cũng
dễ dàng hơn khi viết mã, và thân thiện hơn với các lập trình viên
"Thành phần hóa" giao diện:
o React cho phép lập trình viên tạo ra các Component (Thành phần) tương ứng vớicác phần của giao diện Các component này có thể tái sử dụng, hoặc kết hợp vớicác Component khác để tạo ra một giao diện hoàn chỉnh
o Ý tưởng về Component chính là chìa khóa giải quyết vấn đề khó khănkhi dự án ngày càng lớn Giao diện được tạo ra từ các Component ghéplại với nhau, một Component có thể được sử dụng tại nhiều nơi trong dự án Vìvậy thật dễ dàng khi chỉ cần quản lý và sửa chữa các Component của chính mình
o Component thực sự là tương lai của lập trình ứng dụng web, và nó cũng
là tính năng quan trọng nhất mà React đem lại
Thân thiện với SEO:
o Một trong những vấn đề lớn của các Javascript Framework là nó không thânthiện với các cỗ máy tìm kiếm (Search Engine) Mặc dù đã có nhiều cải thiệnnhưng thực sự Search Engine vẫn gặp rất nhiều khó khăn khi "đọc" các ứng dụngweb chứa nhiều Javascript
Trang 18o React có thể chạy tại phía Client, nhưng nó cũng có thể chạy tại phía Server, vìvậy dữ liệu trả về cho trình duyệt là văn bản HTML, nó không gây ra khó khăn gìcho các Search Engine, vì vậy nó thân thiện với SEO.
Dễ dàng viết UI Testcases:
o React native: React Native được Facebook công bố 2 năm sau React, cung cấpkiến trúc React để phát triển các ứng dụng Native (iOS, Android UWP) và đangtiếp nối React thành một kẻ khổng lồ trong lĩnh vực lập trình ứng dụng mobile
o Những bộ não lớn đang "hậu thuẫn" đằng sau React: React được Facebook chophép mở mã nguồn và đang được phát triển bởi rất nhiều lập trình viên giỏi trênthế giới, vì vậy tương lai của React cũng "rất được đảm bảo"
Spring là một framework được ra đời để giúp các nhà phát triển có thể xây dựng hệthống và chạy ứng dụng trên JVM một cách thuận tiện, đơn giản và nhanh chóng Đây làmột mã nguồn mở được phát triển và rất nhiều người sử dụng
Trên thực tế, Spring framework là tập hợp gồm rất nhiều các dự án nhỏ khác nhaunhư: Spring MVC (sử dụng để xây dựng các ứng dụng trên nền tảng web), Spring Data,Spring Boot,…
Trang 19Hình 5 Spring Boot
b Một số tính năng trong Spring Boot:
Các dependency “starter” giúp đơn giản hoá cấu hình và xây dựng ứng dụng
Dễ dàng deploy vì nó đã nhúng server container (Tomcat, Jetty hoặc Undertow) vàoứng dụng để tránh phức tạp khi triển khai lên môi trường production
Hỗ trợ cấu hình tự động cho chức năng Spring – bất cứ khi nào có thể
Cung cấp các số liệu, kiểm tra và cho phép cấu hình ứng dụng từ bên ngoài
c Ưu điểm nổi bật của Spring Boot:
Phát triển web một cách đơn giản và nhanh chóng
Trang 20Hình 6 Flutter
Flutter là nền tảng phát triển ứng dụng đa nền tảng cho iOS và Android do Googlephát triển Flutter sử dụng ngôn ngữ DART cũng do Google phát triển và flutter cũng đãđược sử dụng để tạo ra các ứng dụng native cho Google
Nói đơn giản, Flutter nó cho phép tạo một ứng dụng di động gốc (native app) vớimột codebase Điều này có nghĩa là có thể sử dụng một ngôn ngữ lập trình và mộtcodebase để tạo hai ứng dụng khác nhau (cho iOS và Android)
b Ngôn ngữ Dart
Ngôn ngữ DART là ngôn ngữ thuần hướng đối tượng được Google giới thiệu từ năm
2011, với mục đích cung cấp sự lựa chọn hiện đại hơn nhưng không thay thế Javascript Tối
ưu cho client, nhất là ứng dụng đa nền tảng
Dart tập trung vào phát triển front end, và có thể sử dụng nó để tạo ứng dụng diđộng và cả ứng dụng web
c Ưu điểm của Flutter
Mạnh về hiệu ứng, hiệu suất ứng dụng rất cao
Giao tiếp gần như trực tiếp với hệ thống
Ngôn ngữ kiểu tĩnh nhưng với cú pháp hiện đại (tương tự JS, Python, Java), compilerlinh động khi dùng AOT (cho sản phẩm cuối) và JIT (cho quá trình phát triển với hotreload)
Trang 21 Có thể chạy được giả lập mobile ngay trên web, tiện cho việc phát triển Các bộ đolường chỉ số hiệu suất được hỗ trợ sẵn giúp lập trình viên kiểm soát tốt hiệu suất củaứng dụng
Có thể dùng để xây dựng các nền tảng gắn vào ứng dụng native để tăng hiệu suất
c Nhược điểm của Flutter
Bộ render UI được nhóm phát triển gần như viết lại, không liên quan tới UI có sẵncủa Framework native, dẫn đến memory sử dụng khá nhiều Hơn nữa, các UI không
đi chung với OS, mà được phát triển riêng, nghĩa là cùng 1 phiên bản Flutter khi tạo
ra ứng dụng cho iOS thì iOS 8.x -> 12.x đều y chang nhau, tương tự như với Android.Nhưng UI của Android thì tất nhiên khác với iOS
Phải học thêm ngôn ngữ DART: lập trình viên biết về DART không nhiều, cũng có rủi
ro là học xong DART sẽ dính liền luôn với DART ở mảng phát triển ứng dụng mobile.Chứ không uyển chuyển như JS hay Python có thể nhảy qua lại giữa front, back hayAI…
Mô hình dữ liệu mới: bloc pattern, DART Streaming; nếu đã quen với Redux khi làmphát triển React Native, sẽ mất thời gian để học thêm mô hình dữ liệu trong Flutter,mặc dù nó không khó
Bất kì công ty nào lớn cũng cần xây dựng một hệ thống để lưu trữ cơ sở dữ liệu Mọithứ trong cơ sở dữ liệu này sẽ được quy ra thành nhiều bảng, có mối quan hệ với nhau SQLgiúp quản lý hiệu quả và truy vấn thông tin nhanh hơn, giúp bảo trì thông tin dễ dàng hơn
SQL được sử dụng phổ biến vì nó có các ưu điểm sau:
Cho phép truy cập dữ liệu trong các hệ thống quản lý cơ sở dữ liệu quan hệ
Cho phép mô tả dữ liệu
Cho phép xác định dữ liệu trong cơ sở dữ liệu và thao tác dữ liệu đó
Trang 22 Cho phép nhúng trong các ngôn ngữ khác sử dụng mô-đun SQL, thư viện vàtrình biên dịch trước.
Cho phép tạo và thả các cơ sở dữ liệu và bảng
Cho phép tạo chế độ view, thủ tục lưu trữ, chức năng trong cơ sở dữ liệu
Cho phép thiết lập quyền trên các bảng, thủ tục và view
SQL sẽ giúp quản lý hiệu quả và truy vấn thông tin nhanh hơn, giúp bảo trì, bảo mậtthông tin dễ dàng hơn
b MySQL là gì?
MySQL là một hệ thống quản lý cơ sở dữ liệu quan hệ mã nguồn mở (RDBMS) dựatrên ngôn ngữ truy vấn có cấu trúc ( SQL) được phát triển, phân phối và hỗ trợ bởi tập đoànOracle MySQL chạy trên hầu hết tất cả các nền tảng, bao gồm cả Linux , UNIX và Windows.MySQL thường được kết hợp với các ứng dụng web
MySQL và SQL không giống nhau MySQL là một trong các phần mềm RDBMS, hoạtđộng theo mô hình client-server Clietn và server liên lạc với nhau trong môi trường củaRDBMS bằng cách sử dụng ngôn ngữ truy vấn có cấu trúc chung – Structured QueryLanguage (SQL)
Nếu bắt gặp một thương hiệu nào đó có SQL kèm theo, như PostgreSQL, MicrosoftSQL server, chúng thường là những thương hiệu sử dụng syntax của SQL RDBMS softwarelại được viết bằng ngôn ngữ lập trình, nhưng luôn sử dụng SQL làm ngôn ngữ chính đểtương tác với database Bản thân MySQL được viết bằng C và C++
c Ưu điểm của MySQL:
Dễ sử dụng: MySQL là cơ sở dữ liệu tốc độ cao, ổn định, dễ sử dụng và hoạt độngtrên nhiều hệ điều hành cung cấp một hệ thống lớn các hàm tiện ích rất mạnh
Độ bảo mật cao: MySQL rất thích hợp cho các ứng dụng có truy cập CSDL trênInternet khi sở hữu nhiều nhiều tính năng bảo mật thậm chí là ở cấp cao
Đa tính năng: MySQL hỗ trợ rất nhiều chức năng SQL được mong chờ từ một hệquản trị cơ sở dữ liệu quan hệ cả trực tiếp lẫn gián tiếp
Khả năng mở rộng và mạnh mẽ: MySQL có thể xử lý rất nhiều dữ liệu và hơn thế nữa
nó có thể được mở rộng nếu cần thiết
Nhanh chóng: Việc đưa ra một số tiêu chuẩn cho phép MySQL để làm việc rất hiệuquả và tiết kiệm chi phí, do đó nó làm tăng tốc độ thực thi
d Nhược điểm của MySQL:
Trang 23 Giới hạn: Theo thiết kế, MySQL không có ý định làm tất cả và nó đi kèm với các hạnchế về chức năng mà một vào ứng dụng có thể cần.
Độ tin cậy: Cách các chức năng cụ thể được xử lý với MySQL (ví dụ tài liệu thamkhảo, các giao dịch, kiểm toán,…) làm cho nó kém tin cậy hơn so với một số hệ quảntrị cơ sở dữ liệu quan hệ khác
Dung lượng hạn chế: Nếu số bản ghi lớn dần lên thì việc truy xuất dữ liệu là khá khókhăn, khi đó chúng ta sẽ phải áp dụng nhiều biện pháp để tăng tốc độ truy xuất dữliệu như là chia tải database này ra nhiều server, hoặc tạo cache MySQL
Trang 24 Xây dựng ứng dụng trên nền tảng mobile
Xây dựng ứng dụng trên nền web
Xây dựng website quản lý ứng dụng cho admin
Xây dựng hệ khuyến nghị dựa trên Keras
Khai thác, sử dụng API của Google cho Google Authencation và Google Cloud Vision
Trang 25b Không thực hiện
Không xây dựng ứng dụng trên nền tảng desktop
Không thực hiện các chức năng thanh toán quảng cáo
3.2 Xác nhận các tác nhân
3.2.1 Tác nhân người dùng
Sau khi đăng ký và đăng nhập vào ứng dụng di động hoặc website, người dùng cơbản có thể sử dụng các dịch vụ của ứng dụng như tìm kiến sản phẩm, thêm sản phẩm vàogiỏ hàng, đặt hàng và thanh toán
3.2.2 Tác nhân người là chủ gian hàng
Các chủ cửa hàng cần đăng ký tài khoản để quản lý cửa hàng của mình Họ sẽ sửdụng website để thực hiện các công việc quản lý như thêm, sửa hoặc xóa sản phẩm, xemđánh giá hoặc nhận phản hồi từ khách hàng
3.3.3 Admin quản lý toàn hệ thống
Admin có quyền quản lý toàn bộ hệ thống từ người dùng và các gian hàng Admin cóquyền kiểm soát trạng thái của các tác nhân còn lại, có quyền cho phép các tác nhân khácđược hoạt động hay không
Trang 27Hình 8 Biểu đồ UseCase chủ cửa hàng
c Actor admin hệ thống
Trang 28Hình 9 Biểu đồ UseCase admin hệ thống
d Biểu đồ UseCase tổng hợp
Trang 29Hình 10 Biểu đồ UseCase tổng hợp