Tải bản đầy đủ (.pdf) (59 trang)

Đồ án xây dựng ứng dụng so sánh giá và tự động mua hàng trên các sàn tmđt (các thiết bị điện tử)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (7.65 MB, 59 trang )

1


LỜI CẢM ƠN
Lời đầu tiên, chúng em xin gửi lời cảm ơn chân thành đến quý thầy cô khoa Công
nghệ Phần mềm, trường Đại Học Công Nghệ Thông Tin, ĐHQG TP.HCM, đã tận tình
hướng dẫn chúng em suốt thời gian qua. Kiến thức mà quý thầy cô đã chia sẻ đã là nền
tảng quan trọng giúp chúng em hoàn thành đề tài này.
Chúng em cũng muốn bày tỏ lòng biết ơn đến ThS. Huỳnh Hồ Thị Mộng Trinh.
Cảm ơn cô đã tận tình hướng dẫn và tạo điều kiện tốt nhất cho chúng em hoàn thành
đề tài này. Những lời động viên và góp ý chân tình từ cơ đã là động lực quý giá giúp
chúng em vượt qua khó khăn trong quá trình tìm hiểu và thực hiện đề tài. Trong thời
gian vừa qua, chúng em đã nỗ lực áp dụng những kiến thức nền tảng đã học, học hỏi
và nghiên cứu công nghệ mới để xây dựng đề tài môn học. Tuy nhiên, do kiến thức và
kinh nghiệm cịn hạn chế, khơng tránh khỏi những thiếu sót. Vì vậy, chúng em rất
mong nhận được sự góp ý từ q thầy cơ để hồn thiện thêm kiến thức mà chúng em
đã học, trở thành nền tảng quý báu cho công việc của chúng em trong tương lai.
Cuối cùng, chúng em xin kính chúc q thầy cơ trong khoa Cơng nghệ Phần mềm
và cô Huỳnh Hồ Thị Mộng Trinh một sức khỏe dồi dào và niềm tin để tiếp tục sứ
mệnh cao đẹp của mình là truyền đạt kiến thức cho thế hệ mai sau.
Chân thành cảm ơn thầy cô!
Thành phố Hồ Chí Minh, tháng 7 năm 2023
Nhóm sinh viên thực hiện


NHẬN XÉT CỦA GIẢNG VIÊN
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………


…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………


MỤC LỤC
CHƯƠNG 1. TỔNG QUAN ĐỀ TÀI............................................................ 4
1.1. Giới thiệu chung............................................................................................. 4
1.1.1. Tên đề tài...................................................................................................................... 4

1.1.2. Lý do chọn đề tài.......................................................................................................... 4

1.2. Khảo sát một số trang web hiện có.................................................................5
1.2.1. Một số website tương tự trên thị trường.......................................................................6
1.2.2. Nhận xét........................................................................................................................7
1.3. Mục tiêu đề ra........................................................................................................................ 8
1.4. Phạm vi, quy mô.................................................................................................................... 9
1.5. Đối tượng nghiên cứu............................................................................................................ 9
1.5.1. Lý Thuyết..................................................................................................................... 9
1.5.2. Thực tiễn.......................................................................................................................9
1.6. Phương pháp thực hiện........................................................................................................ 10
1.7. Nền tảng công nghệ..............................................................................................................10
1.8. Kết quả mong đợi.................................................................................................................10
1.9. Kế hoạch thực hiện...............................................................................................................10

CHƯƠNG 2. CƠ SỞ LÝ THUYẾT............................................................. 12
2.1. Cheerio......................................................................................................... 12
2.2. BeautifulSoup............................................................................................... 14
2.3. Flutter........................................................................................................... 16
2.4. NodeJS..........................................................................................................17
2.4.1. NodeJS là gì?....................................................................................... 17
2.4.2. Cách NodeJS hoạt động....................................................................... 18
2.4.3. Cách NodeJS hoạt động....................................................................... 18
2.5. ExpressJS......................................................................................................19
2.5.1. ExpressJS là gì?................................................................................... 19
2.5.2. Tính năng của ExpressJS..................................................................... 19
2.6. ExpressJS......................................................................................................20
2.6.1. MongoDB là gì:................................................................................... 20
2.6.2. Ưu điểm của MongoDB:......................................................................21


CHƯƠNG 3. PHÂN TÍCH ĐẶC TẢ YÊU CẦU........................................22


3.1. Usecase, đặc tả Usecase............................................................................... 22
3.1.1. Sơ đồ usecase....................................................................................... 22
3.1.2. Đặc tả Usecase..................................................................................... 22
3.2. Sequence Diagram........................................................................................33
3.2.1. Tìm kiếm sản phẩm..............................................................................33
3.2.2. Xem thông tin chi tiết sản phẩm.......................................................... 34
3.2.3. Tạo Order............................................................................................. 35
3.3. Activity Diagram.......................................................................................... 35

CHƯƠNG 4. THIẾT KẾ KIẾN TRÚC.......................................................36
4.1. Kiến trúc tổng thể......................................................................................... 36
4.2. Kiến trúc từng phần...................................................................................... 37
4.2.1. Kiến trúc FE.........................................................................................37
4.2.2. Kiến trúc BE........................................................................................ 39

CHƯƠNG 5. THIẾT KẾ DỮ LIỆU............................................................ 39
5.1. Database....................................................................................................... 39
5.2. Mô tả.............................................................................................................40

CHƯƠNG 6. THIẾT KẾ GIAO DIỆN........................................................42
6.1. Sơ đồ liên kết màn hình................................................................................42
6.2. Danh sách màn hình..................................................................................... 42
6.2.1. Trang chủ............................................................................................. 42
6.2.1.1. Màn hình......................................................................................42
6.2.1.2. Mơ tả màn hình............................................................................43
6.2.2. Màn hình danh sách sản phẩm............................................................. 44
6.2.2.1. Màn hình......................................................................................44

6.2.2.2. Mơ tả màn hình............................................................................44
6.2.3. Chi tiết sản phẩm................................................................................. 46
6.2.3.1. Màn hình......................................................................................46
6.2.3.2. Mơ tả màn hình............................................................................46
6.2.4. Màn hình khuyến mãi.......................................................................... 48
6.2.4.1. Màn hình......................................................................................48
6.2.4.2. Mơ tả màn hình............................................................................48

CHƯƠNG 7. HƯỚNG PHÁT TRIỂN VÀ CÀI ĐẶT................................ 49

1


7.1. Môi trường phát triển ứng dụng................................................................... 49
7.2. Môi trường triển khai ứng dụng................................................................... 49
7.3. Kết quả đánh giá...........................................................................................49
7.4. Hướng phát triển...........................................................................................49

CHƯƠNG 8. KẾT LUẬN............................................................................. 51
8.1. Kết quả đạt được...........................................................................................51
8.2. Điểm đặc sắc của đề tài................................................................................ 51

TÀI LIỆU THAM KHẢO............................................................................ 53
BẢNG PHÂN CƠNG CƠNG VIỆC............................................................ 54

MỤC LỤC ẢNH
Hình 1.1. Website websosanh.vn..................................................................... 6
Hình 1.2. shopping.google.com....................................................................... 6
Hình 1.3. sosanhgia.com..................................................................................7
Hình 2.1. Logo của Cheerio...........................................................................12

Hình 2.2. Github của Cheerio........................................................................ 13
Hình 2.3. Một số selectors syntax trong Cheerio...........................................13
Hình 2.4. Một số ví dụ về Beautiful Soup..................................................... 16
Hình 2.5. Logo của Flutter.............................................................................16
Hình 2.6. Logo của NodeJS........................................................................... 18
Hình 2.7. Logo của NodeJS........................................................................... 20
Hình 3.1. Sơ đồ Usecase................................................................................ 22
Hình 3.2. Sequence Diagram tìm kiếm sản phẩm..........................................33
Hình 3.3. Sequence Diagram xem thơng tin chi tiết sản phẩm......................34
Hình 3.4. Sequence Diagram tạo Order......................................................... 35
Hình 3.5. Activity Diagram nhận báo giá...................................................... 36
Hình 4.1. Mơ hình kiến trúc tổng thể.............................................................36
Hình 4.2. Mơ tả kiến trúc FE......................................................................... 37
Hình 5.1. Database.........................................................................................40
Hình 6.1. Sơ đồ liên kết màn hình................................................................. 42
Hình 6.2. Màn hình trang chủ........................................................................ 43

2


Hình 6.3. Màn hình danh sách sản phẩm....................................................... 44
Hình 6.4. Màn hình chi tiết sản phẩm............................................................46
Hình 6.5. Màn hình khuyến mãi.................................................................... 48

MỤC LỤC BẢNG
Bảng so sánh một số UI và chức năng chính của các website so sánh giá...... 7
Danh sách Usecase.........................................................................................22
UC1: Tìm kiếm sản phẩm.............................................................................. 23
UC2: Lọc sản phẩm....................................................................................... 24
UC3: Sắp xếp sản phẩm.................................................................................25

UC4: Sắp xếp giá tăng dần.............................................................................26
UC5: Sắp xếp giá giảm dần........................................................................... 28
UC6: Xem thông tin sản phẩm.......................................................................29
UC7: So sánh giá........................................................................................... 30
UC8: Xem chi tiết kỹ thuật............................................................................ 31
UC9: Xem biểu đồ biến động........................................................................ 32
Mô tả thành phần hệ thống:........................................................................... 38
Bảng mô tả Order...........................................................................................40
Bảng mô tả Product........................................................................................40
Bảng mô tả ArrayPriceProduct...................................................................... 41
Bảng mơ tả màn hình trang chủ..................................................................... 43
Bảng mơ tả màn hình danh sách sản phẩm.................................................... 44
Bảng mơ tả màn hình chi tiết sản phẩm.........................................................46
Bảng mơ tả màn hình khuyến mãi................................................................. 48

3


NỘI DUNG ĐỒ ÁN
CHƯƠNG 1.
1.1.

TỔNG QUAN ĐỀ TÀI

Giới thiệu chung
DANH SÁCH THÀNH VIÊN NHĨM
Tên thành viên

MSSV


Ngơ Quang Vũ

20520866

Mai Phạm Quốc Hưng

20521366

1.1.1.

Tên đề tài

XÂY DỰNG ỨNG DỤNG SO SÁNH GIÁ VÀ TỰ ĐỘNG MUA HÀNG TRÊN
CÁC SÀN TMĐT (CÁC THIẾT BỊ ĐIỆN TỬ)
1.1.2.
-

Lý do chọn đề tài

Đề tài xây dựng website so sánh giá bán laptop và các thiết bị điện trên các
sàn thương mại điện tử được bọn em lựa chọn với nhiều lý do. Trước hết,
laptop, điện thoại di động, hay các thiết bị điện tử ngày càng trở nên phổ biến
trong cuộc sống hàng ngày. Hiện nay thì mỗi cá nhân các bạn học sinh sinh
viên hay những người đi làm đều sở hữu ít nhất một hay thậm chí là nhiều
các sản phẩm điện tử. Nên nhu cầu mua hàng của các thiết bị điện tử rất cao
và sự phát triển của Internet dẫn đến xu hướng mua hàng mới đó là mua
hàng online trên các sản thương mại điện tử trở nên phổ biến.

-


Tuy nhiên, việc tìm kiếm một sản phẩm ưng ý với giá hợp lý trên các sàn
thương mại điện tử trở nên phức tạp. Hiện nay, có rất nhiều sàn TMĐT bán
cùng một loại sản phẩm hay thậm chí là trên cùng 1 sản sàn TMĐT có nhiều
gian hàng cùng bán 1 sản phẩm với mức giá khác nhau, làm cho người mua
khá bối rối trong việc lựa chọn điểm mua với giá cả phù hợp nhất.

-

Nhận thấy tình trạng này và mong muốn tìm giải pháp để giải quyết vấn đề
trên. Do đó, chúng em đã quyết định chọn đề tài xây dựng website so sánh
giá bán laptop và phụ kiện trên các sàn thương mại điện tử. Mục tiêu của

4


chúng em là giúp người mua có thể dễ dàng xem xét giá cả sản phẩm trên tất
cả các sàn TMĐT và lựa chọn mua với giá hợp lý nhất.
-

Hiện tại, các trang web so sánh giá hiện có thường gặp một số hạn chế:
● Giao diện khó sử dụng, đặc biệt đối với những người mới tiếp xúc với
thiết bị cơng nghệ.
● Các tính năng quan trọng cần thiết vẫn chưa được nổi bật và chưa cho
thấy sự thay đổi giá thành sản phẩm.
● Hơn nữa, màu sắc của các trang web này thường không thu hút người
dùng.

-

Với những vấn đề trên, chúng em quyết định xây dựng một trang web so

sánh giá bán laptop và phụ kiện với giao diện thân thiện, dễ sử dụng đối với
người dùng mới. Chúng em sẽ tập trung vào việc phát triển các tính năng
quan trọng như hiển thị giá cả cạnh tranh từ các sàn TMĐT khác nhau và
cung cấp thông tin chi tiết về sản phẩm để người dùng có thể đưa ra quyết
định mua hàng thơng minh.

-

Bên cạnh đó, chúng em cũng sẽ thiết kế giao diện trực quan và thu hút để tạo
sự hứng thú cho người dùng khi sử dụng trang web của chúng em.

-

Với đề tài này, chúng em hy vọng có thể đóng góp vào việc giải quyết vấn đề
mua sắm laptop và phụ kiện với giá thành hợp lý, đồng thời mang lại trải
nghiệm mua sắm thuận tiện và tiết kiệm thời gian cho người dùng.

1.2.

Khảo sát một số trang web hiện có

5


1.2.1.

Một số website tương tự trên thị trường

Hình 1.1.


Website websosanh.vn

Hình 1.2.

shopping.google.com

6


Hình 1.3.
1.2.2.

sosanhgia.com

Nhận xét

Bảng so sánh một số UI và chức năng chính của các website so sánh giá
Tên trang
web/Chức năng
Tìm kiếm

websosanh.vn

Nhanh chóng,
nhiều bộ lọc

Shopping.google.co
m

sosanhgia.com


Nhanh chóng, nhiều
bộ lọc

Nhanh chóng,
nhiều bộ lọc

Thơng tin chi tiết Đầy đủ
sản phẩm

Khá sơ sài

Đầy đủ

Nhà cung cấp

Đa dạng

Đa dạng

Báo giá (khi giá Khơng có tính
sp quan tâm hạ năng này
xuống)

Khơng có tính năng
này

Khơng có tính
năng này


Lịch sử giá

Khơng có tính
năng này

Khơng có tính năng
này

Khơng có tính
năng này

UI/UX

Nhiều chức năng
nhưng lại khá dư
thừa

Trực quan, dễ nhìn,
dễ sử dụng

Trực quan, dễ
nhìn, dễ sử dụng

Đa dạng

7


Ưu điểm:
-


Giúp người dùng tiết kiệm thời gian và công sức khi tìm kiếm sản phẩm và
so sánh giá cả từ nhiều nhà bán lẻ khác nhau.

-

Cung cấp thông tin chi tiết về sản phẩm, giá cả và đánh giá từ người dùng,
giúp người dùng có thể đưa ra quyết định mua hàng thơng minh hơn.

-

Có thể tìm được giá tốt nhất cho sản phẩm mình đang tìm kiếm, giúp tiết
kiệm được chi phí.

-

Các trang web so sánh giá thường có tính năng báo giá, giúp người dùng có
thể theo dõi giá sản phẩm yêu thích và mua hàng khi giá đạt mức mong
muốn.

-

Các trang web so sánh giá thường có đầy đủ thơng tin về các chương trình
khuyến mãi và mã giảm giá, giúp người dùng mua hàng với giá rẻ hơn.

Nhược điểm:
-

Các trang web so sánh giá không phải lúc nào cũng cập nhật đầy đủ thông tin
về sản phẩm và giá cả mới nhất, do đó có thể gây ra sai sót khi so sánh giá

cả.

-

Các trang web so sánh giá có thể khơng liên kết với tất cả các nhà bán lẻ trên
thị trường, do đó có thể bỏ lỡ một số ưu đãi và chương trình khuyến mãi tốt
từ các nhà bán lẻ khơng có trên trang web so sánh giá.

-

Các trang web so sánh giá có thể khơng có giá tốt nhất cho tất cả các sản
phẩm, do đó người dùng cần phải tìm hiểu nhiều nguồn thông tin và so sánh
giá cả từ nhiều trang web khác nhau.

-

Các trang web so sánh giá có thể bị ảnh hưởng bởi quảng cáo và ưu tiên
những sản phẩm của các đối tác liên kết, không phản ánh đầy đủ sự thật về
các sản phẩm và giá cả.

1.3.
-

Mục tiêu đề ra
Xây dựng website giải quyết các vấn đề sau:

8


● Xem biến động giá.

● Tìm giá tốt nhất cho sản phẩm.
● Xem thông tin mô tả sản phẩm và giá bán trên các sàn TMDT khác.
● Lọc sản phẩm.
● Nhận thông tin khuyến mãi.
● Nhận thông báo khi sản phẩm u thích giảm giá.
1.4.

Phạm vi, quy mơ

-

Mơi trường, platform: mobile

-

Phạm vi chức năng:
● Biểu đồ đường thể hiện biến động giá của sản phẩm: Có số liệu chi tiết.
Hiển thị rõ sự lên xuống của giá sản phẩm trên 1 sàn thương mại theo
từng tháng.
● Tìm giá tốt nhất cho sản phẩm: Hiển thị danh sách sàn thương mại có bán
sản phẩm, ưu tiên hiển thị các sản phẩm có giá thấp nhất.
● Lọc sản phẩm: Lọc sản phẩm theo số tiền, phân loại,..
● Nhận tin khuyến mãi: Thông tin về các khuyến mãi ưu đãi
● Biến động giá sản phẩm: Biểu đồ thể hiện giá sản phẩm trong ngày (cách
6 tiếng cập nhật giá).
● Báo giá sản phẩm: Khi sản phẩm của user quan tâm giảm đến mức giá mà
user mong muốn thì sẽ có email gửi đến email thông báo cho user.

1.5.


Đối tượng nghiên cứu

1.5.1.

Lý Thuyết

-

Nghiên cứu các framework, lib.

-

Nghiên cứu ngơn ngữ lập trình Javascript.

-

Nghiên cứu Flutter, NodeJS

-

Nghiên cứu MongoDB.

1.5.2.

Thực tiễn

-

Xây dựng ứng dụng gồm client, server.


-

Xây dựng ứng dụng.

9


-

Xây dựng đồ thị bằng dữ liệu có sẵn.

-

Lấy thơng tin, dữ liệu, giá trên các sàn thương mại điện tử.

-

Tự động cập nhật giá sản phẩm sau một thời gian cụ thể.

-

Tự động gửi mail khi sản phẩm hạ giá.

1.6.

Phương pháp thực hiện

-

Nghiên cứu hiện trạng:

● Tìm hiểu nhu cầu người dùng.
● Tìm hiểu thơng tin về các cơng nghệ thực hiện.
● Nghiên cứu, tham khảo những website tương tự trên thị trường.

-

Tìm hiểu cơng nghệ:
● Tìm hiểu ngơn ngữ, các lib và framework liên quan để thực hiện và tối ưu
hóa hiệu suất.
● Xây dựng ứng dụng và tiến hành kiểm thử, cải tiến.
● Tiến hành triển khai, nhân phản hồi và cải thiện.

1.7.

Nền tảng công nghệ

-

Front-end: Flutter

-

Back-end: NodeJS, ExpressJS

-

Database: MongoDB

1.8.


Kết quả mong đợi

-

Hoàn thiện được website đáp ứng đầy đủ mục tiêu đề ra.

-

Đáp ứng được nhu cầu của người dùng trong thực tế.

-

Ứng dụng có khả năng tương tác với người dùng ở mức độ ổn định.

-

Các chức năng của website hoạt động đúng đắn, chính xác, dễ sử dụng.

-

Đáp ứng được mong muốn thực tế của người dùng.

1.9.

Kế hoạch thực hiện

Sprint
1

Nội dung


Thời gian

Tìm hiểu đề tài, công nghệ và những
thông tin liên quan

10

27/2 - 13/3


2

Phân tích yêu cầu, đưa ra danh sách chức

13/3 - 27/3

năng
3

Thiết kế, xây dựng CSDL

27/3 - 10/4

4

Thiết kế UI cơ bản, xây dựng server cơ

10/4 - 24/4


bản
5

Xây dựng các chức năng

24/4 - 8/5

Xây dựng server, kết nối và thiết kế
Database
6

Hoàn thiện chắc chức năng, UI của ứng

8/5 - 22/5

dụng
Hoàn thiện các logic phía server
7

Kiểm thử, triển khai ứng dụng và tiếp

22/5 - 5/6

nhận phản hồi
8

Sửa lỗi, cải tiến và viết báo cáo

11


5/6 - 19/6


CHƯƠNG 2.
2.1.
-

CƠ SỞ LÝ THUYẾT

Cheerio

Cheerio là một thư viện mã nguồn mở được sử dụng để phân tích và xử lý
HTML hoặc XML trong NodeJS. Nó cung cấp một cú pháp dễ sử dụng, dựa trên
cú pháp CSS, cho phép bạn lựa chọn các phần tử trong tài liệu và thực hiện các
thao tác trên chúng.

-

Cheerio cũng là thư viện khá phổ biến trong Webscraping đặc biệt là trong môi
trường NodeJS. Cheerio hoạt động với mơ hình DOM nhất qn, rất đơn giản.
Kết quả là việc phân tích cú pháp, thao tác và hiển thị cực kỳ hiệu quả.

Hình 2.1.

Logo của Cheerio

12


Hình 2.2.


Hình 2.3.
-

Github của Cheerio

Một số selectors syntax trong Cheerio

Dưới đây là một số đặc điểm chính và lợi ích của Cheerio:
● Dễ sử dụng: Cheerio có cú pháp tương tự jQuery, vì vậy nếu bạn đã quen
thuộc với jQuery, việc sử dụng Cheerio sẽ rất dễ dàng.
● Tương thích với NodeJS: Cheerio được thiết kế để hoạt động trên NodeJS

13


và khơng u cầu mơi trường trình duyệt. Điều này làm cho nó trở thành một
cơng cụ hữu ích khi bạn đang xử lý dữ liệu trên máy chủ.
● Phân tích HTML/XML: Cheerio cho phép bạn phân tích các tài liệu HTML
hoặc XML và trích xuất thơng tin từ chúng. Bạn có thể tìm kiếm các phần tử,
thuộc tính, nội dung văn bản và thậm chí các dạng kết hợp của chúng.
● Xử lý dữ liệu: Cheerio cho phép bạn thay đổi nội dung của các phần tử,
thêm/xóa phần tử, và chỉnh sửa thuộc tính. Bạn có thể sử dụng các phương
thức của Cheerio để thực hiện các thao tác như thêm lớp CSS, thay đổi giá
trị thuộc tính, lấy nội dung HTML và nhiều hơn nữa.
● Tích hợp dễ dàng: Cheerio tích hợp tốt với các cơng cụ và thư viện khác
trong hệ sinh thái NodeJS. Bạn có thể kết hợp Cheerio với các thư viện như
Axios hoặc Request để tải dữ liệu HTML/XML từ các nguồn bên ngoài và sử
dụng Cheerio để phân tích và xử lý dữ liệu.
-


Với khả năng mạnh mẽ và dễ sử dụng, Cheerio đã trở thành một công cụ phổ
biến cho việc webscraping đặc biệt là trong NodeJS. Từ việc tìm kiếm dữ liệu từ
trang web, xây dựng các ứng dụng liên quan đến dữ liệu, hoặc thực hiện phân
tích dữ liệu tự động, Cheerio là một lựa chọn tuyệt vời để giúp bạn trích xuất và
xử lý dữ liệu một cách hiệu quả từ các trang web.

2.2.
-

BeautifulSoup

Beautiful Soup là một thư viện Python được sử dụng phổ biến để phân tích và
trích xuất dữ liệu từ HTML và XML. Nó cung cấp một cách dễ dàng để phân
tích cú pháp các trang web và tài liệu XML, và trích xuất thơng tin từ chúng.

-

Với Beautiful Soup, bạn có thể xây dựng một cây cấu trúc dữ liệu từ một trang
web hoặc tài liệu XML và dễ dàng tìm kiếm, lấy thơng tin và thay đổi các phần
tử của cây cấu trúc đó.

-

Các chức năng chính của Beautiful Soup bao gồm:

14


● Phân tích cú pháp: Beautiful Soup giúp bạn phân tích cú pháp HTML hoặc

XML và xây dựng một cây cấu trúc dữ liệu để truy cập vào các phần tử trong
tài liệu.
● Truy xuất thơng tin: Bạn có thể sử dụng Beautiful Soup để tìm kiếm, lọc và
trích xuất thông tin từ các phần tử của trang web hoặc tài liệu XML. Bạn có
thể truy xuất thơng tin bằng tên thẻ, thuộc tính, lớp CSS và nhiều tiêu chí tìm
kiếm khác.
● Thay đổi và cập nhật dữ liệu: Beautiful Soup cung cấp các phương thức để
thêm, sửa đổi và xóa các phần tử, thuộc tính trong cây cấu trúc dữ liệu. Bạn
có thể sử dụng chúng để chỉnh sửa nội dung của trang web hoặc tài liệu
XML.
● Xử lý dữ liệu không hợp lệ: Beautiful Soup cho phép bạn xử lý dữ liệu
không hợp lệ hoặc không đầy đủ trong trang web hoặc tài liệu XML. Nó tự
động đóng các thẻ khơng được đóng đúng cách và khắc phục các lỗi cú pháp
khác.
● Beautiful Soup là một công cụ mạnh mẽ và linh hoạt để trích xuất thơng tin
từ các trang web hoặc tài liệu XML. Nó thường được sử dụng trong các ứng
dụng web scraping, phân tích dữ liệu và tự động hóa việc trích xuất thơng tin
từ các nguồn dữ liệu trực tuyến.
-

Beautiful Soup Dart được sinh ra từ Beautiful Soup sử dụng ngôn ngữ Dart.
Cung cấp những cách dễ dàng trong việc điều hướng, tìm kiếm và chỉnh sửa cây
HTML.

-

Để sử dụng Beautiful Soup trong Flutter, chúng ta sẽ import thư viện
“beautiful_soup_dart"

-


Sau đây là ví dụ đơn giản về Beautiful Soup dart:

15


Hình 2.4.
2.3.

Một số ví dụ về Beautiful Soup

Flutter

Hình 2.5.
-

Logo của Flutter

Flutter là một framework phát triển ứng dụng di động gốc đa nền tảng, được
phát triển bởi Google. Nó cho phép bạn xây dựng các ứng dụng di động đẹp và
nhanh chóng trên nhiều nền tảng, bao gồm Android, iOS, web và desktop, từ
một mã nguồn duy nhất.

-

Flutter sử dụng ngơn ngữ lập trình Dart, một ngơn ngữ tương đối dễ học và cú
pháp gần giống với JavaScript. Flutter cung cấp một tập hợp các thành phần

16



giao diện người dùng (UI widgets) giàu tính năng để xây dựng giao diện ứng
dụng, giúp bạn tạo ra các ứng dụng di động đẹp và tương tác.
-

Một trong những điểm mạnh của Flutter là hot reload, cho phép bạn thay đổi mã
nguồn và nhìn thấy kết quả ngay lập tức trên thiết bị di động hoặc mô phỏng.
Điều này giúp tăng tốc quá trình phát triển và thử nghiệm ứng dụng.

-

Flutter cũng có cộng đồng lớn và phát triển mạnh mẽ, với nhiều tài liệu, cơng cụ
và gói thư viện hữu ích. Bạn có thể sử dụng các gói thư viện này để thêm tính
năng như xử lý hình ảnh, truy cập cơ sở dữ liệu, giao tiếp mạng và nhiều hơn
nữa.

-

Với việc sử dụng Flutter, bạn có thể xây dựng một ứng dụng duy nhất và triển
khai nó trên nhiều nền tảng mà không cần viết mã lại. Điều này giúp tiết kiệm
thời gian và công sức trong quá trình phát triển ứng dụng di động.

-

Flutter là một framework phát triển ứng dụng di động đa nền tảng mạnh mẽ, linh
hoạt và dễ sử dụng. Nó cho phép bạn xây dựng ứng dụng di động đẹp và tương
tác trên nhiều nền tảng với sự hiệu quả cao.

2.4.


NodeJS

2.4.1.
-

NodeJS là gì?

Nodejs là một nền tảng (Platform) phát triển độc lập được xây dựng trên V8
JavaScript Engine – trình thơng dịch thực thi mã JavaScript giúp chúng ta có
thể xây dựng được các ứng dụng web như các trang video clip, các forum và
đặc biệt là trang mạng xã hội phạm vi hẹp một cách nhanh chóng và dễ dàng
mở rộng.

-

NodeJS có thể chạy trên nhiều nền tảng hệ điều hành khác nhau từ Window
cho tới Linux, OS X nên đó cũng là một lợi thế. NodeJS cung cấp các thư
viện phong phú ở dạng.

-

Javascript Module khác nhau giúp đơn giản hóa việc lập trình và giảm thời
gian ở mức thấp nhất.

17


Hình 2.6.
2.4.2.
-


Logo của NodeJS

Cách NodeJS hoạt động

Ý tưởng chính của Node js là sử dụng non-blocking, hướng sự vào ra dữ liệu
thông qua các tác vụ thời gian thực một cách nhanh chóng. Bởi vì, NodeJS
có khả năng mở rộng nhanh chóng, khả năng xử lý một số lượng lớn các kết
nối đồng thời bằng thông lượng cao.

-

Nếu như các ứng dụng web truyền thống, các request tạo ra một luồng xử lý
yêu cầu mới và chiếm RAM của hệ thống thì việc tài nguyên của hệ thống sẽ
được sử dụng khơng hiệu quả. Chính vì lẽ đó giải pháp mà NodeJS đưa ra là
sử dụng luồng đơn (Single-Threaded), kết hợp với non-blocking I/O để thực
thi các request, cho phép hỗ trợ hàng chục ngàn kết nối đồng thời.

2.4.3.
-

Cách NodeJS hoạt động

Tốc độ cực nhanh: Được xây dựng dựa trên engine JavaScript V8 của
Google Chrome, do đó các thư viện của nó có khả năng thực thi code chỉ rất
nhanh.

-

NPM: Với hơn 50,000 package khác nhau, các developer có thể dễ dàng lựa

chọn bất kỳ tính năng nào để xây dựng cho ứng dụng của mình.

-

Lập trình khơng đồng bộ: Mọi API của NodeJS đều có tính khơng đồng bộ
(nonblocking), do đó một server dựa trên NodeJS khơng cần phải đợi API trả

18


về dữ liệu.
-

Khơng có buffering: Node.JS giúp tiết kiệm thời gian xử lý file khi cần
upload âm thanh hoặc video vì các ứng dụng này khơng bao giờ buffer dữ
liệu mà chỉ xuất dữ liệu theo từng phần (chunk).

-

Đơn luồng: Node.JS sử dụng mơ hình đơn luồng với vịng lặp sự kiện. Do
đó các ứng dụng có thể xử lý số lượng request lớn hơn rất nhiều so với các
server truyền thống như Apache HTTP Server.

-

Khả năng mở rộng cao: Server NodeJS phản hồi theo hướng non-blocking,
do đó nó có thể mở rộng vô cùng dễ dàng, tạo ra các luồng giới hạn để xử lý
request.

2.5.


ExpressJS

2.5.1.
-

ExpressJS là gì?

Express.js là một framework mã nguồn mở miễn phí cho Node.js. Express.js
được sử dụng trong thiết kế và xây dựng các ứng dụng web một cách đơn
giản và nhanh chóng.

-

Express hỗ trợ các phương thức HTTP và middleware tạo ra một API vô
cùng mạnh mẽ và dễ sử dụng.

2.5.2.
-

Tính năng của ExpressJS

Phát triển máy chủ nhanh chóng: Expressjs cung cấp nhiều tính năng dưới
dạng các hàm để dễ dàng sử dụng ở bất kỳ đâu trong chương trình. Điều này
đã loại bỏ nhu cầu viết mã từ đó tiết kiệm được thời gian.

-

Phần mềm trung gian Middleware: Đây là phần mềm trung gian có quyền
truy cập vào cơ sở dữ liệu, yêu cầu của khách hàng và những phần mềm

trung gian khác. Phần mềm Middleware này chịu trách nhiệm chính cho việc
tổ chức có hệ thống các chức năng của ExpressJS.

-

Định tuyến - Routing: ExpressJS cung cấp cơ chế định tuyến giúp duy trì
trạng thái của website với sự trợ giúp của URL.

-

Tạo mẫu - Templating: Các công cụ tạo khuôn mẫu được ExpressJS cung
cấp cho phép các nhà xây dựng nội dung động trên các website bằng cách tạo

19


dựng các mẫu HTML ở phía máy chủ.
-

Gỡ lỗi - Debugging: Để phát triển thành công các ứng dụng web không thể
thiết đi việc gỡ lỗi. Giờ đây với Expressjs việc gỡ lỗi đã trở nên dễ dàng hơn
nhờ khả năng xác định chính xác các phần ứng dụng web có lỗi.

Hình 2.7.
2.6.

Logo của NodeJS

ExpressJS


2.6.1. MongoDB là gì:
-

MongoDB là một hệ quản trị cơ sở dữ liệu mã nguồn mở, là CSDL thuộc
NoSql và được hàng triệu người sử dụng.

-

MongoDB là một database hướng tài liệu (document), các dữ liệu được lưu
trữ trong document kiểu JSON thay vì dạng bảng như CSDL quan hệ nên
truy vấn sẽ rất nhanh.

-

Với CSDL quan hệ chúng ta có khái niệm bảng, các cơ sở dữ liệu quan hệ
(như MySQL hay SQL Server...) sử dụng các bảng để lưu dữ liệu thì với
MongoDB chúng ta sẽ dùng khái niệm là collection thay vì bảng- So với
RDBMS thì trong MongoDB collection ứng với table, cịn document sẽ ứng
với row , MongoDB sẽ dùng các document thay cho row trong RDBMS.

-

Các collection trong MongoDB được cấu trúc rất linh hoạt, cho phép các dữ
liệu lưu trữ không cần tuân theo một cấu trúc nhất định.

-

Thông tin liên quan được lưu trữ cùng nhau để truy cập truy vấn nhanh thông

20



qua ngôn ngữ truy vấn MongoDB
2.6.2. Ưu điểm của MongoDB:
-

Do MongoDB sử dụng lưu trữ dữ liệu dưới dạng Document JSON nên mỗi
một collection sẽ có các kích cỡ và các document khác nhau, linh hoạt trong
việc lưu trữ dữ liệu, nên bạn muốn gì thì cứ insert vào thoải mái.

-

Dữ liệu trong MongoDB khơng có sự ràng buộc lẫn nhau, khơng có join như
trong RDBMS nên khi insert, xóa hay update nó khơng cần phải mất thời
gian kiểm tra xem có thỏa mãn các ràng buộc dữ liệu như trong RDBMS.

-

MongoDB rất dễ mở rộng (Horizontal Scalability). Trong MongoDB có một
khái niệm cluster là cụm các node chứa dữ liệu giao tiếp với nhau, khi muốn
mở rộng hệ thống ta chỉ cần thêm một node với vào cluster.

-

Trường dữ liệu “_id” luôn được tự động đánh index (chỉ mục) để tốc độ truy
vấn thông tin đạt hiệu suất cao nhất.

-

Khi có một truy vấn dữ liệu, bản ghi được cached lên bộ nhớ Ram, để phục

vụ lượt truy vấn sau diễn ra nhanh hơn mà không cần phải đọc từ ổ cứng.

-

Hiệu năng cao: Tốc độ truy vấn (find, update, insert, delete) của MongoDB
nhanh hơn hẳn so với các hệ quản trị cơ sở dữ liệu quan hệ (RDBMS). Với
một lượng dữ liệu đủ lớn thì thử nghiệm cho thấy tốc độ insert của
MongoDB có thể nhanh tới gấp 100 lần so với MySQL

21


×