ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA CÔNG NGHỆ THÔNG TIN
ĐỒ ÁN TỐT NGHIỆP
NGÀNH: CÔNG NGHỆ THÔNG TIN
CHUYÊN NGÀNH: CÔNG NGHỆ PHẦN MỀM
ĐỀ TÀI:
XÂY DỰNG ỨNG DỤNG KURO TEAM
CHẠY TRÊN NỀN TẢNG HỆ ĐIỀU HÀNH ANDROID
ĐỂ HỖ TRỢ VÀ QUẢN LÍ CƠNG VIỆC NHĨM
Người hướng dẫn: PGS.TS. VÕ TRUNG HÙNG
Sinh viên thực hiện: NGUYỄN VĂN MẪN
Số thẻ sinh viên: 102150113
Lớp: 15T2
Đà Nẵng, 12/2019
NHẬN XÉT CỦA NGƯỜI HƯỚNG DẪN
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
......................................................................................................................................................
Đà Nẵng, ngày … tháng 12 năm 2019
Người hướng dẫn
PGS.TS. Võ Trung Hùng
NHẬN XÉT CỦA NGƯỜI PHẢN BIỆN
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
................................................................................................. .....................................................
Đà Nẵng, ngày … tháng 12 năm 2019
PHIẾU DUYỆT ĐỒ ÁN TỐT NGHIỆP
I. Phần dành cho Sinh viên
1. Họ và tên: NGUYỄN VĂN MẪN
2. Mã Sinh viên: 102150113
3. Lớp: 15T2
4. Tên đề tài: Xây dựng ứng dụng Kuro Team chạy trên nền tảng hệ điều hành Android để hỗ
trợ và quản lí cơng việc nhóm.
5. Số điện thoại: 0966156153
6. E-mail:
7. Họ và tên GVHD: PGS.TS. Võ Trung Hùng
II. Phần dành cho Hội đồng
Nội dung đánh giá
STT
Kết luận
1.
Trình bày báo cáo theo đúng mẫu qui định của Khoa
2.
Khơng có sự sao chép nội dung báo cáo và chương trình đã có
3.
Biên dịch mã nguồn và chạy được chương trình
4.
Có kịch bản thực hiện với dữ liệu thử nghiệm
5.
Kết quả thực hiện chương trình đúng theo báo cáo
6.
Có sự đóng góp, phát triển của tác giả trong đồ án
Ý kiến khác: .........................................................................................................................................................................
.......................................................................................................................................................................................................
Kết luận:
Đạt yêu cầu
Phải sửa chữa lại
Không đạt yêu cầu
Đà Nẵng, ngày
tháng 12 năm 2019
Chủ tịch Hội đồng
Cán bộ duyệt kiểm tra
(Ký và ghi họ tên)
(Ký và ghi họ tên)
TÓM TẮT
Tên đề tài: Xây dựng ứng dụng Kuro Team chạy trên nền tảng hệ điều hành Android để
hỗ trợ và quản lí cơng việc nhóm.
Sinh viên thực hiện: Nguyễn Văn Mẫn
Số thẻ SV: 102150113
Lớp: 15T2
Ứng dụng Kuro Team là một ứng dụng chạy trên nền tảng hệ điều hành Android. Đây
là một cơng cụ hữu ích giúp cho sự hoạt động của một nhóm các học sinh, sinh viên với
quy mô nhỏ trở nên dễ dàng và tiết kiệm thời gian hơn. Ứng dụng cung cấp các chức
năng cho phép các thành viên trong một nhóm có thể theo dõi công việc của nhau, trao
đổi về công việc, hỗ trợ các thành viên khác và cập nhật các thông tin mới nhất cũng
như trò chuyện với mọi người trong nhóm chỉ bằng các thao tác đơn giản trên chiếc điện
thoại của mình. Ứng dụng này được phát triển hướng tới các nhóm sinh viên, học sinh
thường xuyên hoạt động theo nhóm để làm việc, ví dụ như các nhóm thuyết trình bài
tập, sinh hoạt cộng đồng.
ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA CÔNG NGHỆ THƠNG TIN
CỘNG HỊA XÃ HƠI CHỦ NGHĨA VIỆT NAM
Độc lập - Tự do - Hạnh phúc
NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
Họ tên sinh viên: Nguyễn Văn Mẫn
Số thẻ sinh viên: 102150113
Lớp: 15T2
Khoa: Công nghệ thông tin
Ngành: Công nghệ thông tin
1. Tên đề tài đồ án: Xây dựng ứng dụng Kuro Team chạy trên nền tảng hệ điều hành
Android để hỗ trợ và quản lí cơng việc nhóm.
Đề tài thuộc diện: ☐ Có ký kết thỏa thuận sở hữu trí tuệ đối với kết quả thực hiện
2. Các số liệu và dữ liệu ban đầu:
Khơng có.
3. Nội dung các phần thuyết minh và tính tốn:
Nội dung của thuyết minh gồm:
Mở đầu: Phần mở đầu của luận văn, giới thiệu về nhu cầu thực tế và lý do thực
hiện đề tài, đồng thời giới thiệu sơ lược về đề tài và mục tiêu phải đạt được.
Chương 1. Cơ sở lý thuyết: trình bày những lý thuyết học được và đã áp dụng vào
hệ thống.
Chương 2. Phân tích và thiết kế: trình bày các hồ sơ phân tích và hồ sơ thiết kế
trong xây dựng hệ thống và luồng hoạt động của hệ thống.
Chương 3. Triển khai và đánh giá kết quả: mô tả cách cài đặt, vận hành hệ thống
và đánh giá kết quả đạt được.
4. Các bản vẽ, đồ thị ( ghi rõ các loại và kích thước bản vẽ ):
Khơng có.
5. Họ tên người hướng dẫn: PGS.TS. Võ Trung Hùng
6. Ngày giao nhiệm vụ đồ án:
……../……./ 2019
7. Ngày hoàn thành đồ án:
……../……./ 2019
Đà Nẵng, ngày
Trưởng Bộ môn ……………………..
tháng 12 năm 2019
Người hướng dẫn
Đề tài: Xây dựng ứng dụng Kuro Team
LỜI NÓI ĐẦU
Lời đầu tiên, em xin phép gửi lời cảm ơn chân thành và sâu sắc của mình đến với
các Thầy, Cơ trong khoa Công nghệ Thông tin – những người đã đồng hành để truyền
đạt những kiến thức, kinh nghiệm quý báu cho em trong suốt hơn 4 năm học tập tại
trường Đại học Bách khoa – Đại học Đà Nẵng.
Em cũng xin bày tỏ sự biết ơn đến với Thầy giáo PGS.TS. Võ Trung Hùng, người
đã trực tiếp hướng dẫn và giúp đỡ tận tình cũng như tạo điều kiện tốt nhất để em có thể
hồn thành đồ án của mình đúng tiến độ.
Để có thể hồn thành đồ án này, ngồi sự giúp đỡ tận tình của các Thầy, Cơ trong
Khoa Cơng nghệ Thơng tin, em cịn nhận được sự đóng góp và chỉ dẫn nhiệt tình của
các Anh, Chị trong Công ty Open Web Technology Đà Nẵng. Em xin gửi lời cảm ơn
chân thành đến tất cả Anh, Chị trong Công ty, những người đã nhiệt hỗ trợ và góp ý để
em có thể hồn thiện được đồ án của mình một cách thuận lợi.
Trong quá trình thực hiện đồ án sẽ khơng tránh khỏi những thiếu sót, em rất mong
sẽ nhận được sự thông cảm từ Thầy, Cơ. Em cũng mong sẽ nhận được những đánh giá,
góp ý tận tình từ q Thầy, Cơ để em có thể hồn thiện đề tài của mình cũng như tích
lũy được thêm nhiều kinh nghiệm có ích cho cơng việc trong tương lai của mình.
Một lần nữa em xin gửi lời cảm ơn chân thành đến tất cả mọi người đã giúp đỡ
em hoàn thiện đồ án này!
Nguyễn Văn Mẫn
i
Đề tài: Xây dựng ứng dụng Kuro Team
CAM ĐOAN
Em xin cam đoan:
1. Toàn bộ nội dung trong đồ án này đều do em thực hiện dưới sự hướng dẫn của
PGS.TS. Võ Trung Hùng.
2. Các nội dung, thông tin tham khảo dùng trong đồ án đều được trích dẫn rõ ràng
tên tác giả, tên cơng trình, thời gian, địa điểm cơng bố.
3. Nếu có những sao chép khơng hợp lệ, vi phạm quy chế đào tạo, em xin chịu hoàn
toàn trách nhiệm.
Đà Nẵng, ngày tháng 12 năm 2019
Sinh viên thực hiện
Nguyễn Văn Mẫn
ii
Đề tài: Xây dựng ứng dụng Kuro Team
MỤC LỤC
LỜI NÓI ĐẦU ............................................................................................................................. i
CAM ĐOAN .............................................................................................................................. ii
MỤC LỤC .................................................................................................................................iii
DANH SÁCH CÁC BẢNG ....................................................................................................... v
DANH SÁCH CÁC HÌNH VẼ ................................................................................................. vi
DANH SÁCH CÁC KÝ HIỆU, CHỮ VIẾT TẮT ................................................................... vii
Trang
MỞ ĐẦU.................................................................................................................................... 1
1. Tổng quan về đề tài ......................................................................................................... 1
2. Ý nghĩa của đề tài ............................................................................................................ 1
3. Phạm vi của đề tài............................................................................................................ 2
4. Bố cục của đồ án .............................................................................................................. 2
CHƯƠNG I
1.1.
NGÔN NGỮ LẬP TRÌNH VÀ CƠNG CỤ SỬ DỤNG ............................... 3
NGƠN NGỮ LẬP TRÌNH RUBY ............................................................................. 3
1.1.1.
Ngơn ngữ lập trình Ruby ...................................................................................... 3
1.1.2.
Ruby on Rails framework ..................................................................................... 3
1.1.3.
Action Cable ......................................................................................................... 8
1.2.
NGÔN NGỮ LẬP TRÌNH KOTLIN ......................................................................... 9
1.2.1.
Ngơn ngữ lập trình Kotlin .................................................................................... 9
1.2.2.
Sử dụng Kotlin để phát triển ứng dụng Android ................................................ 11
1.3.
FIREBASE CLOUD MESSAGING ........................................................................ 12
CHƯƠNG II PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG ................................................ 14
2.1.
BÀI TOÁN THỰC TẾ ............................................................................................. 14
2.1.1.
Tổng quan hiện trạng .......................................................................................... 14
2.1.2.
Phân tích áp dụng cơng nghệ để cải thiện thực tế .............................................. 14
2.2.
XÁC ĐỊNH YÊU CẦU NGƯỜI SỬ DỤNG ............................................................ 15
2.2.1.
Xác định người sử dụng ......................................................................................... 15
2.2.2.
Xác định yêu cầu của từng nhóm người sử dụng ................................................... 15
2.3.
PHÂN TÍCH CHỨC NĂNG ..................................................................................... 16
2.3.1.
Các chức năng của Khách .................................................................................. 16
2.3.2.
Các chức năng của người dùng bình thường ...................................................... 16
2.3.3.
Các chức năng của trưởng nhóm ........................................................................ 17
2.4.
BIỂU ĐỒ USE-CASE ............................................................................................... 18
iii
Đề tài: Xây dựng ứng dụng Kuro Team
2.4.1.
Các tác nhân trong hệ thống ............................................................................... 18
2.4.2.
Biểu đồ Use-Case của tác nhân Khách ............................................................... 18
2.4.3.
Biểu đồ Use-Case của Người dùng bình thường ................................................ 19
2.4.4.
Biểu đồ Use-Case của Trưởng nhóm.................................................................. 21
2.4.5.
Biểu đồ Use-Case tổng quát của hệ thống .......................................................... 23
2.5.
BIỂU ĐỒ HOẠT ĐỘNG ........................................................................................... 24
2.6.
BIỂU ĐỒ LỚP ........................................................................................................... 26
2.7.
KIẾN TRÚC HỆ THỐNG ......................................................................................... 28
CHƯƠNG III XÂY DỰNG, THỬ NGHIỆM VÀ ĐÁNH GIÁ ......................................... 29
3.1.
MƠI TRƯỜNG TRIỂN KHAI .................................................................................. 29
3.1.1.
Mơi trường triển khai.......................................................................................... 29
3.1.2.
Cài đặt môi trường .............................................................................................. 29
3.2.
PHÁT TRIỂN ỨNG DỤNG ...................................................................................... 30
3.2.1.
Thiết kế cơ sở dữ liệu ......................................................................................... 30
3.2.2.
Xây dựng Web API ............................................................................................ 38
3.3.3.
Xây dựng ứng dụng Android .............................................................................. 40
3.3.
THỬ NGHIỆM .......................................................................................................... 46
3.4.
ĐÁNH GIÁ ................................................................................................................ 65
KẾT LUẬN ............................................................................................................................. 67
1. KẾT QUẢ ĐẠT ĐƯỢC ................................................................................................... 67
2. HẠN CHẾ ........................................................................................................................ 67
3. HƯỚNG PHÁT TRIỂN ................................................................................................... 68
TÀI LIỆU THAM KHẢO...................................................................................................... 69
iv
Đề tài: Xây dựng ứng dụng Kuro Team
DANH SÁCH CÁC BẢNG
Bảng I.1. Trạng thái nhận messages của Firebase cloud messaging ........................................ 13
Bảng III.1: Bảng mô tả các bảng dữ liệu trong cơ sở dữ liệu của hệ thống ............................. 31
Bảng III.2. Chi tiết bảng users .................................................................................................. 33
Bảng III.3. Chi tiết bảng teams ................................................................................................. 33
Bảng III.4. Chi tiết bảng user_teams ........................................................................................ 34
Bảng III.5. Chi tiết bảng notes.................................................................................................. 34
Bảng III.6. Chi tiết bảng appointments .................................................................................... 35
Bảng III.7. Chi tiết bảng boards ............................................................................................... 35
Bảng III.8. Chi tiết bảng tasks .................................................................................................. 36
Bảng III.9. Chi tiết bảng attachments ....................................................................................... 36
Bảng III.10. Chi tiết bảng sub_tasks ........................................................................................ 37
Bảng III.11. Chi tiết bảng comments ........................................................................................ 37
Bảng III.12. Chi tiết bảng chat_messages ................................................................................ 38
Bảng III.13. Chi tiết bảng notifications .................................................................................... 38
v
Đề tài: Xây dựng ứng dụng Kuro Team
DANH SÁCH CÁC HÌNH VẼ
Hình I.1. Mơ hình kiến trúc Model-View-Controller ................................................................. 4
Hình I.2. Hoạt động của HTTP và WebSocket .......................................................................... 8
Hình II.1. Biểu đồ Use-Case cho Đăng kí tài khoản ................................................................ 18
Hình II.2. Biểu đồ Use-Case Đăng nhập .................................................................................. 19
Hình II.3. Biểu đồ Use-Case Chức năng đăng xuất.................................................................. 19
Hình II.4. Biểu đồ Use-Case Quản lí u cầu cá nhân ............................................................. 19
Hình II.5. Biểu đồ Use-Case Quản lí thơng tin cá nhân ........................................................... 20
Hình II.6. Biểu đồ ca Use-Case Quản lí cơng việc trong bảng cơng việc ................................ 20
Hình II.7: Biểu đồ Use-Case Quản lí thành viên của trưởng nhóm ......................................... 21
Hình II.8. Biểu đồ Use-Case Quản lí bảng cơng việc của trưởng nhóm .................................. 21
Hình II.9. Biểu đồ Use-Case Quản lí ghi chú của trưởng nhóm .............................................. 22
Hình II.10. Biểu đồ Use-Case Quản lí cuộc hẹn của trưởng nhóm .......................................... 22
Hình II.11. Biểu đồ Use-Case Quản lí thơng tin nhóm của trưởng nhóm ................................ 22
Hình II.12. Biểu đồ Use-Case tổng qt của hệ thống ............................................................. 23
Hình II.13. Biểu đồ hoạt động cảu chức năng u cầu tham gia nhóm .................................... 24
Hình II.14. Biểu đồ hoạt động của chức năng gửi lời mời tham gia nhóm .............................. 25
Hình II.15. Biểu đồ hoạt động của chức năng gửi tin nhắn đến nhóm ..................................... 25
Hình II.16. Biểu đồ hoạt động của chức năng tạo công việc mới ............................................ 26
Hình II.17. Biểu đồ hoạt động của chức năng cập nhật thơng tin cơng việc ............................ 26
Hình II.18.Biểu đồ lớp của hệ thống ........................................................................................ 27
Hình II.19. Sơ đồ kiến trúc của hệ thống .................................................................................. 28
Hình III.1. Cơ sở dữ liệu PostgreSQL ...................................................................................... 29
Hình II.20. Sơ đồ cơ sở dữ liệu của hệ thống ........................................................................... 32
Hình III.2. Màn hình đăng nhập ............................................................................................... 47
Hình III.3. Màn hình đăng kí tài khoản .................................................................................... 48
Hình III.4. Màn hình tìm kiếm nhóm và xin gia nhập .............................................................. 49
Hình III.5. Màn hình thơng tin cá nhân người dùng ................................................................. 50
Hình III.6. Màn hình tạo nhóm mới ......................................................................................... 51
Hình III.7. Màn hình xem thơng tin nhóm ............................................................................... 52
Hình III.8. Màn hình xem thơng tin nhóm ............................................................................... 53
Hình III.9. Màn hình cập nhật thơng tin nhóm ......................................................................... 54
Hình III.10. Màn hình tìm kiếm và mời người vào nhóm ........................................................ 55
Hình III.11. Màn hình tạo bảng cơng việc mới ........................................................................ 56
Hình III.12. Màn hình tạo ghi chú mới ..................................................................................... 57
Hình III.13. Màn hình tạo cuộc hẹn mới .................................................................................. 58
Hình III.14. Màn hình danh sách cơng việc ............................................................................. 59
Hình III.15. Màn hình cập nhật trạng thái cơng việc ................................................................ 60
Hình III.16. Màn hình tạo cơng việc mới ................................................................................. 61
Hình III.17. Màn hình chi tiết cơng việc .................................................................................. 62
Hình III.18. Màn hình danh sách các nhóm trị chuyện ........................................................... 63
Hình III.19. Màn hình trị chuyện nhóm ................................................................................... 64
Hình III.20. Màn hình danh sách thơng báo ............................................................................. 65
vi
Đề tài: Xây dựng ứng dụng Kuro Team
DANH SÁCH CÁC KÝ HIỆU, CHỮ VIẾT TẮT
Từ
API
RESTful
Viết tắt của
Application Programming Interface Giao diện lập trình ứng dụng.
REpresentational State Transfer
HTTP
Hypertext Transfer Protocol
MVC
Model-View-Controller
DB
Một dạng chuyển đổi cấu trúc
dữ liệu, một kiểu kiến trúc để
viết API.
Giao thức truyền tải siêu văn
bản.
Mơ hình - Giao diện - Bộ điều
khiển.
Cơ sở dữ liệu.
Database
Là các đoạn code đã được viết
sẵn, cấu thành nên một bộ
khung và các thư viện lập trình
được đóng gói.
Ca sử dụng, một khái niệm
trong lĩnh vực phân tích và thiết
kế hệ thống.
Framework
Use-case
RoR
Ruby on Rails
FCM
Firebase Cloud Messaging
WebSocket
DRY
Don’t Repeat Yourself
JSON
JavaScript Object Notation
XML
Extensible Markup Language
Smartphone
Mô tả
Một framework được xây dựng
trên ngơn ngữ lập trình Ruby.
Dịch vụ gửi tin nhắn, thơng báo
miễn phí đến các nền tảng khác
nhau.
Là một giao thức giúp truyền dữ
liệu hai chiều giữa server-client
qua một kết nối TCP duy nhất
Là một nguyên lí trong phát
triển phần mềm nhằm giảm sự
lặp lại các mẫu phần mềm.
Là một kiểu định dạng dữ liệu
trong đó sử dụng văn bản thuần
tuý, định dạng JSON sử dụng
các cặp key - value để dữ liệu
sử dụng.
Là ngôn ngữ đánh dấu với mục
đích chung để tạo ra các ngơn
ngữ đánh dấu khác.
Điện thoại thông minh.
vii
Đề tài: Xây dựng ứng dụng Kuro Team
PDF
Portable Document Format
Là một loại định dạng tập tin
văn bản.
Gem
Một thư viện của ngơn ngữ lập
trình Ruby.
Broadcast
Là một thuật ngữ sử dụng trong
mạng máy tính để mơ tả cách
thức truyển tin được gửi từ 1
điểm đến tất cả các điểm khác
trong cùng một mạng
JVM
Java Virtual Machine
Máy ảo Java.
viii
Đề tài: Xây dựng ứng dụng Kuro Team
MỞ ĐẦU
1. Tổng quan về đề tài
Trong xã hội hiện đại, với sự phát triển mạnh mẽ và vượt bậc của ngành khoa học
cơng nghệ thì cơng nghệ đã đi vào cuộc sống của con người như là một điều tất yếu. Các
sản phẩm cơng nghệ xuất hiện ở mọi khía cạnh trong cuộc sống, từ sản xuất, kinh doanh
đến thể thao, văn hóa và đặc biệt là trong đời sống cá nhân của mỗi người.
Smartphone là một trong những sản phẩm công nghệ được cho là đã làm thay đổi cuộc
sống của con người bằng những cơng dụng hiện đại của nó. Không chỉ đơn thuần là một
chiếc điện thoại dùng để nghe, gọi hay nhắn tin ký tự đến người khác như những chiếc
điện thoại di động trước đây đã làm được. Smartphone còn mang đến nhiều điều khác
biệt hơn bởi các tính năng hiện đại của nó. Ngày nay, bạn có thể làm được làm được rất
nhiều thứ từ làm việc, giải trí hay đến liên lạc với người thân và nhiều hơn nữa chỉ với
một chiếc smartphone trên tay cùng với internet. Ngày nay, do sự tiến bộ của khoa học
công nghệ, để sở hữu một chiếc smartphone trong tay cũng khơng phải là điều q khó
khăn. Với một số tiền bỏ ra vừa phải, bạn đã có thể có rất nhiều lựa chọn cho một chiếc
smartphone riêng của mình. Thật khơng khó nhận ra điều đó khi hiện tại rất nhiều người
đang sở hữu riêng cho mình một chiếc smartphone như một vật không thể thiếu. Ngay
cả một bạn học sinh cấp 2, cấp 3, gia đình khơng q khá giả cũng có thể có riêng cho
mình một chiếc smartphone rồi.
Từ những thực trạng trên, kết hợp với những kiến thức đã được học ở trường, trong
khuôn khổ đồ án tốt nghiệp, em thực hiện đề tài: “Xây dựng ứng dụng Kuro Team chạy
trên nền tảng hệ điều hành Android để hỗ trợ và quản lí cơng việc nhóm”. Ứng dụng
chạy trên nền tảng hệ điều hành Android là một trong hai hệ điều hành nổi bật và ưa
dùng nhất trong các dòng smartphone hiện tại. Đề tài này nhắm tới việc hỗ trợ việc hoạt
động theo nhóm của các bạn học sinh, sinh viên trở nên hiện đại và tiết kiệm thời gian
hơn cũng như tận dụng được một phần công dụng của chiếc smartphone trên tay.
2. Ý nghĩa của đề tài
Ứng dụng Kuro Team được tạo ra nhằm vận dụng những kiến thức công nghệ
thông tin đã được đào tạo ở trường, kết hợp với sự đa năng của chiếc smartphone hiện
tại để tạo ra một ứng dụng như một công cụ hỗ trợ cho công việc nhóm của các bạn
sinh viên, học sinh và dần thay thế các cách hoạt động truyền thống mà dần trở nên
không phù hợp với cuộc sống hiện tại nữa.
SVTH: Nguyễn Văn Mẫn
GVHD: PGS.TS. Võ Trung Hùng
1
Đề tài: Xây dựng ứng dụng Kuro Team
Ứng dụng sẽ giúp cho cơng việc trở nên nhanh chóng, cập nhật thông tin với nhau
dễ dàng hơn và giúp làm quen với một cách làm việc hiện đại hơn trong thời kì mà
cơng nghệ đang bùng nổ.
3. Phạm vi của đề tài
Đề tài bao gồm một ứng dụng chạy được trên nền tảng hệ điều hành Android,
sử dụng cho tất cả các bạn sinh viên, học sinh hoặc bất cứ ai hoạt động theo
nhóm vừa và nhỏ, muốn có một cơng cụ hiện đại để quản lí và làm việc với
nhóm của mình.
Ứng dụng cung cấp những chức năng chính:
o Tìm kiếm, tham gia vào nhóm hoặc tự tạo nhóm cho chính bản thân mình.
o Quản lí nhóm của mình.
o Theo dõi cơng việc của các nhóm mình đang tham gia.
o Trị chuyện với mọi người trong nhóm.
4. Bố cục của đồ án
CHƯƠNG 1: NGƠN NGỮ LẬP TRÌNH VÀ CƠNG CỤ SỬ DỤNG
Trong chương này, em trình bày một số thông tin tổng quát về các ngôn ngữ lập trình
và một số cơng cụ liên quan được sử dụng để thực hiện đề tài.
CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ
Trong chương này, em trình bày về bài tốn thực tế, hướng giải quyết, phân tích các
u cầu của người sử dụng hệ thống, phân tích các chứng năng của hệ thống, vẽ ra các
biểu đồ use-case, biểu đồ hoạt động và sơ đồ lớp của hệ thống.
CHƯƠNG 3: TRIỂN KHAI VÀ ĐÁNH GIÁ KẾT QUẢ
Trong chương này, em tập trung trình bày về cách thức em triển khai thực hiện đề
tài bao gồm cách thức xây dựng ứng dụng từ thiết kế cơ sở dữ liệu, đến phát triển ứng
dụng và cuối cùng là đưa ra một số hình ảnh của sản phẩm thực tế em thực hiện được
cũng như một vài đánh giá về sản phẩm.
KẾT LUẬN
Cuối cùng, trong phần kết luận, em trình bày về một số kết quả em đạt được sau khi
thực hiện đề tài, đồng thời nêu lên một số vấn đề em chưa giải quyết được và các hướng
phát triển đề tài của mình trong tương lai.
SVTH: Nguyễn Văn Mẫn
GVHD: PGS.TS. Võ Trung Hùng
2
Đề tài: Xây dựng ứng dụng Kuro Team
CHƯƠNG I
NGÔN NGỮ LẬP TRÌNH VÀ CƠNG CỤ SỬ DỤNG
Trong chương này, em trình bày một số thơng tin tổng qt các ngơn ngữ lập trình
em sử dụng để phát triển đề tài bao gồm ngơn ngữ lập trình Ruby, Kotlin và cùng với
đó là một số thơng tin liên quan đến các công cụ em sử dụng trong đề tài như các
frameworks, các dịch vụ bên thứ ba.
1.1. NGƠN NGỮ LẬP TRÌNH RUBY
1.1.1. Ngơn ngữ lập trình Ruby
[1]Ngơn ngữ lập trình Ruby là ngơn ngữ lập trình hướng đối tượng thuần túy
được phát triển bởi Yukihiro Matsumoto (còn được gọi là Matz trong cộng đồng
Ruby) vào giữa năm 1990 tại Nhật Bản. Ruby hỗ trợ hầu hết các nền tảng nhưu
MacOS, Windows và Linux.
Ruby được phát triển dựa trên nhiều ngôn ngữ khác như Perl, Lisp, Smalltalk,
Eiffel và Ada. Ruby là một ngơn ngữ kịch bản được diễn giải có nghĩa là hầu hết
các triển khai của nó được thực hiện trực tiếp và tự do mà không cần biên dịch
chương trình thành ngơn ngữ máy.
Một số ưu điểm của Ruby
o Mã được viết bằng ngơn ngữ Ruby có kích thước nhỏ vì số dịng lệnh ít.
o Ruby cho phép tạo một ứng dụng Web đơn giản và nhanh chóng, giúp giảm bớt
thời gian và khối lượng cơng việc.
o Ruby cho phép lập trình viên thực hiện các thay đổi cần thiết theo yêu cầu.
o Ruby là một ngôn ngữ lập trình động do khơng có quy tắc cứng nào về cách xây
dựng các tính năng và rất gần với ngơn ngữ nói.
Một số nhược điểm của Ruby
o Mã lệnh viết bằng Ruby khó sửa lỗi vì đa số mã lệnh được sinh ra ngay lúc chạy.
o Ruby là một ngôn ngữ kịch bản được diễn giải, các ngôn ngữ kịch bản thường
chậm hơn các ngôn ngữ biên dịch nên Ruby chậm hơn so với nhiều ngôn ngữ lập
trình khác.
Ứng dụng của Ruby: Ruby được dùng sử dụng để tạo ra các ứng dụng web khác
nhau. Đây là một trong những công nghệ được ưa chuộng nhất hiện nay.
1.1.2. Ruby on Rails framework
[2]Năm 2005, trong quá trình xây dựng Basecamp, David Heinemeier Hansson
(DHH) đã hình dung ra một thư viện mạnh mẽ với ngôn ngữ lập trình Ruby. Anh
ta đã sử dụng nền tảng của ứng dụng và tạo ra các khối (blocks) để sử dụng trong
tương lai, và tạo ra Ruby on Rails framework. DHH làm cho nó trở nên đa mục
đích và có thể mở rộng và chia sẻ với thị trường mã nguồn mở. Ở đó Ruby on
Rails được cải tiến thêm và tạo ra một bước đột phá để phát triển ứng dụng web.
SVTH: Nguyễn Văn Mẫn
GVHD: PGS.TS. Võ Trung Hùng
3
Đề tài: Xây dựng ứng dụng Kuro Team
Ruby on Rails là một trong số những web framework phía máy chủ (server-side)
phổ biến nhất hiện nay.
Ruby on Rails framework tuân theo 3 nguyên tắc thiết kế chính nhằm thúc đẩy
sự đơn giản trong việc xây dựng các hệ thống phức tạp:
o Kiến trúc Model-View-Controller (MVC)
Trong kiến trúc này, mơ hình web có ba lớp được kết nối với nhau. Model chứa
các mã lệnh làm việc với dữ liệu ứng dụng. Nó tập trung các quy tắc nghiệp vụ
của ứng dụng và các quy tắc để thao tác với dữ liệu. Views có thể là các tệp
HTML được nhúng mã Ruby bên trong để xác định cách người dùng tương tác
với dữ liệu và cách hiển thị dữ liệu cho người dùng, bao gồm HTML, PDF, XML,
RSS và một số định dạng khác. Controller giao tiếp với model và views, nó nhận
u cầu từ trình duyệt, sau đó làm việc với model để thực hiện yêu cầu và đưa ra
views để hiển thị ra cho người dùng một cách chính xác.
Hình ảnh bên dưới mơ tả hoạt động của mơ hình MVC:
Hình I.1. Mơ hình kiến trúc Model-View-Controller
Trong đó:
User: Người dùng
Action: Hành động
Update: Thao tác cập nhật
Notify: Thông báo
Database: Cơ sử dữ liệu
Model, View, Controller: 3 thành phần của kiến trúc MVC.
Các ứng dụng Web được xây dựng bởi Ruby on Rails framework được sắp xếp
phù hợp và có phân chia giữa các lớp: routes, controllers, models và views. Việc
SVTH: Nguyễn Văn Mẫn
GVHD: PGS.TS. Võ Trung Hùng
4
Đề tài: Xây dựng ứng dụng Kuro Team
sử dụng mô hình MVC tạo điều kiện cho việc bảo trì và triển khai kiểm thử dễ
dàng hơn.
o Các quy ước về mơ hình cấu hình
Ngun tắc này giúp các nhà phát triển tiết kiệm thời gian và cơng sức bởi vì
Ruby on Rails framework đã giả định ra những gì họ muốn làm và cách thực hiện,
nên họ không cần ghi nhớ chi tiết về các tệp cấu hình.
o Khơng lặp lại chính mình (DRY)
DRY khuyến khích giảm thiểu sự lặp thông tin trong một hệ thống. Điều này tạo
điều kiện cho việc sửa đổi và giảm thiểu các lỗi trong quy trình phát triển phần mềm.
Những người xây dựng các trang web phức tạp đánh giá cao các nguyên tắc thiết
kế dưới đây cùng với các lợi ích khác của Ruby on Rails:
Tính đơn giản
Ruby on Rails tận dụng những lợi thế của ngơn ngữ lập trình Ruby. Nó sử dụng
cú pháp giống như tiếng Anh và ngôn ngữ thông thường tạo cảm giác rất tự nhiên và
hợp lý đến nỗi một số phần của mã lệnh đọc giống như khai báo tiếng Anh. Cú pháp
đơn giản và dễ đọc cho phép các nhà phát triển Ruby làm được nhiều hơn với ít dịng
lệnh hơn. Khả năng dễ đọc này làm giảm gánh nặng của các nhà phát triển khi viết
ra các bình luận riêng biệt hoặc văn bản trợ giúp. Các lập trình viên và người quản
lý có thể xem mã của nhau một cách dễ dàng và nhanh chóng tìm hiểu những gì diễn
ra trong một dự án. Nó khơng bắt buộc phải biết Ruby để sử dụng Rails, nhưng bạn
chắc chắn sẽ chọn Ruby khi bạn học Rails. Ruby dễ học hơn hầu hết các ngôn ngữ
lập trình ngay cả đối với những người khơng có kỹ thuật. Nếu bạn thành thạo Python,
quá trình chuyển đổi sang RoR sẽ diễn ra suôn sẻ. Cộng đồng phát triển web Rails
rất cởi mở và thân thiện với người mới bắt đầu và cung cấp rất nhiều thư viện và
plugin hữu ích. Framework này có các giải pháp tích hợp cho nhiều vấn đề mà các
nhà phát triển web thường gặp phải. Lợi ích cốt lõi là trình khởi tạo, mơ-đun và các
gems của nó (thư viện để thêm các tính năng cho các ứng dụng web). Hầu như đối
với bất kỳ chức năng nào bạn có thể cần thực hiện, ln có một gem có sẵn trong
kho lưu trữ của RubyGems. Nếu khơng, bạn có thể dễ dàng tìm thấy một chuyên gia
trong cộng đồng Ruby rộng lớn sẽ phát triển một người trong thời gian ngắn
nhất. Framework đặt các quy tắc và mẫu tạo điều kiện thuận lợi hơn cho việc phát
triển các ứng dụng web. Với các tiêu chuẩn được thiết lập cụ thể, các nhà phát triển
khơng lãng phí thời gian để tìm kiếm cấu trúc phù hợp của ứng dụng. Nhiều điều xảy
ra mà khơng có định nghĩa chặt chẽ nhờ các quy ước và giả định được coi là cách tốt
nhất để hoàn thành nhiệm vụ. Nhiều tác vụ được tích hợp sẵn để hoạt động bên ngồi,
chẳng hạn như trình ánh xạ cơ sở dữ liệu đối tượng, cấu trúc tệp, tạo mã, cách các
phần tử được đặt tên và sắp xếp, v.v ... Tất cả những điều này làm tăng năng suất và
làm cho các ứng dụng web được tạo nhiều hơn bảo trì. Bởi vì cấu trúc và thực tiễn
SVTH: Nguyễn Văn Mẫn
GVHD: PGS.TS. Võ Trung Hùng
5
Đề tài: Xây dựng ứng dụng Kuro Team
phát triển giống nhau được sử dụng ở mọi nơi, nên nó dễ dàng đi từ dự án này sang
dự án khác, cũng như cho những người mới tham gia.
Phát triển nhanh hơn
RoR giảm thiểu thời gian phát triển trang web xuống 25-50% so với các web
framework phổ biến khác. Phát triển web với Ruby on Rails nhanh hơn do định
hướng đối tượng của Ruby, cơ sở mã nạc, thiết kế mô đun, mã nguồn mở rộng được
phát triển bởi cộng đồng Rails và một loạt các giải pháp plugin sẵn sàng sử dụng cho
tính năng phát triển. RoR thường có ít dịng mã hơn. Ví dụ, đơi khi một dịng mã
trong Ruby có thể có giá trị bằng sáu dịng mã Java. Nó cũng cung cấp một cơ sở hạ
tầng mạnh mẽ từ sự khởi đầu, tiết kiệm thời gian và nỗ lực đáng kể để các nhà phát
triển xây dựng từ đầu. Họ không cần phải mất nhiều thời gian để cấu hình các tệp để
thiết lập cũng như khơng quyết định nhiều mặc định đã tồn tại. Đưa ra ít quyết định
hơn dẫn đến phát triển nhanh hơn, cộng tác được cải thiện và bảo trì dễ dàng
hơn. Các nhà phát triển cũng có quyền truy cập vào các mô-đun được tạo sẵn khác
nhau trong các thư viện của bên thứ ba. Họ có thể lấy bảng điều khiển, xác thực
người dùng và các thành phần tiêu chuẩn và phi tiêu chuẩn khác từ một ‘nhà để xe’
và tích hợp chúng vào sản phẩm. Các thành phần có thể được sử dụng lại, thay đổi
dễ dàng, và lặp lại và thử nghiệm là không đau. Hơn nữa, RoR cung cấp tùy chọn
thử nghiệm tích hợp trong q trình coding. Các nhà phát triển không cần phải sử
dụng các plugin bên ngồi hoặc bất kỳ cơng cụ kiểm tra nào. Nó tiết kiệm cả thời
gian và cơng sức của họ và tiền của khách hàng. Do đó, một trong những lợi thế
của Ruby on Rails là khả năng phát triển nguyên mẫu của trang web trong tương lai
nhanh hơn nhiều so với các web framework khác. Khách hàng có thể kiểm tra tính
khả thi của sản phẩm và khắc phục sớm mọi lỗi trong phạm vi và hướng của sản
phẩm, điều này giúp giảm thiểu rủi ro.
o Dễ dàng bảo trì và cập nhật mã
Ruby on Rails được biết đến với sự ổn định và dự đoán. Sửa đổi mã hiện có và
thêm các tính năng mới vào một trang web thật dễ dàng. Điều này đặc biệt có giá trị
cho các dự án dài hạn và khởi nghiệp. Nếu bạn cần cập nhật ứng dụng hoặc cấu trúc
lại mã của nó sau khi được phát triển và triển khai, các quy ước Rails sẽ giúp nhân
viên mới hoặc người làm việc tự do bước lên và tiếp nhận mọi thứ một cách nhanh
chóng. Với các cơng ty mới thành lập, việc tuyển dụng và sa thải nhiều là điển hình,
trong khi chi phí giới thiệu các nhà phát triển mới vào một dự án là một yếu tố quan
trọng. Thật tuyệt khi biết rằng việc thay thế một thành viên trong nhóm sẽ khơng
thành vấn đề nếu bạn phát triển web Ruby on Rails.
o Hiệu quả chi phí
RoR thể hiện cơ hội tiết kiệm tốt. Nếu nhóm của bạn nằm trong ngân sách, có lẽ
bạn muốn tránh chi phí cấp phép của các ngôn ngữ thông thường, đặc biệt là nếu cần
trên các thiết bị khác nhau ở các địa điểm khác nhau. RoR được sử dụng miễn phí
SVTH: Nguyễn Văn Mẫn
GVHD: PGS.TS. Võ Trung Hùng
6