ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM
VÕ VĂN TÀI TRIỂN – 17521158
HỒNG CƠNG MINH – 17520747
KHĨA LUẬN TỐT NGHIỆP
XÂY DỰNG ỨNG DỤNG TRAO ĐỔI SÁCH VỚI NESTJS
FRAMEWORK
Build books exchange application with NestJs Framework
KỸ SƯ NGÀNH KỸ THUẬT PHẦN MỀM
TP. HỒ CHÍ MINH, 2021
ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CƠNG NGHỆ PHẦN MỀM
VÕ VĂN TÀI TRIỂN – 17521158
HỒNG CƠNG MINH – 17520747
KHĨA LUẬN TỐT NGHIỆP
XÂY DỰNG ỨNG DỤNG TRAO ĐỔI SÁCH VỚI NESTJS
FRAMEWORK
Build books exchange application with NestJs Framework
KỸ SƯ NGÀNH KỸ THUẬT PHẦN MỀM
GIẢNG VIÊN HƯỚNG DẪN
THS. HUỲNH NGUYỄN KHẮC HUY
TS. TRẦN SƠN HẢI
TP. HỒ CHÍ MINH, 2021
TP. HỒ CHÍ MINH, 2021
DANH SÁCH HỘI ĐỒNG BẢO VỆ KHĨA LUẬN
Hội đồng chấm khóa luận tốt nghiệp, thành lập theo Quyết định số ………………
…… ngày ……………….. của Hiệu trưởng Trường Đại học Công nghệ Thông tin. 1.
…………………………………………. – Chủ tịch.
2. …………………………………………. – Thư ký.
3. …………………………………………. – Ủy viên.
4. …………………………………………. – Ủy viên.
ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
Độc Lập - Tự Do - Hạnh Phúc
TRƯỜNG ĐẠI HỌC
CƠNG NGHỆ THƠNG TIN
CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM
TP.Hồ Chí Minh, …tháng, …năm
NHẬN XÉT KHĨA LUẬN TỐT NGHIỆP
(CỦA CÁN BỘ HƯỚNG DẪN)
Tên khóa luận:
XÂY DỰNG ỨNG DỤNG TRAO ĐỔI SÁCH VỚI NESTJS FRAMEWORK
Nhóm sinh viên thực hiện: Cán bộ hướng dẫn: VÕ VĂN TÀI TRIỂN 17521158
Ths. HUỲNH NGUYỄN KHẮC HUY HỒNG CƠNG MINH 17520747 Ts. TRẦN
SƠN HẢI
Đánh giá khóa luận:
1. Về báo cáo:
Số trang: Số chương:
Số bảng số liệu: Số hình vẽ:
Số tài liệu tham
khảo:
Một số nhận xét khác về hình thức báo cáo:
Sản phẩm:
......................................................................................................................... ...
...................................................................................................................... ......
................................................................................................................... .........
................................................................................................................ ............
............................................................................................................. ...............
..........................................................................................................
2. Về nội dung nghiên cứu:
......................................................................................................................... ...
...................................................................................................................... ............
............................................................................................................. .....................
.................................................................................................... 3. Về chương trình
ứng dụng:
......................................................................................................................... ...
...................................................................................................................... ............
............................................................................................................. .....................
.................................................................................................... 4. Về thái độ làm
việc của sinh viên:
......................................................................................................................... ...
...................................................................................................................... ......
................................................................................................................... .........
................................................................................................................
Đánh giá chung:
......................................................................................................................... ...
...................................................................................................................... ......
................................................................................................................... .........
................................................................................................................
Điểm từng sinh viên:
VÕ VĂN TÀI TRIỂN: ……/10
HOÀNG CÔNG MINH: ……/10
Người nhận xét
ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
(Ký và ghi rõ họ tên)
Độc Lập - Tự Do - Hạnh Phúc
TRƯỜNG ĐẠI HỌC
CƠNG NGHỆ THƠNG TIN
CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM
TP.Hồ Chí Minh, …tháng, …năm
NHẬN XÉT KHÓA LUẬN TỐT NGHIỆP
(CỦA CÁN BỘ PHẢN BIỆN)
Tên khóa luận:
XÂY DỰNG ỨNG DỤNG TRAO ĐỔI SÁCH VỚI NESTJS FRAMEWORK
Nhóm sinh viên thực hiện: Cán bộ phản biện: VÕ VĂN TÀI
TRIỂN 17521158
HỒNG CƠNG MINH 17520747
Đánh giá khóa luận:
1. Về báo cáo:
Số trang: Số chương:
Số bảng số liệu: Số hình vẽ:
Số tài liệu tham
khảo:
Một số nhận xét khác về hình thức báo cáo:
Sản phẩm:
......................................................................................................................... ...
...................................................................................................................... ......
................................................................................................................... .........
................................................................................................................ ............
............................................................................................................. ...............
..........................................................................................................
2. Về nội dung nghiên cứu:
......................................................................................................................... ...
...................................................................................................................... ............
............................................................................................................. .....................
.................................................................................................... 3. Về chương trình
ứng dụng:
......................................................................................................................... ...
...................................................................................................................... ............
............................................................................................................. .....................
.................................................................................................... 4. Về thái độ làm
việc của sinh viên:
......................................................................................................................... ...
...................................................................................................................... ......
................................................................................................................... .........
................................................................................................................
Đánh giá chung:
......................................................................................................................... ...
...................................................................................................................... ......
................................................................................................................... .........
................................................................................................................
Điểm từng sinh viên:
VÕ VĂN TÀI TRIỂN: ……/10
HỒNG CƠNG MINH: ……/10
Người nhận xét
(Ký và ghi rõ họ tên)
LỜI CẢM ƠN
Sau chặng đường bốn năm học tập và rèn luyện tại khoa Công Nghệ Phần Mềm
trường Đại học Công Nghệ Thông Tin – ĐHQG TP.HCM, nhóm chúng em đã được trang bị
rất nhiều hành trang hữu ích và thực tế để hồn thành khóa luận tốt nghiệp cũng như tiếp
bước trên đoạn đường đời.
Để hồn thành khóa luận này, ngồi nỗ lực khơng ngừng của bản thân cịn có những
sự giúp đỡ, hướng dẫn tận tình của nhà trường, gia đình, thầy cơ giảng viên và bạn bè trong
suốt q trình học tập. Nhóm chúng em xin gửi lời cảm ơn chân thành và sâu sắc nhất đến:
Ban Giám hiệu, các giảng viên cũng như tất cả các cán bộ và nhân viên đã, đang công
tác tại trường Đại học Công nghệ Thông tin – ĐHQG TP.HCM vì đã tạo điều kiện tốt nhất để
nhóm có thể học tập và rèn luyện tại mơi trường này.
Thầy Huỳnh Nguyễn Khắc Huy và Thầy Trần Sơn Hải là những người lái đị giúp đỡ
nhóm em khơng chỉ trong suốt thời gian thực hiện khóa luận mà cịn cả trong thời gian học
tập tại ngơi trường Đại học Cơng Nghệ Thơng Tin. Cảm ơn hai thầy vì những lời góp ý, động
viên hết sức quý báu và chân thành. Những lời góp ý đó khơng chỉ giúp nhóm em phát triển
mà cịn là những giá trị bền vững mà nhóm có thể tiếp tục mang theo trên con đường tương
lai phía trước.
Và lời cảm ơn cịn lại, nhóm em xin gửi đến gia đình, tất cả các thầy cơ giảng viên,
nhân viên tại Đại học Cơng nghệ Thơng Tin nói chung và trong khoa Cơng Nghệ Phần Mềm
nói riêng. Bên cạnh đó là tập thể lớp PMCL2017.2 là những người bạn tuyệt vời, luôn luôn
sẵn sàng giúp đỡ nhau trong học tập và cuộc sống.
Lời cuối cùng, nhóm em chân thành cảm ơn tất cả mọi người. Chúc mọi người luôn
gặp nhiều thành cơng và may mắn trên con đường phía trước.
TP.Hồ Chí Minh, …..tháng …..năm
ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
Nhóm thực hiện
Độc Lập - Tự Do - Hạnh Phúc
TRƯỜNG ĐẠI HỌC
CƠNG NGHỆ THƠNG TIN
CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM
TP.Hồ Chí Minh, …tháng, …năm
ĐỀ CƯƠNG CHI TIẾT
Tên đề tài: Xây dựng ứng dụng trao đổi sách với NestJs Framework
Cán bộ hướng dẫn: Ths. Huỳnh Nguyễn Khắc Huy và Ts. Trần Sơn Hải
Thời gian thực hiện:Từ ngày…08/03/2021…đến ngày……26/06/2021………
Sinh viên thực hiện:
Võ Văn Tài Triển – 17521158
Hồng Cơng Minh – 17520747
Nội dung đề tài:
1. Mục tiêu chọn đề tài
Sách là nguồn kiến thức vô tận của nhân loại, việc sở hữu và học hỏi từ các cuốn sách
là mang lại nhiều kiến thức, kỹ năng hơn so với việc tham gia các khóa học, hay tìm kiếm
các thơng tin từ internet trong thời kỳ nhiễu loạn thông tin như hiện tại.
1.1 Hiện trạng
Một khảo sát quốc tế năm 2016 cho thấy người Việt Nam đọc sách ít hơn nhiều so với
các nước trong khu vực, chỉ có 30% người Việt đọc sách thường xuyên, 44% thỉnh
thoảng mới đọc sách, và 26% hồn tồn khơng đọc sách. Trong khi Ấn Độ đọc 11
giờ/tuần, Đài Loan đọc 5 giờ/tuần, Nhật Bản đọc 4 giờ/tuần,… thì người Việt Nam
trung bình đọc chưa tới 1 giờ/tuần (trích dẫn báo Thanhnien.vn).
1.2 Vấn đề
Với nhu cầu đọc sách, nghiên cứu của sinh viên nói riêng và người đọc sách nói
chung sẽ gặp khó khăn khi khơng có đủ điều kiện để mua 1 cuốn sách. Bên cạnh đó,
nhu cầu đọc sách và nghiên cứu tìm hiểu cao với chi phí rẻ thường xảy ra một số
trường hợp mua phải sách giả, sách có chất lượng khơng ổn định…
Trong thực tế hoạt động trao đổi sách đã được thực hiện thông qua các cách truyền
thống:
•
Ngày hội trao đổi sách.
•
Các buổi offline nhỏ lẻ để những người yêu sách có thể gặp gỡ. Tuy nhiên, những
cách truyền thống này gặp rất nhiều khó khăn trong hoạt động trao đổi:
o
Sự cố định về địa điểm và thời gian dẫn tới sự hạn chế về người tham gia, hoạt
động này không thường xuyên, mặc dù nhu cầu trao đổi là thường xuyên và liên
tục.
o
Tốn kém chi phí để tổ chức những ngày hội hay buổi offline để mọi người trao
đổi sách.
1.3 Nhu cầu thực tế
- Tăng nguồn kiến thức từ sách, đọc nhiều đầu sách với chi phí phải chăng. Tìm kiếm sưu tầm/chia sẻ các loại sách cổ khơng cịn sản xuất.
- Quyên góp/tặng sách từ thiện hoặc giao lưu.
- Chia sẻ quan điểm của bản thân về các đầu sách từng đọc.
- Tìm kiếm bạn bè có cùng sở thích về các loại sách.
- Cập nhật thơng tin về các ngày hội sách ở gần khu vực sinh sống.
1.4 Giải pháp hiện tại
- Mua sách cũ tại các cửa hàng, sạp bán sách cũ/mới/giả lề đường.
- Đăng bài trao đổi/tặng sách trên các nhóm cộng đồng trên facebook. Đăng bài mua/bán sách trên các nhóm cộng đồng facebook.
- Mua sách trên các kênh thơng tin khơng chính thống, khơng phải cơng ty phát hành. Tìm đọc sách lậu trực tuyến/pdf.
2. Đối tượng nghiên cứu
2.1 Công nghệ:
- Mobile: Flutter
- Backend: MySQL/NestJs
2.2 Người dùng:
- Độ tuổi: 16 – 26 tuổi.
- Sở thích: Đọc sách, khám phá nhiều loại sách.
- Tình trạng chung: Độc thân.
- Nghề nghiệp: Học sinh, sinh viên, đã đi làm và có nhu cầu đọc sách. 3.
Phương pháp thực hiện
3.1 Phương pháp làm việc nhóm:
- Nhóm làm việc thơng qua hai hình thức trực tuyến và offline dưới sự hướng dẫn của
giảng viên.
- Quản lý dự án thông qua công cụ trello. Dùng để quản lý các chức năng, nhiệm vụ,
hạn mức cũng như mục tiêu đề ra.
3.2 Phương pháp phân tích và thiết kế:
- Phân tích nhu cầu của thị trường thơng qua các nhóm hoạt động trên mạng xã hội cụ
thể là Facebook. Từ đó, đưa ra những hành vi, thói quen sử dụng của đối tượng đang
hướng tới, tìm ra vấn đề cũng như nhu cầu của họ.
- Thiết kế UI/UX thông qua công cụ AdobeXD để nhằm đảm bảo được sự tương thích,
phù hợp với đối tượng đang nhắm tới. Đồng thời đạt được sự thống nhất trước khi bắt
đầu triển khai.
4. Kết quả mong đợi
4.1 Tính cơng nghệ
- Nắm được công nghệ mới về phát triển ứng dụng đa nền tảng như Flutter. Có thể nắm được các kỹ thuật liên quan.
4.2 Tính ứng dụng
- Ứng dụng đáp ứng được nhu cầu của thị trường.
- Có thể phát triển trong tương lai.
- Giao diện và trải nghiệm phù hợp với nhóm đối tượng đang hướng tới.
- Góp phần thúc đẩy nền văn hóa đọc ở Việt Nam.
Kế hoạch thực hiện:
Giai đoạn
Thời gian
Võ Văn Tài Triển
Hồng Cơng Minh
1. Khảo sát,
1/3/2021 - 7/3/2021
- Lựa chọn đề tài
- Khảo sát các
- Khảo sát ứng
ứng dụng
dụng tương tự
- Nghiên cứu
- Lựa chọn công
công nghệ ứng
nghệ và tìm hiểu,
dụng di động,
nghiên cứu sử
backend
nghiên cứu
dụng
2. Phân tích
8/3/2021 - 21/3/2021
ứng dụng
- Thiết kế ứng
- Phân tích, xác
dụng
định, đặc tả
dựa trên
nghiên cứu
từ
người dùng
chức năng
- Nghiên cứu công
nghệ, xây dựng
nền tảng hệ thống
(backend)
3. Cập nhật
22/3/2021 - 2/4/2021
thông tin sách
- Xây dựng giao
- (Crawl) Chọn
diện gợi ý sách,
lọc data từ các
hiển thị danh sách
kênh
sách
cung cấp sách
- Thiết kế API gợi
ý và cập nhật
thông tin sách
4. Review sách
3/4/2021 - 10/4/2021
- Xây dựng flow
- Thiết kế cơ sở
đánh giá sách
dữ liệu
- Thiết kế giao
- Xây dựng api
diện đánh giá
đánh giá sách
sách
5. Cá nhân hóa
11/4/2021 - 22/4/2021
- Thiết kế giao diện
- Nghiên cứu
profile của
trang cá nhân của
các thông tin
người dùng về
người dùng, thể
và mối
sách
hiện được tính
quan tâm của
cách và cá nhân
người đọc sách
của người
- Thiết kế API
dùng qua trang
lấy các thông tin
profile
cần thiết để hiển
thị
trang cá nhân
của người dùng
6. Tạo sự kiện
22/4/2021 - 12/5/2021
- Thiết kế giao
- Thiết kế cơ sở
quyên góp,
diện sự kiện về
dữ liệu
tặng sách
sách
- Xây dựng api
- Cập nhật các
tạo sự kiện
thông tin từ sự
kiện cho người
dùng
7. Gợi ý các
13/5/2021 – 30/5/2021
Thiết kế giao diện
- Module gợi ý
nhà bán lẻ
nhà cung cấp
sách
theo tiêu đề và
loại sách
8. Đóng gói
30/5/2021 – 15/6/2021
và triển khai
Đóng gói và
- Triển khai ứng
hồn thiện ứng
dụng lên server
dụng
9. Thực hiện
slide
15/6/2021 – 22/6/2021
Xây dựng nội dung
Xây dựng nội dung
Xác nhận của CBHD
TP. HCM, ngày….tháng
(Ký tên và ghi rõ họ tên)
…..năm….. Sinh viên
(Ký tên và ghi rõ họ tên)
MỤC LỤC
TÓM TẮT KHÓA LUẬN....................................................................................................1
CHƯƠNG 1: GIỚI THIỆU CHUNG...................................................................................2 1.1
Hiện trạng ...................................................................................................................2 1.1.1
Đặt vấn đề............................................................................................................2 1.1.2 Thực
hiện khảo sát thực tế...................................................................................3 1.2 Nhu cầu thực
tế...........................................................................................................5 1.3 Giải pháp hiện tại
(khi không thực hiện trao đổi sách) ..............................................5 1.4 Nhóm người
dùng.......................................................................................................6 1.5 Phân tích vấn
đề..........................................................................................................8 1.5.1 Vấn đề của giải
pháp hiện tại ..............................................................................8 1.5.2 Đề xuất các giải pháp
tiếp cận mới .....................................................................8 1.6 Nghiên
cứu .................................................................................................................9 1.6.1 Đối tượng
nghiên cứu..........................................................................................9 1.6.2 Phạm vi nghiên
cứu .............................................................................................9 1.6.3 Phương pháp nghiên
cứu...................................................................................10 CHƯƠNG 2: KIẾN THỨC NỀN
TẢNG...........................................................................10 2.1
Typescript .................................................................................................................10 2.1.1
Giới thiệu...........................................................................................................10 2.1.2 Lợi ích
của Typescript.......................................................................................11 2.2
Swagger ....................................................................................................................12
2.2.1 Giới thiệu...........................................................................................................12 2.2.2
Lợi ích của Swagger..........................................................................................13 2.3
Docker ......................................................................................................................15 2.3.1
Giới thiệu...........................................................................................................15 2.3.2 Lợi ích
của docker.............................................................................................16 2.4
MySql .......................................................................................................................17 2.4.1
Giới thiệu...........................................................................................................17 2.5
Adminer....................................................................................................................18 2.6
Flutter........................................................................................................................19 2.6.1
Giới thiệu...........................................................................................................19 2.6.2 Các tập
đoàn lớn đang sử dụng Flutter..............................................................20 2.6.3 Tổng quan về
Flutter .........................................................................................24 2.6.4 Lí do ứng dụng
Flutter vào đề tài ......................................................................29 2.7
NestJs........................................................................................................................30 2.7.1
Giới thiệu...........................................................................................................30 2.7.2 Lợi ích
của NestJs..............................................................................................32 2.7.3 Cấu trúc cơ
bản của NestJs................................................................................32 2.7.4 Các tính năng hay
của NestJs............................................................................33 2.7.5 Vì sao áp dụng NestJs vào
đề tài.......................................................................33 CHƯƠNG 3: XÂY DỰNG HỆ
THỐNG...........................................................................35 3.1 Xây dựng kiến trúc hệ
thống ....................................................................................35 3.1.1 Xác định yêu cầu hệ
thống ................................................................................35
3.1.2 Phân tích yêu cầu hệ thống................................................................................35
3.1.3 Phân tích thiết kế hệ thống ................................................................................38
3.1.4 Phân tích và thiết kế cơ sở dữ liệu.....................................................................48
3.1.5 Phân tích và thiết kế kiến trúc ứng dụng di động..............................................56
3.2 Thiết kế giao diện .....................................................................................................59
3.2.1 Thiết kế user flow..............................................................................................59
3.2.2 Thiết kế wireframe ............................................................................................64
3.2.3 Thiết kế giao diện hoàn chỉnh ...........................................................................86
CHƯƠNG 4: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN.................................................111 4.1
Kết quả đạt được.....................................................................................................111 4.1.1 Về
khía cạnh cơng nghệ ..................................................................................111 4.1.2 Về khía
cạnh thiết kế hướng người dùng ........................................................111 4.1.3 Về kỹ năng
mềm..............................................................................................112 4.2 Thuận
lợi.................................................................................................................112 4.3 Khó khăn,
chưa đạt được........................................................................................113 4.4 Hướng phát
triển cho sản phẩm..............................................................................113 CHƯƠNG 5: TÀI
LIỆU THAM KHẢO..........................................................................114 5.1 Số liệu tham khảo
...................................................................................................114 5.2 Tài liệu thiết
kế .......................................................................................................114 5.3 Tài liệu kỹ
thuật......................................................................................................114
DANH MỤC HÌNH VẼ
Hình 1.1 Số lượng sách mà các bạn tham gia khảo sát đọc .................................................4
Hình 1.2 Kết quả khảo sát phương tiện trao đổi sách ..........................................................4
Hình 1.3 Tỉ lệ số lượng các bạn đã tham gia trao đổi sách ..................................................5
Hình 2.1 Logo của TypeScript ...........................................................................................10
Hình 2.2 Logo của Swagger...............................................................................................12
Hình 2.3 Logo của Docker .................................................................................................15
Hình 2.4 Logo của Mysql...................................................................................................17
Hình 2.5 Logo của Adminer...............................................................................................18
Hình 2.6 Logo của Flutter ..................................................................................................19
Hình 2.7 Số liệu thống kê sự phát triển của Flutter............................................................20
Hình 2.8 Các tập đồn đang sử dụng Flutter......................................................................20
Hình 2.9 Ứng dụng Google Ads.........................................................................................21
Hình 2.10 Ứng dụng Ebay..................................................................................................21
Hình 2.11 Ứng dụng MyBMW ..........................................................................................22
Hình 2.12 Ứng dụng Xianiu ...............................................................................................23
Hình 2.13 Ứng dụng GrabMerchant...................................................................................23
Hình 2.14 Tổng quan Flutter ..............................................................................................24
Hình 2.15 JIT với AOT ......................................................................................................25
Hình 2.16 Kiến trúc Flutter ................................................................................................26
Hình 2.17 Flutter stateless..................................................................................................27
Hình 2.18 Flutter stateful....................................................................................................28
Hình 2.19 Kênh giao tiếp với hệ điều hành........................................................................28
Hình 2.20 Logo của Nestjs.................................................................................................30
Hình 2.21 Số liệu thơng kê sự phổ biến của Nestjs............................................................31
Hình 2.22 Các khách hàng của Nestjs................................................................................31
Hình 3.1 Sơ đồ use case tổng quát......................................................................................38
Hình 3.2 Sơ đồ use case đăng nhập ....................................................................................39
Hình 3.3 Sơ đồ use case đăng ký........................................................................................40
Hình 3.4 Sơ đồ use case xem danh sách sách gợi ý ...........................................................41
Hình 3.5 Sơ đồ use case tìm kiếm sách ..............................................................................41
Hình 3.6 Sơ đồ use case đánh giá sách...............................................................................42
Hình 3.7 Sơ đồ use case xem chi tiết sách..........................................................................43
Hình 3.8 Sơ đồ use case xem chi tiết tin trao đổi...............................................................43
Hình 3.9 Sơ đồ use case thêm xóa sửa bài đăng.................................................................44
Hình 3.10 Sơ đồ use case liên hệ........................................................................................45
Hình 3.11 Sơ đồ lớp............................................................................................................46
Hình 3.12 Thiết kế bloc ......................................................................................................56
Hình 3.13 Userflow đăng ký/đăng nhập.............................................................................59
Hình 3.14 Userflow tìm kiếm sách.....................................................................................59
Hình 3.15 Userflow xem danh sách sách gợi ý ..................................................................60
Hình 3.16 Userflow xem tin trao đổi sách..........................................................................60
Hình 3.17 Userflow thêm sửa xóa trao đổi.........................................................................61
Hình 3.18 Userflow trao đổi sách.......................................................................................62
Hình 3.19 Userflow đánh giá sách .....................................................................................63
Hình 3.20 Wireframe cho màn hình giới thiệu...................................................................64
Hình 3.21 Wireframe cho màn hình đăng nhập .................................................................65
Hình 3.22 Wireframe cho màn hình đăng ký .....................................................................66
Hình 3.23 Wireframe cho màn hình cập nhật thơng tin cơ bản .........................................67
Hình 3.24 Wireframe cho màn hình cập nhật thơng tin liên hệ .........................................68
Hình 3.25 Wireframe cho màn hình cập nhật chủ đề u thích .........................................69
Hình 3.26 Wireframe cho màn hình trang chủ...................................................................70
Hình 3.27 Wireframe cho xem danh sách các sách theo chủ đề ........................................71
Hình 3.28 Wireframe để xem miêu tả sách ........................................................................72
Hình 3.29 Wireframe để xem các đánh giá của sách .........................................................73
Hình 3.30 Wireframe để xem các tin trao đổi của cuốn sách này......................................74
Hình 3.31 Wireframe để đánh giá sách ..............................................................................75
Hình 3.32 Wireframe để xem chi tiết đánh giá sách ..........................................................76
Hình 3.33 Wireframe để chi tiết người dùng......................................................................77
Hình 3.34 Wireframe để xem các đánh giá của người dùng ..............................................78
Hình 3.35 Wireframe để xem các tin trao đổi của người dùng ..........................................79
Hình 3.36 Wireframe để nhập tiêu đề và mơ tả bài đăng...................................................80
Hình 3.37 Wireframe để chụp ảnh cho tin trao đổi sách....................................................81
Hình 3.38 Wireframe để nhập thơng tin cuốn sách............................................................82
Hình 3.39 Wireframe để xem chi tiết tin trao đổi sách ......................................................83
Hình 3.40 Wireframe chọn nhà cung cấp khi xem chi tiết tin trao đổi ..............................84
Hình 3.41 Wireframe chọn liên hệ khi xem chi tiết tin trao đổi.........................................85
Hình 3.42 Màn hình giới thiệu 1 ........................................................................................86
Hình 3.43 Màn hình giới thiệu 2 ........................................................................................87
Hình 3.44 Màn hình giới thiệu 3 ........................................................................................88
Hình 3.45 Màn hình đăng nhập ..........................................................................................89
Hình 3.46 Màn hình đăng ký..............................................................................................90
Hình 3.47 Màn hình cập nhật thơng tin cá nhân ................................................................91
Hình 3.48 Màn hình cập nhật thơng tin liên hệ ..................................................................92
Hình 3.49 Màn hình cập nhật chủ đề ưu thích ...................................................................93
Hình 3.50 Màn hình trang chủ............................................................................................94
Hình 3.51 Màn hình xem danh sách các sách theo chủ đề.................................................95
Hình 3.52 Màn hình xem miêu tả của sách ........................................................................96
Hình 3.53 Màn hình xem danh sách trao đổi của sách.......................................................97
Hình 3.54 Màn hình xem danh sách đánh giá của sách .....................................................98
Hình 3.55 Màn hình tạo đánh giá cho sách ........................................................................99
Hình 3.56 Màn hình xem chi tiết đánh giá sách...............................................................100
Hình 3.57 Màn hình xem thơng tin người dùng...............................................................101
Hình 3.58 Màn hình xem các đánh giá của người dùng...................................................102
Hình 3.59 Màn hình xem các tin trao đổi của người dùng...............................................103
Hình 3.60 Màn hình nhập tiêu đề và mơ tả cho tin trao đổi.............................................104
Hình 3.61 Màn hình thêm ảnh cho tin trao đổi ................................................................105
Hình 3.62 Màn hình thêm vị trí của nơi trao đổi..............................................................106
Hình 3.63 Màn hình chọn sách muốn trao đổi .................................................................107
Hình 3.64 Màn hình xem chi tiết tin trao đổi ...................................................................108
Hình 3.65 Màn hình chọn nhà cung cấp khi xem chi tiết tin trao đổi..............................109
Hình 3.66 Màn hình chọn liên hệ khi xem chi tiết tin trao đổi ........................................110
DANH MỤC BẢNG
Bảng 1.1 Đối tượng nghiên cứu 1 ........................................................................................6
Bảng 1.2 Đối tượng nghiên cứu ...........................................................................................7
Bảng 1.3 Đối tượng nghiên cứu 3 ........................................................................................7
Bảng 1.4 Đề xuất giải pháp ..................................................................................................9
Bảng 3.1 Mô tả sơ đồ lớp ...................................................................................................47
Bảng 3.2 Phân tích và thiết kế cơ sở dữ liệu ......................................................................49
Bảng 3.3 Bảng USERS.......................................................................................................50
Bảng 3.4 Bảng BOOKS......................................................................................................51
Bảng 3.5 Bảng BOOKS_AUTHORS.................................................................................51
Bảng 3.6 Bảng AUTHORS ................................................................................................51
Bảng 3.7 Bảng BOOKS_CATEGORIES...........................................................................52
Bảng 3.8 Bảng BOOKS_IMAGES ....................................................................................52
Bảng 3.9 Bảng BOOKS_PUBLISHERS............................................................................52
Bảng 3.10 Bảng CATEGORIES ........................................................................................53
Bảng 3.11 Bảng IMAGES..................................................................................................53
Bảng 3.12 Bảng PUBLISHERS .........................................................................................54
Bảng 3.13 Bảng POSTS_IMAGES....................................................................................54
Bảng 3.14 Bảng POSTS .....................................................................................................55
Bảng 3.15 Bảng RATING_BOOK.....................................................................................55
Bảng 3.16 Bảng REVIEWS ...............................................................................................56
Bảng 3.17 Bảng USERS_CATEGORIES..........................................................................56
Bảng 3.18 Phân tích các thành phần của kiến trúc ứng dụng.............................................58
DANH MỤC TỪ VIẾT TẮT
Từ thường dùng
Từ đầy đủ
Ý nghĩa
ĐHQG TP.HCM
Đại học Quốc gia
Thành Phố Hồ Chi
Minh
Dùng để diễn tả khối
trường Đại học Quốc gia
tại Thành Phố Hồ Chi
Minh.
ISBN
International
Standard Book
Number
Mã số tiêu chuẩn quốc tế
có tính chất thương mại
duy nhất để xác định một
quyển sách.
API
Application
Programming Interface
Các phương thức, giao
thức kết nối với các thư
viện và ứng dụng khác
UI/UX
User Interface/User
Experience
Giao diện người
dùng/Trải nghiệm người
dùng
CI/CD
Continuous
Integration/
Continuous Delivery
Là q trình tích hợp
(integration) thường
xuyên, nhanh chóng hơn
khi code cũng như thường
xuyên cập nhật phiên bản
mới
TÓM TẮT KHÓA LUẬN
Luận văn tốt nghiệp với đề tài “Xây dựng ứng dụng trao đổi sách với NestJs
framework – Build books exchange application with NestJs framework” được
thực hiện từ ngày 08/03/2021 đến ngày 26/06/2021. Ý tưởng đề tài bắt nguồn từ
một bạn sinh viên đọc sách mong muốn giải quyết được những cuốn sách cũ của
mình cũng như là tiết kiệm chi phí nhất có thể khi tiếp cận những cuốn sách mới.
Bên cạnh đó, gián tiếp thúc đẩy nền văn hóa đọc sách tại Việt Nam. Thông qua
việc nghiên cứu các công nghệ mới, các phương pháp cũng như đưa ra được giải
pháp để thay thế cho các giải pháp hiện tại, nhóm em đã xây dựng được nền tảng
với mong muốn mang lại những giá trị tốt đẹp cho các bạn sinh viên thuộc khối
trường ĐHQG TP.HCM
Luận văn tốt nghiệp bao gồm:
❖ Chương 1: Giới thiệu chung – Trình bày các lý dọn chọn đề tài, đặt vấn đề,
phân tích vấn đề. Đồng thời đưa ra đối tượng, phương pháp và phạm vi thực hiện
đề tài.
❖ Chương 2: Kiến thức nền tảng – Trình bày các kiến thức được sử dụng trong
xuyên suốt quá trình thực hiện đề tài
❖ Chương 3: Xây dựng hệ thống – Trình bày các cách thức, phương pháp cũng
như các bước để xây dựng hệ thống
❖ Chương 4: Kết luận và hướng phát triển – Trình bày các kết quả đạt được,
chưa đạt được cũng như thuận lợi và khó khăn khi thực hiện đề tài ❖ Chương 5:
Tài liệu tham khảo – Trình bày các nguồn tài liệu mà nhóm đã tìm hiểu và nghiên
cứu với mục đích bổ túc, xây dựng đề tài.
1
CHƯƠNG 1: GIỚI THIỆU CHUNG
1.1 Hiện trạng
1.1.1 Đặt vấn đề
- Nhu cầu đọc sách, nghiên cứu và tiếp cận kiến thức mới của sinh viên nói
chung và độc giả nói riêng là có. Tuy nhiên, với giá thành của một cuốn
sách chuyên ngành hoặc một cuốn sách không được sản xuất đại trà sẽ rất
cao nên gây cản trở cho việc tiếp cận kiến thức mới của họ, dẫn tới việc
nhóm người này sẽ tiếp cận với thị trường giá rẻ.
- Và nhu cầu đọc sách và nghiên cứu tìm hiểu cao nhưng với chi phí rẻ thì
thường xảy ra một số trường hợp mua phải sách giả, sách có chất lượng
khơng ổn định…
- Đây cũng chính là nguyên nhân dẫn tới các hoạt động trao đổi sách bằng
nhiều hình thức được diễn ra.
- Các hình thức của hoạt động trao đổi sách trong thực tế:
❖ Ngày hội trao đổi sách diễn ra tại các công viên.
❖ Các buổi offline nhỏ lẻ tại những quán café sách để những người yêu
sách có cơ hội gặp gỡ.
- Tuy nhiên, những cách truyền thống này gặp rất nhiều khó khăn trong hoạt
động trao đổi:
➢ Sự cố định về địa điểm và thời gian dẫn tới sự hạn chế về người tham gia,
hoạt động này không thường xuyên, mặc dù nhu cầu trao đổi là thường
xuyên và liên tục.
➢ Tốn kém chi phí để tổ chức những ngày hội hay buổi offline để mọi
người trao đổi sách.
2
1.1.2 Thực hiện khảo sát thực tế
- Kết quả đạt được: 77 phản hồi đến từ các bạn sinh viên cũng như độc giả
ở khu vực ĐHQG – TP.HCM.
- Theo khảo sát thực tế mà nhóm đã thực hiện thì có một năm trung bình số
lượng sách mà các bạn đọc được trong năm giao động từ 5 – 10 cuốn/năm
chiếm lần lượt 57.1% và 16.9%. Và trên tổng 77 phản hồi thì tỉ lệ các bạn
sinh viên/độc giả ở khu vực ĐHQG – TP.HCM đã thực hiện việc trao đổi
sách là 53.3%. Với tỉ lệ này, hình thức các bạn chọn dùng để thực hiện
việc trao đổi sách là gặp mặt trực tiếp hoặc các trang mạng xã hội, cụ thể
hơn là Facebook.
- Khi được khảo sát lí do “Tại sao bạn lại thực hiện trao đổi sách?”, câu trả
lời mà nhóm nhận được nhiều nhất vì với cách này các bạn có thể chia sẻ
kiến thức đến với mọi người, lan truyền tinh thần đọc sách, đồng thời bản
thân họ cũng nhận lại được một số giá trị về tinh thần cũng như một cuốn
sách mới.
- Dựa vào những số liệu trên, nhóm đưa ra kết luận như sau: ➢ Việc trao đổi
sách vẫn còn là việc làm chưa được phổ biến. ➢ Tuy nhiên, các bạn giới trẻ
sau đã hình thành dần dần hành động tốt. ➢ Việc nhóm phát triển ra một nền
tảng để có thể kết nối cũng như lan truyền tinh thần này là một việc hoàn
toàn khả thi.
3
Hình 1.1 Số lượng sách mà các bạn tham gia khảo sát đọc
Hình 1.2 Kết quả khảo sát phương tiện trao đổi sách
4
Hình 1.3 Tỉ lệ số lượng các bạn đã tham gia trao đổi sách
1.2 Nhu cầu thực tế
- Bên cạnh việc thực hiện khảo sát cá nhân, nhóm cịn thực hiện phân tích dựa
trên những bài đăng trên cộng đồng facebook. Và đây là những nhu cầu mà
nhóm đã phân tích được qua những bài đăng trên mạng xã hội facebook
❖ Tăng nguồn kiến thức từ sách, đọc nhiều đầu sách với chi phí phải
chăng.
❖ Tìm kiếm sưu tầm/chia sẻ các loại sách cổ khơng cịn sản xuất.
❖ Quyên góp/tặng sách từ thiện hoặc giao lưu.
❖ Chia sẻ quan điểm cá nhân của bản thân về các đầu sách từng đọc.
❖ Tìm kiếm bạn bè có cùng sở thích về các loại sách.
❖ Cập nhật thơng tin về các ngày hội sách ở gần khu vực sinh sống.
1.3 Giải pháp hiện tại (khi không thực hiện trao đổi sách)
- Những giải pháp hiện tại mà sinh viên/độc giả/người tiêu dùng thực hiện: ❖
Mua sách cũ tại các cửa hàng, sạp bán sách cũ/mới/giả lề đường.
5
❖ Đăng bài trao đổi/tặng sách trên các nhóm cộng đồng, hội nhóm cụ thể
là facebook.
❖ Đăng bài mua/bán sách trên các nhóm cộng đồng facebook.
❖ Mua sách trên các kênh thông tin khơng chính thống, khơng phải cơng
ty phát hành.
❖ Tìm đọc sách lậu trực tuyến/pdf.
❖ Sử dụng các ứng dụng thể th sách.
1.4 Nhóm người dùng
- Dựa vào phân tích những nhóm người thơng qua những bài đăng trên mạng
xã hội cụ thể là Facebook, nhóm em đã đưa ra được ba dạng người dùng
chính sẽ là người dùng cuối của ứng dụng:
● Độc
thân.
- Sống ở Tp.HCM.
● Sinh
viên.
- Tích cực tham gia vào các event, hội
sách. - Đọc sách để xây dựng giá trị bản
thân.
- Di chuyển bằng xe công cộng.
- Hướng ngoại, tham gia nhiều hoạt động cộng đồng
trên mạng xã hội.
- Cần tìm thể loại sách phù
- Gợi ý sách.
hợp với bản thân.
- Trao đổi.
- Giảm thiểu chi phí cho
- Đánh giá sách.
việc mua sách.
Bảng 1.1 Đối tượng nghiên cứu 1
6
● Sống
● Đã
1 mình.
đi làm
- Sống ở Tp.HCM.
- Thích thể hiện bản thân qua nội dung, quotes hay
trong sách bằng các tấm hình.
- Thích đọc review sách.
- Thích viết về các trải nghiệm.
- Theo đuổi lối sống tối giản, cân bằng thời gian
công việc và bản thân.