Tải bản đầy đủ (.docx) (74 trang)

KHÓA LUẬN tốt NGHIỆP xây DỰNG ỨNG DỤNG CHIA sẻ PHƯƠNG PHÁP CHĂM sóc cây CẢNH

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 (895.95 KB, 74 trang )

ĐẠ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

MAI ĐĂNG KHOA

KHĨA LUẬN TỐT NGHIỆP

XÂY DỰNG ỨNG DỤNG CHIA SẺ PHƯƠNG PHÁP
CHĂM SÓC CÂY CẢNH
Build an application to share the method of taking care of
ornamental plants

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

MAI ĐĂNG KHOA – 15520371

KHÓA LUẬN TỐT NGHIỆP

XÂY DỰNG ỨNG DỤNG CHIA SẺ PHƯƠNG PHÁP
CHĂM SÓC CÂY CẢNH
Build an application to share the method of taking care of


ornamental plants

KỸ SƯ NGÀNH KỸ THUẬT PHẦN MỀM

GIẢNG VIÊN HƯỚNG DẪN
TS. NGUYỄN LƯU THÙY NGÂN
ThS. LÊ THANH TRỌNG

TP. HỒ CHÍ MINH, 2021
THƠNG TIN HỘI ĐỒNG CHẤM KHÓA LUẬN TỐT NGHIỆP


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.
ĐHQG TP. HỒ CHÍ MINH CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM
TRƯỜNG ĐẠI HỌC Độc Lập – Tự Do – Hạnh Phúc CÔNG NGHỆ THÔNG TIN TP.
HCM, ngày….tháng…..năm 2021

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 CHIA SẺ PHƯƠNG PHÁP CHĂM SÓC CÂY
CẢNH

Nhóm SV thực hiện: Cán bộ hướng dẫn: Mai Đăng Khoa 15520371 TS.

Nguyễn Lưu Thùy Ngân ThS. Lê Thanh Trọng

Đánh giá Khóa luận
1. Về cuốn báo cáo :
Số trang 88 Số chương 5 Số bảng số liệu 22 Số hình vẽ 54 Số tài liệu tham
khảo 18 Sản phẩm 1 Một số nhận xét về hình thức cuốn báo cáo:
…………………………………………………………………………………………
…………………………………………………………………………………………
………………………………………………………………………………………… 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: Khóa luận đạt/khơng đạt yêu cầu của một khóa luận tốt nghiệp kỹ
sư/ cử nhân, xếp loại Giỏi/ Khá/ Trung bình
Điểm từng sinh viên:
Mai Đăng Khoa:…………/10
Người nhận xét
(Ký tên và ghi rõ họ tên)

ĐHQG TP. HỒ CHÍ MINH CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM
TRƯỜNG ĐẠI HỌC Độc Lập – Tự Do – Hạnh Phúc CÔNG NGHỆ THÔNG TIN TP.
HCM, ngày….tháng…..năm 2021

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 CHIA SẺ PHƯƠNG PHÁP CHĂM SÓC CÂY
CẢNH


Nhóm SV thực hiện: Cán bộ phản biện: Mai Đăng Khoa 15520371
ThS. Phan Trung Hiếu

Đánh giá Khóa luận
1. Về cuốn báo cáo :
Số trang 88 Số chương 4 Số bảng số liệu 22 Số hình vẽ 54 Số tài liệu tham
khảo 18 Sản phẩm 1 Một số nhận xét về hình thức cuốn báo cáo:
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
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: Khóa luận đạt/khơng đạt u cầu của một khóa luận tốt nghiệp kỹ
sư/ cử nhân, xếp loại Giỏi/ Khá/ Trung bình
Điểm từng sinh viên:
Mai Đăng Khoa:…………/10
Người nhận xét
(Ký tên và ghi rõ họ tên)


LỜI CẢM ƠN
Khoá luận tốt nghiệp với đề tài “Xây dựng ứng dụng chia sẻ phương pháp chăm sóc
cây cảnh” là kết quả sau cùng của hơn 4 năm rèn luyện và học tập tại trường Đại học
Công nghệ Thông tin. Thể hiện khả năng của bản thân trong việc áp dụng kiến thức
chun mơn vào giải quyết bài tốn thực tế.
Trong q trình thực hiện khố luận, em đã nhận được sự hướng dẫn tận tình từ q
thầy cơ, sự giúp đỡ và hỗ trợ từ gia đình cũng như bạn bè trong và ngồi trường, các
anh tại cơng ty. Em xin được gửi lời cảm ơn chân thành đến: Các thầy cô trường Đại
học Công nghệ Thông Tin nói chung và các thầy cơ trong Khoa Cơng nghệ Phần mềm
nói riêng đã tận tình truyền đạt kiến thức tới em trong những năm học tập tại trường.
Đó là tài sản q báu đã giúp em hồn thành khố luận và cũng là hành trang cho con
đường sự nghiệp của bản thân sau này.
Em xin được gửi lời cảm ơn sâu sắc tới TS Nguyễn Lưu Thùy Ngân, ThS. Lê Thanh
Trọng, những người đã trực tiếp hướng dẫn, chỉ bảo, giúp đỡ em trong suốt q trình
thực hiện khóa luận, đưa ra những lời khuyên bổ ích, động viên khích lệ tinh thần em
để khố luận được hồn thành đúng tiến độ và đáp ứng các yêu cầu đề ra ban đầu.
Cảm ơn giảng viên phản biện và các thầy cô trong hội đồng chấm luận văn với những

lời khun, góp ý q báu và bổ ích. Từ đó bài luận văn của em được trở nên hoàn
thiện hơn. Lời cuối cùng, em xin dành lời cảm ơn gửi tới gia đình, bạn bè đã ln bên
cạnh để động viên và đóng góp ý kiến trong q trình hồn thành khố luận này.
Thành phố Hồ Chí Minh, tháng 06 năm 2021
Sinh viên
Mai Đăng Khoa
ĐHQG TP. HỒ CHÍ MINH CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
TRƯỜNG ĐẠI HỌC Độc Lập – Tự Do – Hạnh Phúc CÔNG NGHỆ THÔNG TIN

ĐỀ CƯƠNG CHI TIẾT
TÊN ĐỀ TÀI: Xây dựng ứng dụng chia sẻ phương pháp chăm sóc cây cảnh
Cán bộ hướng dẫn: TS. Nguyễn Lưu Thùy Ngân, ThS. Lê Thanh Trọng
Thời gian thực hiện: Từ ngày 01/03/2021 đến ngày 30/06/2021


Sinh viên thực hiện:
1. Mai Đăng Khoa - 15520371
Nội dung đề tài:(Mô tả chi tiết mục tiêu, phạm vi, đối tượng, phương pháp thực
hiện, kết quả mong đợi của đề tài)
2. Lý do chọn đề tài
Công nghệ đã và đang thay đổi thế giới, trong số đó phải kể đến một phần
ảnh hưởng không nhỏ tới đời sống xã hội của chính chúng ta. Việc xuất hiện các
ứng dụng hỗ trợ con người chia sẻ - kết nối đã không còn quá lạ lẫm. Ứng dụng
chia sẻ phương pháp chăm sóc cây cảnh được nhóm tác giả lựa chọn với mong
muốn tạo ra 1 sản phẩm giúp cho những người đam mê cây cảnh được có 1 khơng
gian sinh hoạt ảo chung, 1 mạng xã hội thu nhỏ. 3. Phạm vi
Phạm vi của đề tài là các tính năng chính xoay quanh việc chia sẻ phương
pháp chăm sóc cây cảnh. Đây sẽ là ứng dụng nền tảng ứng dụng di động.
Các tính năng chính



News feed




Profile user



Rating bài viết



Upload hình ảnh



Follow user



Search



Trao đổi cây cảnh




Qui trình chăm sóc cây cảnh (theo loại cây, …)

3. Đối tượng
Đối tượng sử dụng là tất cả những người yêu cây cảnh có mong muốn tham
gia 1 cộng đồng chung.
4. Mục tiêu


Hiểu rõ qui trình làm việc để tạo ra 1 ứng dụng cơng nghệ thơng tin. •

Làm quen với việc vừa học công nghệ vừa triển khai ứng dụng để tạo ra
một ứng dụng sử dụng công nghệ chưa từng làm qua trước đó, ở đây là
Flutter. Đề tài là một trải nghiệm giúp nâng cao khả năng tự học nhanh
chóng, đáp ứng được như cầu cơng nghệ thơng tin cho các doanh nghiệp
sau này.


Tạo ra 1 ứng dụng sau cùng có thể sử dụng được và đáp ứng cho nhu cầu
đề ra.



Thực hiện được những tính năng đã đề ra.

5. Phương pháp thực hiện
Khảo sát thị trường bên ngoài, bám sát yêu cầu đề tài, trao đổi hằng tuần với
giảng viên hướng dẫn. Dự định đi theo các giai đoạn sau:


Khảo sát, nghiên cứu đề tài và cơng nghệ




Phân tích thiết kế hệ thống, thiết kế giao diện, API, database •

Xây dựng ứng dụng


Kiểm thử, sửa lỗi và deploy ứng dụng



Hồn thiện báo cáo và chuẩn bị cho buổi phản biện và bảo vệ


Sử dụng Github + Smartgit để quản lý code, Google Sheets để quản lý tài
liệu và công việc.
6. Những công nghệ sử dụng
App: Flutter
Backend: Laravel
Database: MySQL, Cloud Firestore
7. Kết quả mong muốn


Ứng dụng có tính thực tiễn



Có thể mở rộng phát triển thêm các tính năng khác trong tương lai •


Hồn thành tốt các tính năng đề ra

Kế hoạch thực hiện:(Mô tả kế hoạch làm việc và phân công công việc cho từng
sinh viên tham gia)
Giai đoạn

Thời gian

Mô tả

Thành viên: Đăng Khoa

1. Khảo sát,

1/3/2021

- Lựa chọn đề tài

- Khảo sát các ứng

nghiên cứu

– 7/3/2021

dụng

- Khảo sát ứng
dụng tương tự

- Nghiên cứu cơng


- Lựa chọn cơng
nghệ và tìm hiểu,
nghiên

cứu

nghệ app di động,
backend

sử

dụng
2. Phân tích

8/3/2021

- Phân tích, xác

- Phân tích, xác

thiết kế hệ



định, đặc

định, đặc

thống và


21/3/2021

tả chức năng

tả chức năng


chuẩn bị xây

- Vẽ các lưu đồ,

- Vẽ các lưu đồ,

dựng ứng dụng

các luồng xử lý

các luồng xử lý

- Thiết kế

- Thiết kế CSDL,

CSDL, API

API - Thiết kế UI

- Thiết kế UI


- Nghiên cứu công

- Nghiên cứu

nghệ, xây dựng base

công nghệ,

source cho app di

xây dựng base

động + backend api

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

22/3/2021
- 2/5/2021

- Xây dựng ứng

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

dụng ở nền tảng

ở nền tảng app và

app và backend


backend

- Liên tục sử

- Liên tục sử dụng,

dụng, kiểm thử

kiểm thử và sửa lỗi

và sửa lỗi
4. Kiểm
thử, sửa lỗi
và deploy
ứng dụng

28/5/2021

- Thực hiện

- Thực hiện kiểm

-

kiểm thử các

thử các

luồng chức năng


luồng chức năng

- Tiến hành sửa

- Tiến hành sửa các

các lỗi

lỗi được tìm ra

được tìm ra

- Thực hiện kiểm

- Thực hiện kiểm

thử trên mơi trường

thử trên mơi

production

10/6/2021

trường production

- Hồn thiện
ứng dụng


- Hồn thiện ứng dụng


5. Hoàn

11/6/2021

thiện báo

- 30/6/2021

cáo và

- Hoàn thiện báo

- Chuẩn bị slide,

cáo, chuẩn bị

nội dung demo

slide, nội dung

- Chỉnh sửa báo cáo

demo

chuẩn bị
phản biện
và bảo vệ


- Chuẩn bị danh
sách các câu hỏi
cho phản biện và

- Chuẩn bị danh
sách các câu hỏi
phản biện và bảo vệ

bảo vệ
- Tiếp thu và sửa
chửa báo cáo cũng
như sản phẩm

Xác nhận của CBHD

TP. HCM, ngày 07 tháng 03 năm
2021

(Ký tên và ghi rõ họ tên)

Sinh viên
(Ký tên và ghi rõ họ tên)
TS. Nguyễn Lưu Thùy Ngân
Mai Đăng Khoa

ThS. Lê Thanh Trọng

MỤC LỤC
ĐỀ CƯƠNG CHI TIẾT ..............................................................................................9

Chương 1. MỞ ĐẦU.................................................................................................21
1.1. Giới thiệu đề tài ...........................................................................................21 1.2.
Lý do chọn đề tài .........................................................................................22 1.3. Mục
tiêu.......................................................................................................22 1.4. Phạm
vi ........................................................................................................23 1.5. Phương


pháp thực hiện................................................................................24 1.6. Ý nghĩa thực
tiễn .........................................................................................24 1.7. Kết quả dự
kiến............................................................................................24 1.8. Hiện trạng bài
toán ......................................................................................25 1.8.1. Các ứng dụng liên
quan.....................................................................26 1.8.1.1. Ứng dụng
GardenTags...................................................................26 1.8.1.2. Ứng dụng My
Jungle .....................................................................27 1.8.2. Đánh giá hiện trạng và
hướng giải quyết ..........................................28 1.8.2.1. Đánh giá hiện
trạng........................................................................28 1.8.2.2. Hướng giải
quyết ...........................................................................28 Chương 2. KIẾN THỨC NỀN
TẢNG ...................................................................29 2.1. Giao thức xác thực và thuật
toán .................................................................29 2.1.1. Giao thức xác thực OAuth
2.0...........................................................29 2.1.2. Thuật toán
Bcrypt..............................................................................31 2.2. Công nghệ sử
dụng ......................................................................................32 2.2.1. Laravel
6............................................................................................32 2.2.2. Laravel
Passport ................................................................................33
2.2.3. Bootstrap 4 ........................................................................................34 2.2.4.
AWS – Amazon RDS........................................................................36 2.2.5. AWS
– S3..........................................................................................37 2.2.6. AWS –
Elastic
Flutter


Beanstalk

..................................................................38

................................................................................................39

2.2.7.
2.2.8.

Firebase - Cloud Firestore .................................................................39 2.2.9.
MySQL..............................................................................................40
Chương 3. XÂY DỰNG ỨNG DỤNG CHIA SẺ PHƯƠNG PHÁP CHĂM SÓC CÂY
CẢNH..............................................................................................................42
3.1. Phân tích yêu cầu hệ thống..........................................................................42
3.1.1. Phân tích yêu cầu chức năng .............................................................42 3.1.1.1.
Yêu cầu lưu trữ ..............................................................................42 3.1.1.2. Yêu cầu


tính năng ..........................................................................42 3.1.2. Phân tích yêu cầu
phi chức năng .......................................................43 3.1.3. Phân tích u cầu người
dùng ...........................................................43 3.1.3.1. Mơ hình use case tồn hệ
thống.....................................................43 3.1.3.2. Danh sách
actor..............................................................................45 3.1.3.3. Danh sách các Use
case .................................................................45 3.1.3.4. Mô tả một số Use
case ...................................................................51 3.2. Phân tích thiết kế hệ
thống ..........................................................................53 3.2.1. Thiết kế xử lý ứng
dụng di động .......................................................53 3.2.1.1. Sơ đồ tuần tự thao tác
đăng ký ......................................................54 3.2.1.2. Sơ đồ tuần tự
newsfeed..................................................................55 3.2.1.3. Sơ đồ tuần tự
chat ..........................................................................57

3.2.2. Thiết kế xử lý ứng dụng web admin..................................................58
3.2.2.1. Sơ đồ tuần tự thao tác admin quản lí chi tiết chỉnh sửa cây cảnh của
người dùng..............................................................................................58
3.2.3. Thiết kế cơ sở dữ liệu ........................................................................60
3.2.3.1. Sơ đồ cơ sở dữ liệu ........................................................................60
3.2.3.2. Mô tả các bảng dữ liệu...................................................................60
3.2.4. Thiết kế kiến trúc hệ thống................................................................73
3.2.4.1. Kiến trúc tổng thể ..........................................................................73
3.2.4.2. Kiến trúc ứng dụng di động ...........................................................74
3.2.4.3. Kiến trúc ứng dụng web ................................................................75
3.2.5. Thiết kế giao diện ..............................................................................76
3.2.5.1. Danh sách màn hình.......................................................................76
3.2.5.1. Giao diện một số màn hình của ứng dụng di động.......................79
3.2.5.2. Giao diện một số màn hình của ứng dụng web .............................83
3.3. Triển khai hệ thống......................................................................................84
3.3.1. Máy chủ.............................................................................................84 3.3.2.
Ứng dụng di động..............................................................................85


Chương 4. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN............................................86 4.1.
Kết quả đạt được..........................................................................................86 4.2.
Thuận lợi và khó khăn .................................................................................86
4.2.1. Thuận lợi............................................................................................86 4.2.2.
Khó khăn ...........................................................................................87 4.3. Hướng
phát triển..........................................................................................87
DANH MỤC HÌNH
Hình 1.1. Một video về cây cảnh trên youtube với 11 ngàn lượt xem......................26
Hình 1.2. Logo ứng dụng GardenTags......................................................................26
Hình 1.3. Logo ứng dụng My Jungle ........................................................................27
Hình 2.1. Luồng xác thực cơ bản của OAuth 2.0......................................................30

Hình 2.2. Chuỗi sau khi được Bcrypt mã hóa...........................................................31
Hình 2.3. Logo Laravel .............................................................................................32
Hình 2.4. Mơ hình vịng đời của 1 request trên ứng dụng Laravel...........................32
Hình 2.5. Passport cấp access token cho client sau khi xác thực thông tin đăng nhập
bằng

password...........................................................................................................33

Hình 2.6. Middleware auth:api bảo vệ các route bên trong ......................................34
Hình 2.7. Link đường dẫn thư viện online của Bootstrap vào trang web đang phát
triển............................................................................................................................35
Hình 2.8. Sử dụng bootstrap bằng cách gọi class trong các thẻ ta muốn chỉnh sửa giao
diện ....................................................................................................................35 Hình
2.9. Luồng hoạt động của Elastic Beanstalk ....................................................39 Hình
3.1. Mơ hình use case 1 cho người dùng..........................................................43 Hình
3.2. Mơ hình use case 2 cho người dùng..........................................................44 Hình
3.3. Mơ hình use case admin............................................................................44 Hình
3.4. Sơ đồ tuần tự thao tác đăng ký..................................................................54 Hình
3.5. Sơ đồ tuần tự newsfeed .............................................................................55 Hình
3.6. Sơ đồ tuần tự chat......................................................................................57 Hình
3.7. Sơ đồ tuần tự thao tác admin quản lí chi tiết chỉnh sửa cây cảnh của người
dùng...........................................................................................................................58
Hình 3.8. Sơ đồ cơ sở dữ liệu....................................................................................60
Hình 3.9. Kiến trúc tổng thể tồn hệ thống...............................................................73
Hình 3.10. Kiến trúc ứng dụng di động ....................................................................74
Hình 3.11. Kiến trúc ứng dụng web..........................................................................75


Hình 3.12. Màn hình viết bài ....................................................................................79
Hình 3.13. Màn hình newsfeed .................................................................................79

Hình 3.14. Màn hình chi tiết bài viết ........................................................................79
Hình 3.15. Màn hình phần bình luận ........................................................................79
Hình 3.16. Màn hình chọn cây để trao đổi................................................................80
Hình 3.17. Màn hình cây muốn trao đổi với bài viết ................................................80
Hình 3.18. Màn hình đăng cây cảnh để trao đổi .......................................................80
Hình 3.19. Màn hình chi tiết cây cảnh muốn trao đổi...............................................80
Hình 3.20. Màn hình danh sách thơng tin cây cảnh..................................................81
Hình 3.21. Màn hình chi tiết thơng tin cây cảnh.......................................................81
Hình 3.22. Màn hình đóng góp chỉnh sửa thơng tin cây cảnh .................................81
Hình 3.23. Màn hình đóng góp thơng tin cây cảnh mới ..........................................81
Hình 3.24. Màn hình tường cá nhân.........................................................................82
Hình 3.25. Màn hình chỉnh sửa thơng tin cá nhân ...................................................82
Hình 3.26. Màn hình danh sách chat.......................................................................82
Hình 3.27. Màn hình chat........................................................................................82
Hình 3.28. Màn hình danh sách thơng tin cây cảnh của quản trị viên ......................83
Hình 3.29. Màn hình chi tiết đóng góp chỉnh sửa của người dùng...........................83
Hình 3.30. Màn hình console chính của Elastic Beanstalk khi deploy ứng dụng web
thành cơng .................................................................................................................84
Hình 3.31. Sử dụng cơng cụ Postman để kiểm tra gọi api lên server .......................85
DANH MỤC BẢNG
Bảng 4.1. Danh sách actor.........................................................................................45
Bảng 4.2. Bảng danh sách các use case ....................................................................51
Bảng 4.3. Bảng dữ liệu user......................................................................................61
Bảng 4.4. Bảng dữ liệu role ......................................................................................61
Bảng 4.5. Bảng dữ liệu user_follow_user.................................................................62
Bảng 4.6. Bảng dữ liệu image_for_user....................................................................62
Bảng 4.7. Bảng dữ liệu post......................................................................................63
Bảng 4.8. Bảng dữ liệu tag........................................................................................63
Bảng 4.9. Bảng dữ liệu tag_type...............................................................................63
Bảng 4.10. Bảng dữ liệu post_tag .............................................................................64

Bảng 4.11. Bảng dữ liệu liked_post..........................................................................64
Bảng 4.12. Bảng dữ liệu saved_post.........................................................................64
Bảng 4.13. Bảng dữ liệu comment............................................................................65


Bảng 4.14. Bảng dữ liệu liked_comment..................................................................65
Bảng 4.15. Bảng dữ liệu image_for_post..................................................................66
Bảng 4.16. Bảng dữ liệu pending_expert..................................................................66
Bảng 4.17. Bảng dữ liệu image_for_pending_expert ...............................................67
Bảng 4.18. Bảng dữ liệu server_plant.......................................................................68
Bảng 4.19. Bảng dữ liệu server_plant_user_id .........................................................69
Bảng 4.20. Bảng dữ liệu user_plant..........................................................................70
Bảng 4.21. Bảng dữ liệu image_for_user_plant .......................................................70
Bảng 4.22. Bảng dữ liệu chat....................................................................................71
Bảng 4.23. Bảng dữ liệu plant_pending_exchange...................................................72
Bảng 4.24. Bảng dữ liệu email_activate ...................................................................72
TÓM TẮT KHĨA LUẬN
Khố luận với đề tài “Xây dựng ứng dụng chia sẻ phương pháp chăm sóc cây cảnh” tập
trung vào nghiên cứu, phân tích thực trạng và ứng dụng các cơng nghệ mới để từ đó xây
dựng thành một ứng dụng di động hoàn chỉnh, chạy nên nền tảng android. Đáp ứng nhu
cầu tìm kiếm, chia sẻ phương pháp chăm sóc cây cảnh. Đề tài được bắt đầu từ việc tìm
hiểu thực trạng, đưa ra các vấn đề cịn tồn đọng hoặc có thể cải thiện. Xác định mục
tiêu, phạm vi của đề tài cũng như các chức năng cần có của hệ thống. Ngồi việc xử lý
các nghiệp vụ cho hệ thống, tác giả cũng đã tìm hiểu, so sánh và lựa chọn được các
công nghệ mới và phù hợp giúp nâng cao trải nghiệm người dùng.
Trong giai đoạn thực hiện, client và server được phát triển song song sử dụng ngơn
ngữ lập trình Dart, framework Flutter cho app client, và sử dụng ngơn ngữ lập trình
PHP, framework Laravel cho server backend. Trong giai đoạn vận hành, server đã
được triển khai lên máy chủ Digital Ocean, hoàn toàn có thể truy cập dữ liệu thơng
qua api từ bất cứ thiết bị nào gửi yêu cầu có chứa trường xác thực dữ liệu hợp lệ.

Phần cuối cùng của khoá luận là trình bày kết quả đã thực hiện lên cuốn báo cáo,
đưa ra kết luận và hướng phát triển cho hệ thống trong tương lai. Nội dung khoá
luận được trình bày trong 5 chương:
- Chương 01: Mở đầu
Trình bày sơ bộ về đề tài và lý do thực hiện, xác định mục tiêu, phạm vi đề tài, nêu
lên hiện trạng và hướng giải quyết.
- Chương 02: Kiến thức nền tảng
Giới thiệu các công thực, giải thuật cũng như những cơng nghệ được đưa vào khố
luận.
- Chương 03: Xây dựng ứng dụng chia sẻ phương pháp chăm sóc cây cảnh


Phân tích yêu cầu, thiết kế, hiện thực và triển khai ứng dụng.
- Chương 04: Kết luận và hướng phát triển Những thuận lợi, khó khăn trong q
trình phát triển đề tài và nêu ra hướng phát triển trong tương lai.

20

Chương 1. MỞ ĐẦU
1.1. Giới thiệu đề tài
Cây cảnh từ lâu đã là 1 thú chơi của mọi nền văn hóa trên thế giới, bao gồm cả
Việt Nam. Chơi cây cảnh là 1 sở thích lành mạnh, giúp con người gần gũi hơn
với thiên nhiên. Nhất là trong cuộc sống ngày càng hiện đại, nơi mà các thiết bị
điện tử tràn ngập. Cây cảnh là 1 cách giúp cho con người ta tạm quên đi cuộc
sống xô bồ, xả stress, góp phần giúp cho chất lượng cuộc sống được nâng cao
hơn.
Nhu cầu trồng cây cảnh: theo kết quả điều tra nhu cầu thị trường hoa 1, cây cảnh của
Việt Nam, giai đoạn 2000 - 2011 trung bình mỗi năm tăng 9%. Giai đoạn 20112015 tăng trên 11%. Mức độ tiêu dùng hoa, cây cảnh trung bình của người dân đơ
thị năm 2000 là 25.000 đồng người/năm, đến năm 2011 tăng lên 52.000 đồng/năm,
đến năm 2013 là 100.000 đồng/người/năm, năm 2014 là trên 130.000

đồng/người/năm. Từ đó cho thấy, thị trường những người trồng cây cảnh ngày một
gia tăng, kéo theo đó là 1 cộng đồng.
Nhu cầu chia sẻ thông tin: Thú chơi cây cảnh sẽ dẫn đến nhu cầu tìm hiểu thơng tin
về cây, hoặc những người đã có kinh nghiệm muốn chia sẻ kiến thức của mình cho
cộng đồng,… Hiện nay có nhiều kênh thơng tin trên các nền tảng mạng xã hội,
website,… về đề tài này.
Vấn đề về chăm sóc cây cảnh: Có rất nhiều nguồn tài liệu từ khắp nơi trên mạng xã
hội ở nhiều nền tảng khác nhau, dẫn đến người dùng dễ bị rối và phân tán ở nhiều
nền tảng. Tuy đã có giải pháp bằng các ứng dụng hoặc web chuyên về chăm sóc cây
cảnh ở hình thức mạng xã hội nhưng là ngơn ngữ tiếng Anh, khó tiếp cận với đa số
người Việt.


1 Nguồn: />cay-canh-trong-kinh-te-hoi-nhap-371659.html

21

Tận dụng lợi thế công nghệ thông tin: Theo báo cáo về “Thị trường ứng dụng di
động 2021” do Appota phát hành, Việt Nam có khoảng 70% dân số sử dụng điện
thoại di động, trong đó có 64% các thuê bao đã kết nối 3G và 4G2. Đây là 1 con số
người dùng khổng lồ, tận dụng lợi thế cơng nghệ có sẵn, việc làm 1 ứng dụng di
động để chạm đến người dùng tiềm năng là điều hồn tồn có thể.
Và đề tài khóa luận nhằm chia sẻ phương pháp chăm sóc cây cảnh đã được
nhen nhóm ý tưởng rồi thực hiện.
1.2. Lý do chọn đề tài
Đặt bản thân mình là 1 người mới bắt đầu tập trồng cây cảnh trong nhà, tác giả
thấy rằng bản thân mình cần tìm hiểu rất nhiều nguồn tài liệu từ nhiều phương
tiện thông tin khác nhau, từ chọn cây, chăm sóc cây, nơi mua cây,... Và tác giả
chắc chắn cũng có rất nhiều người giống như tác giả. Hay chỉ đơn giản là khi
mình là 1 người chơi lâu năm, sẵn sàng chia sẻ kiến thức cho những người có

nhu cầu.
Nhằm cung cấp 1 sân chơi, 1 cộng đồng mạng để chia sẻ kiến thức, giao lưu, trao
đổi cây cảnh,… dành cho người dùng, tất cả gói gọn trong 1 nền tảng duy nhất.
Ý tưởng dành cho đề tài được tác giả đón nhận và thực hiện. Tạo ra ứng dụng
chia sẻ phương pháp chăm sóc cây cảnh.
1.3. Mục tiêu
Ứng dụng được xây dựng với mục đích kết nối những người yêu cây cảnh, tạo môi
trường chia sẻ, học hỏi kiến thức chăm sóc cây cảnh và khuyến khích trồng cây
cảnh. Các chức năng chia sẻ phương pháp chăm sóc cây cảnh của 1 mạng xã hội
thu nhỏ tạo nên 1 cộng đồng online. Thông qua chức năng trao đổi cây cảnh, giúp
kết nối người dùng ngoài đời cũng như giúp họ có được những cây mà mình mong
muốn ni.

2

Thao khảo từ: />viet/195299.html


22

Bên cạnh đó, đề tài cũng tạo ra cơ hội để nghiên cứu, học hỏi để nâng cao chuyên
môn trong lĩnh vực phát triển phần mềm. Nắm bắt các công nghệ mới và xu hướng
phát triển ứng dụng trên thị trường.
1.4. Phạm vi
Đề tài tập trung vào xây dựng ứng dụng trên nền tảng di động (android) với các
chức năng chính:
- Viết bài: Người dùng có thể viết bài kèm hình ảnh, và bài viết của người
dùng sẽ xuất hiện lên newsfeed của những ai đang theo dõi mình. - Tương tác
bài viết: Bình luận và thích 1 bài viết bất kì
- Chat: Dễ dàng liên lạc với nhau bằng tin nhắn

- Trao đổi cây cảnh: Đăng bài với tag trao đổi để mọi người có thể thấy và trao đổi
- Quản lý cây cảnh trao đổi: Quản lý 1 kho cây cảnh của riêng mình nhằm
phục vụ mục đích trao đổi cây
- Thơng tin chăm sóc cây cảnh: bách khoa cây cảnh từ phía server cung cấp thơng
tin cơ bản về 1 loại cây, người dùng cũng có thể đóng góp dữ liệu mới. - Theo dõi:
Người dùng có thể theo dõi lẫn nhau
- Chuyên gia cây cảnh: Người dùng có thể nâng cấp lên vai trị chun gia cây
cảnh. Bài viết của chuyên gia sẽ được gợi ý ở newsfeed của mọi người dùng. Quản lý tài khoản: tạo tài khoản, quản lý thông tin (avatar, bio, username, …)
Đề tài ngắm đến các phạm vi sau:
- Đề tài ngắm đến đối tượng những người yêu cây cảnh, bất cứ ai yêu thích chủ đề
này đều là đối tượng của ứng dụng.
- Người dùng là những người sử dụng điện thoại thông minh với hệ điều hành
android.

23

1.5. Phương pháp thực hiện
Đề tài được thực hiện bằng cách thực hiện tuần tự từng bước: Phân tích yêu cầu đề
tài, xem đề tài yêu cầu những gì, dành cho đối tượng nào, nội dung là gì,… Sau đó
là tổng hợp các tài liệu liên quan đến đề tài, các đề tài có ý tưởng tương tự để kế


thừa, tổng hợp lại, sau đó đề tài sẽ được bổ sung tính năng mới, cần thiết để trở
nên hồn thiện và đáp ứng được nhu cầu thực tế của người dùng; tổng hợp các tài
liệu các công nghệ đáp ứng được cho đề tài. Thống kê các số liệu liên quan (lượng
người dùng, lượng yêu cầu,…), các tính năng sẽ xây dựng. Bắt đầu xây dựng ứng
dụng bằng các cơng nghệ đã chọn với các tính năng đề ra. Xuyên suốt quá trình xây
dựng sẽ là kiểm tra các tính năng có hoạt động đúng theo luồng đã định hay khơng,
và sửa lỗi nếu có. Và sau cùng là triển khai ứng dụng lên server.
1.6. Ý nghĩa thực tiễn

Ứng dụng sẽ cung cấp môi trường để kết nối những người yêu cây cảnh, khuyến
khích tinh thần chăm cây, xây dựng cộng đồng. Người dùng cũng có thể tìm thấy
những cây mình u thích và trao đổi với nhau, tiếc kiệm chi phí và tạo sự gắn kết
giữa người chơi cây cảnh.
1.7. Kết quả dự kiến
Hiểu rõ về cú pháp, cách hoạt động của các framework liên quan như Flutter,
Laravel, và ứng dụng một cách hợp lý vào xây dựng ứng dụng chia sẻ phương
pháp chăm sóc cây cảnh.
Tạo ra ứng dụng chạy trên nền tảng android 4.4 trở về sau, có đầy đủ các tính năng
đã được thiết kế: Quản lý bài viết, khám phá bài viết, nhắn tin, trao đổi cây và quản
lý tài khoản.

1.8. Hiện trạng bài toán

24

Thế giới càng ngày càng phát triển, kéo theo cuộc sống của chúng ta cũng càng ngày càng bận rộn, lo
âu hơn. Ngoài giờ làm việc, học tập, con người ta hiếm có được khoảng thời gian giải trí, gần gũi với
thiên nhiên. Do đó, trồng cây cảnh trong nhà là 1 hình thức giúp cho ta trở nên thư thái, xả stress hiệu
quả và đơn giản nhất. Vì thế, nhu cầu được có mơi trường để mọi người dễ dàng chia sẻ, trao đổi ý
kiến về cây cảnh là vơ cùng cần thiết. Qua tìm hiểu trên các phương tiện online, tác giả nhận thấy có
rất nhiều diễn đàn, hội nhóm chuyên về giao lưu, thảo luận về các loại cây cảnh.


Trên các nền tảng mạng xã hội, các nội dung về chủ đề cây cảnh thu hút rất nhiều lượt xem, thể hiện
sự quan tâm của người dùng về chủ đề này. Vd: Clip “Bộ 3 để bàn 3 tỷ và những cây đẳng cấp nhiều
người mê, sanh nam điền, si, sung quái” của kênh Youtube “CÂY CẢNH VÀ CUỘC SỐNG” với hơn
11 ngàn lượt xem.

25


Hình 1.1. Một video về cây cảnh trên youtube với 11 ngàn lượt xem 3

1.8.1. Các ứng dụng liên quan
Sau khi khảo sát hiện trạng, tác giả đã tìm hiểu được một số ứng dụng liên
quan, có đáp ứng một phần trong việc giải quyết hiện trạng được nêu ra.
1.8.1.1. Ứng dụng GardenTags

Hình 1.0.2. Logo ứng dụng GardenTags4
“Garden Tags là ứng dụng tất cả trong một tốt nhất dành cho người làm
vườn với mọi tính năng giúp nghệ thuật trồng trọt trở nên dễ dàng và thú
vị. Nhận cảm hứng nuôi cây, lời khuyên, nhận diện cây cảnh và quản lý


vườn trong một ứng dụng miễn phí.”
Ưu điểm:
- Hỗ trợ mạng xã hội cho các người dùng với nhau
- Hiện có trên 2 nền tảng Android và iOS
- Quản lí cây cảnh và vườn cây
- Tính năng nhận diện cây cảnh
Hạn chế:

3 Link

youtube: />
4 Nguồn:

/>
26


- Khơng có chat
- Ứng dụng tải khá chậm, đơi lúc khơng ổn định
- Khơng có nguồn tài liệu chăm sóc cây cảnh
- Các tính năng quản lý cây cảnh nâng cao phải trả phí hằng tháng

1.8.1.2. Ứng dụng My Jungle

Hình 1.0.3. Logo ứng dụng My Jungle5
Ưu điểm:
- Có nhiều thơng tin chăm sóc cho nhiều loại cây
- Người dùng có thể đóng góp hoặc chỉnh sửa thông tin cây cảnh Tự thêm cây cảnh để quản lý và đặt cơng việc chăm sóc


- Đơn giản, nhanh gọn dễ sử dụng
Hạn chế:
- Ứng dụng dành cho 1 người dùng, khơng mang tính tương tác cộng
đồng.

5 Nguồn:
/>gl=US&showAllReviews=true

27

1.8.2. Đánh giá hiện trạng và hướng giải quyết
1.8.2.1. Đánh giá hiện trạng
Thú chơi cây cảnh đã có từ lâu, người yêu cây cảnh là không hề thiếu, song
song đó là những người mới bắt đầu tập tành trồng cây. Các hội nhóm, câu
lạc bộ hoặc các chương trình giao lưu cây cảnh nhằm thúc đẩy và phát triển
cộng đồng cây cảnh.
Tuy nhiên, tất cả những cộng đồng trên bị giới hạn về mặt địa lý và cách

thức thủ công. Dẫn đến việc kiến thức kinh nghiệm bị lãng phí, và số lượng
cộng đồng bị giới hạn.
Một số ý tưởng đã được tin học hóa như tạo các kênh youtube, hội nhóm
trên mxh,… Tuy nhiên tất cả đều phân bố trên quá nhiều nền tảng.
1.8.2.2. Hướng giải quyết
Để hỗ trợ chia sẻ phương pháp chăm sóc, trao đổi cây cảnh và xây dựng
cộng đồng tốt hơn, việc ứng dụng cơng nghệ thơng tin vào qui trình sẽ giúp
các thủ tục được diễn ra tự động ở nhiều bước, cắt giảm chi phí, giảm bớt
sai sót, tạo ra sự tiện lợi và xóa bỏ khoảng cách địa lý.
Theo báo cáo Thị trường quảng cáo số Việt Nam vừa được Adsota phát
hành6, thị trường Việt Nam hiện nay có đến 43,7 triệu người đang sử dụng
các thiết bị smartphone trên tổng dân số 97,4 triệu dân, đạt tỷ lệ 44,9%.


Đứng top 7 trên thế giới về lượt tải ứng dụng, tổng cộng 750 triệu lượt tải
app. Vì lẽ đó, việc tạo 1 ứng dụng hỗ trợ chia sẻ phương pháp chăm sóc cây
cảnh, trao đổi cây, xây dựng 1 cộng đồng là 1 lựa chọn hợp lý trong bối
cảnh hiện tại.

6 Thao khảo từ: />dang-su-dung-smartphone-40903.html

28

Chương 2. KIẾN THỨC NỀN TẢNG
2.1. Giao thức xác thực và thuật toán
2.1.1. Giao thức xác thực OAuth 2.0
Đối với người dùng, khi ta muốn sử dụng facebook chẳng hạn, ta cần phải xác
thực bằng thơng tin đăng nhập trước, rồi mới có thể sử dụng được. Vậy nếu 1
client (ứng dụng di động, thiết bị điện tử trong nhà, trang web, …) muốn sử
dụng tài ngun của 1 server thơng qua api, thì cách thức xác thực ra sao?

OAuth bắt đầu ra đời vào tháng 11/2006, khi Blaine Cook đang triển khai
Twitter OpenId và kết luận rằng khơng hề có 1 tiêu chuẩn chung nào cho việc
ủy nhiệm truy cập API7. Sau quá trình phát triển, OAuth 2.0 ra đời vào tháng
10/2012.
OAuth là 1 bộ giao thức xác thực (có thể gọi là 1 framework) cho phép người
dùng (User) trao quyền truy cập tài nguyên cá nhân trên 1 nơi (gọi là Sevice
Provider), cho 1 nơi khác (gọi là Consumer).
OAuth có nhiều luồng xác thực phục vụ cho nhiều trường hợp khác nhau.
Sau đây là luồng cơ bản nhất:


7 Tham

khảo từ: />
29

Hình 2.1. Luồng xác thực cơ bản của OAuth 2.08
Trong đó:
(A) Client gửi yêu cầu xác thực tới Resource Owner, yêu cầu này có thể được
gửi trực tiếp, hoặc có thể được gửi qua Authorization Server đứng ở giữa
(B) Client nhận Authorization Grant (đại diện cho ủy quyền của user) (C)
Client gửi yêu cầu nhận access token bằng cách đăng nhập với
authorization server và trình ra authorization grant
(D) Authorization server xác thực client và validate authorization grant, và nếu
hợp lệ, cấp 1 access token.
(E) Client yêu cầu sử dụng resource được bảo vệ từ phía resource server và
xác thực bằng cách đưa ra access token
(F) Resource server validate access token và nếu hợp lệ, cung cấp cho
request


8 Nguồn:

/>
30

2.1.2. Thuật toán Bcrypt
Nhằm bảo mật mật khẩu của người dùng khỏi admin database và hacker khi


×