TRƯỜNG ĐẠI HỌC THỦ DẦU MỘTKHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO TỔNG KẾT ĐỀ TÀI NGHIÊN CỨU KHOA HỌC CỦA SINH VIÊN THAM GIA CUỘC THI SINH VIÊN NGHIÊN CỨU KHOA HỌC NĂM HỌC 2015-2016 XÂY DỰNG ỨN
Trang 1TRƯỜNG ĐẠI HỌC THỦ DẦU MỘT
KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO TỔNG KẾT
ĐỀ TÀI NGHIÊN CỨU KHOA HỌC CỦA SINH VIÊN THAM GIA CUỘC THI
SINH VIÊN NGHIÊN CỨU KHOA HỌC NĂM HỌC 2015-2016
XÂY DỰNG ỨNG DỤNG TRA CỨU VÀ TRAO ĐỔI THÔNG TIN TRÊN DI ĐỘNG CHO SINH VIÊN TRƯỜNG ĐẠI HỌC THỦ DẦU MỘT
Trang 2TRƯỜNG ĐẠI HỌC THỦ DẦU MỘT
KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO TỔNG KẾT
ĐỀ TÀI NGHIÊN CỨU KHOA HỌC CỦA SINH VIÊN THAM GIA CUỘC THI
SINH VIÊN NGHIÊN CỨU KHOA HỌC NĂM HỌC 2015-2016
XÂY DỰNG ỨNG DỤNG TRA CỨU VÀ TRAO ĐỔI THÔNG TIN TRÊN DI ĐỘNG CHO SINH VIÊN TRƯỜNG ĐẠI HỌC THỦ DẦU MỘT
Trang 3UBND TỈNH BÌNH DƯƠNG CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM TRƯỜNG ĐẠI HỌC THỦ DẦU MỘT Độc lập – Tự do – Hạnh phúc
THÔNG TIN KẾT QUẢ NGHIÊN CỨU CỦA ĐỀ TÀI
1 Thông tin chung
- Tên đề tài: Xây dựng ứng dụng tra cứu và trao đổi thông tin trên di động cho sinh viên trường Đại học Thủ Dầu Một
- Sinh viên thực hiện: NGUYỄN HUY LINH
- Năm thứ: 4 Số năm đào tạo: 4
- Người hướng dẫn: Ths Võ Quốc Lương
2 Mục tiêu đề tài
Xây dựng một hệ thống thông tin hỗ trợ sinh viên của nhà trường Hệ thống giúpcán bộ viên chức nhà trường quản lý và gửi các thông tin, thông báo tới sinh viên mộtcách thuận tiện và nhanh chóng; giúp sinh viên dễ dàng trong việc cập nhật các thông
báo, thông tin hỗ trợ, thông tin sự kiện của trường, khoa, lớp.
3 Tính mới và sáng tạo
Phần mềm ứng dụng hệ thống thông tin hỗ trợ sinh viên được xây dựng trêncác trên các thiết bị di động sử dụng hệ điều hành Android
Sử dụng công nghệ thời gian thực vào hệ thống
4 Kết quả nghiên cứu
Tìm hiểu và xây dựng server giao tiếp với Android theo thời gian thực
Xây dựng ứng dụng Android cho phép sinh viên truy cập, xem điểm, xem thờikhóa biểu, xem lịch thi, xem sổ tay sinh viên, nhận thông báo, gửi thông báo
5 Đóng góp về mặt kinh tế - xã hội, giáo dục và đào tạo, an ninh, quốc phòng và khả năng áp dụng của đề tài
Hiện nay, nhu cầu sử dụng các thiết bị di động đối với sinh viên là vô cùng lớn vàphổ biến hơn máy tính điện tử Ứng dụng “Tra cứu và trao đổi thông tin trên di độngcho sinh viên trường Đại học Thủ Dầu Một” sẽ giúp sinh viên có được một môi trườnggiao tiếp với các thông tin liên quan đến nhà trường nhanh chóng hiệu quả và thiếtthực
Trang 46 Công bố khoa học của sinh viên từ kết quả nghiên cứu của đề tài (ghi rõ họ tên
tác giả, nhan đề và các yếu tố về xuất bản nếu có) hoặc nhận xét, đánh giá của cơ sở
đã áp dụng các kết quả nghiên cứu (nếu có):
Trang 5Nhận xét của người hướng dẫn về những đóng góp khoa học của sinh viên thực hiện đề tài:
Ngày 05 tháng 04 năm 2016
Võ Quốc Lương
Trang 6UBND TỈNH BÌNH DƯƠNG CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM TRƯỜNG ĐẠI HỌC THỦ DẦU MỘT Độc lập – Tự do – Hạnh phúc
THÔNG TIN VỀ SINH VIÊN CHỊU TRÁCH NHIỆM CHÍNH THỰC HIỆN ĐỀ TÀI
I SƠ LƯỢC VỀ SINH VIÊN
Họ và tên: NGUYỄN HUY LINH
Sinh ngày: 01 tháng 01 năm 1994
Nơi sinh: Đồng Tháp
Lớp: D12PM01 Khóa: 2012 - 2016
Khoa: Công Nghệ Thông Tin
Địa chỉ liên hệ: Tổ 2, An Thạnh, Thái Hòa, Tân Uyên, Bình Dương
Điện thoại: 01644233244 Email: huylinhcntt@gmail.com
Ngành học: Kỹ thuật Phần mềm Khoa: Công Nghệ Thông Tin
Kết quả xếp loại học tập: Giỏi
Sơ lược thành tích:
* Năm thứ 3:
Ngành học: Kỹ thuật Phần mềm Khoa: Công Nghệ Thông Tin
Kết quả xếp loại học tập: Giỏi
Sơ lược thành tích:
* Năm thứ 4:
Ngành học: Kỹ thuật Phần mềm Khoa: Công Nghệ Thông Tin
Kết quả xếp loại học tập: Xuất sắc
Ảnh 4x6
Trang 7Sơ lược thành tích:
Ngày 03 tháng 04 năm 2016
Xác nhận của lãnh đạo khoa Sinh viên chịu trách nhiệm chính
(ký, họ và tên)
Nguyễn Huy Linh
Trang 8TRƯỜNG ĐẠI HỌC THỦ DẦU MỘT CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM
KHOA CÔNG NGHỆ THÔNG TIN
Độc lập - Tự do - Hạnh phúc
, ngày tháng năm
Kính gửi: Ban tổ chức Giải thưởng “Tài năng khoa
học trẻ Đại học Thủ Dầu Một”
Sinh viên năm thứ: 4 / Tổng số năm đào tạo: 4
Lớp, khoa : D12PM01, khoa Công nghệ Thông tin
Ngành học: Kỹ Thuật Phần Mềm
Thông tin cá nhân của sinh viên chịu trách nhiệm chính:
Địa chỉ liên hệ: Tổ 2, An Thạnh, Thái Hòa, Tân Uyên, Bình Dương
Số điện thoại di động: 01644233244
Địa chỉ email: huylinhcntt@gmail.com
Tôi làm đơn này kính đề nghị Ban tổ chức cho tôi được gửi đề tài nghiên cứukhoa học để tham gia xét Giải thưởng “Tài năng khoa học trẻ Đại học Thủ Dầu Một”năm 2016
Tên đề tài: Xây dựng ứng dụng tra cứu và trao đổi thông tin trên di động
cho sinh viên trường Đại học Thủ Dầu Một
Tôi xin cam đoan đây là đề tài do tôi thực hiện dưới sự hướng dẫn của
Ths Võ Quốc Lương; đề tài này chưa được trao bất kỳ một giải thưởng nào
khác tại thời điểm nộp hồ sơ và không phải là luận văn, đồ án tốt nghiệp.
Nếu sai, tôi xin chịu trách nhiệm trước khoa và Nhà trường
Xác nhận của lãnh đạo khoa Người làm đơn
chính thực hiện đề tài
ký và ghi rõ họ tên)
NGUYỄN HUY LINH
Trang 9MỤC LỤC
CHƯƠNG 1 TỔNG QUAN VỀ ĐỀ TÀI 1
1.1 Tên đề tài 1
1.2 Lý do chọn đề tài 1
1.3 Mục tiêu của đề tài 1
1.4 Đối tượng, phạm vi nghiên cứu, cách tiếp cận và phương pháp nghiên cứu 1
CHƯƠNG 2 XÁC ĐỊNH YÊU CẦU 3
2.1 Yêu cầu tổng thể 3
2.2 Yêu cầu chức năng hệ thống 3
2.3 Công nghệ sử dụng 4
2.3.1 Ngôn ngữ lập trình Java 4
2.3.2 Hệ điều hành Android 4
2.3.3 Hệ thống Server Node.JS và Socket.IO 5
CHƯƠNG 3 PHÂN TÍCH HỆ THỐNG 7
3.1 Xác định danh sách các Actor 7
3.2 Biểu đồ hệ thống 7
3.3 Danh sách các use case 7
3.4 Biểu đồ use case 8
CHƯƠNG 4 THIẾT KẾ HỆ THỐNG 9
4.1 Biểu đồ tuần tự của hệ thống 9
4.1.1 Gửi thông báo trường 9
4.1.2 Đăng nhập sinh viên 9
4.1.3 Xem điểm 10
4.1.4 Xem thời khóa biểu 10
4.1.5 Xem lịch thi 11
4.1.6 Xem sổ tay sinh viên 11
4.2 Thiết kế cơ sở dữ liệu 12
4.2.1 Thiết kế 12
4.2.2 Mô hình quan hệ dữ liệu 12
4.2.3 Danh sách các quan hệ và mô tả chi tiết 13
4.3 Thiết kế giao diện 19
4.3.1 Giao diện đăng nhập 19
4.3.2 Giao diện trang chủ 19
4.3.3 Giao diện thông báo trường 20
4.3.4 Giao diện gửi và nhận thông báo lớp 21
Trang 104.3.5 Giao diện điểm 21
4.3.6 Giao diện thời khóa biểu 22
4.3.7 Giao diện lịch thi 22
4.3.8 Giao diện xem sổ tay sinh viên 23
4.3.9 Giao diện đổi mật khẩu 24
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 25
TÀI LIỆU THAM KHẢO 26
PHỤ LỤC 27
Trang 11DANH MỤC HÌNH
Hình 2.1: Minh họa Server Node.JS 5
Hình 2.2: Hệ thống Server Node.JS và Socket.IO 6
Hình 3.1: Vai trò các Actor trong hệ thống 7
Hình 3.2: Biểu đồ use case hệ thống 8
Hình 4.1: Biểu đồ tuần tự gửi thông báo trường 9
Hình 4.2: Biểu đồ tuần tự đăng nhập sinh viên 9
Hình 4.3: Biểu đồ tuần tự xem điểm 10
Hình 4.4: Biểu đồ tuần tự xem thời khóa biểu 10
Hình 4.5: Biểu đồ tuần tự xem lịch thi 11
Hình 4.6: Biểu đồ tuần tự xem sổ tay sinh viên 11
Hình 4.7: Mô hình quan hệ dữ liệu 12
Hình 4.8: Giao diện đăng nhập 19
Hình 4.9: Giao diện trang chủ 20
Hình 4.10: Giao diện thông báo lớp 20
Hình 4.11: Giao diện gửi và nhận thông báo lớp 21
Hình 4.12: Giao diện điểm 21
Hình 4.13: Giao diện thời khóa biểu 22
Hình 4.14: Giao diện lịch thi 22
Hình 4.15: Giao diện sổ tay sinh viên 23
Hình 4.16: Giao diện đổi mật khẩu 24
Trang 12DANH MỤC BẢNG
Bảng 4.1: Quan hệ SINHVIEN 13
Bảng 4.2: Quan hệ LOP 13
Bảng 4.3: Quan hệ KHOA 14
Bảng 4.4: Quan hệ MONHOC 14
Bảng 4.5: Quan hệ DIEM 15
Bảng 4.6: Quan hệ THOIKHOABIEU 15
Bảng 4.7: Quan hệ LICHTHI 16
Bảng 4.8: Quan hệ TBLOP 17
Bảng 4.9: Quan hệ TBTRUONG 18
Bảng 4.10: Quan hệ PHAN 18
Bảng 4.11: Quan hệ CHUONG 18
Trang 13Với mong muốn đó, tác giả đề xuất ứng dụng “Tra cứu và trao đổi thông tin
trên di động cho sinh viên trường Đại học Thủ Dầu Một” nhằm tạo ra một môi
trường giao tiếp thân thiện trên các thiết bị di động cho sinh viên có thể tra cứu cácthông tin cần thiết và có thể trao đổi thông tin giữa các thành viên, nhóm và lớp mộtcách hiệu quả
1.3 Mục tiêu của đề tài
Mục tiêu chính của đề tài là xây dựng một ứng dụng tra cứu và trao đổi thông tintrên di động cho sinh viên trường Đại học Thủ Dầu Một đáp ứng chức năng:
- Giúp sinh viên tra cứu các thông tin: xem điểm, xem thời khóa biểu, lịch thi,các thông báo của nhà trường
- Cung cấp cẩm nang về sổ tay dành cho sinh viên
- Cho phép sinh viên có thể trao đổi thông tin với nhau hay gửi các thông báo tớinhiều sinh viên khác
1.4 Đối tượng, phạm vi nghiên cứu, cách tiếp cận và phương pháp nghiên cứu
Đối tượng:
- Hệ thống quản lý sinh viên Trường Đại học Thủ Dầu Một
- Sinh viên trường Đại học Thủ Dầu Một
Phạm vi nghiên cứu:
- Nghiên cứu thực hiện trong phạm vi các chức năng đã đề cập
- Nghiên cứu trong phạm vi ứng dụng di động
Cách tiếp cận
- Tìm hiểu dịch vụ kết xuất thông tin từ ứng dụng khác.
- Tìm hiểu cơ chế trao đổi thông tin trực tuyến qua thiết bị di động.
Phương pháp nghiên cứu:
- Nghiên cứu lý thuyết phân tích thiết kế
Trang 14- Nghiên cứu lập trình trên thiết bị Android
- Nghiên cứu lập trình web service
- Nghiên cứu lập trình chat client – server
- Lập trình hệ thống chat client – server
- Lập trình ứng dụng trên di động
Trang 15CHƯƠNG 2 XÁC ĐỊNH YÊU CẦU
2.1 Yêu cầu tổng thể
Xem thông báo trường
Xem thông báo lớp
Gửi thông báo lớp
5 Xem thời khóa biểu Giúp viên viên xem thời khóa biểu hiện tại
hoặc xem lại của học kỳ trước
7 Tra cứu sổ tay sinh viên Giúp sinh viên dễ dàng tra cứu sổ tay sinh viên
theo các phần, các chương
Trang 16mình
2.3 Công nghệ sử dụng
2.3.1 Ngôn ngữ lập trình Java
Java (đọc như "Gia-va") là một ngôn ngữ lập trình hướng đối tượng (OOP) vàdựa trên các lớp (class) Khác với phần lớn ngôn ngữ lập trình thông thường, thay vìbiên dịch mã nguồn thành mã máy hoặc thông dịch mã nguồn khi chạy, Java được thiết
kế để biên dịch mã nguồn thành bytecode, bytecode sau đó sẽ được môi trường thựcthi (runtime environment) chạy
Java không còn là một ngôn ngữ xa lạ với cộng đồng lập trình Với việc có lợithế khi được sinh ra với tiêu chí “Write Once, Run Anywhere” (WORA) – tức là “Viếtmột lần, thực thi khắp nơi”, cùng với việc liên tiếp cải tiến tốc độ biên dịch chươngtrình, để từng bước thu hẹp khoảng cách về thời gian biên dịch với các ngôn ngữ C,C++, … Java đã thực sự thể hiện vai trò quan trọng của mình trong giới chuyên môn
Cụ thể hơn, với một sự hiểu biết tinh thông về Java, chúng ta hoàn toàn có thểkiếm được thật nhiều tiền từ việc xây dựng các ứng dụng hoặc game trên hệ điều hànhAndroid – một hệ điều hành đang thực sự gây sốt ở không chỉ Việt Nam mà còn trêntoàn thế giới với việc chiếm hầu hết số lượng người sử dụng trên toàn cầu
2.3.2 Hệ điều hành Android
Android là một hệ điều hành dựa trên nền tảng Linux được thiết kế dành cho cácthiết bị di động có màn hình cảm ứng như điện thoại thông minh và máy tính bảng.Ban đầu, Android được phát triển bởi Tổng công ty Android, với sự hỗ trợ tài chính từGoogle và sau này được chính Google mua lại vào năm 2005 Android ra mắt vào năm
2007 cùng với tuyên bố thành lập Liên minh thiết bị cầm tay mở: một hiệp hội gồmcác công ty phần cứng, phần mềm, và viễn thông với mục tiêu đẩy mạnh các tiêuchuẩn mở cho các thiết bị di động Chiếc điện thoại đầu tiên chạy Android được bánvào tháng 10 năm 2008
Android có mã nguồn mở và Google phát hành mã nguồn theo Giấy phépApache Chính mã nguồn mở cùng với một giấy phép không có nhiều ràng buộc đãcho phép các nhà phát triển thiết bị, mạng di động và các lập trình viên nhiệt huyết
Trang 17được điều chỉnh và phân phối Android một cách tự do Ngoài ra, Android còn có mộtcộng đồng lập trình viên đông đảo chuyên viết các ứng dụng để mở rộng chức năngcủa thiết bị, bằng một loại ngôn ngữ lập trình Java có sửa đổi Vào tháng 10 năm 2012,
có khoảng 700.000 ứng dụng trên Android, và số lượt tải ứng dụng từ Google Play,cửa hàng ứng dụng chính của Android, ước tính khoảng 25 tỷ lượt
2.3.3 Hệ thống Server Node.JS và Socket.IO
Node.js là một nền tảng chạy trên môi trường V8 JavaScript runtime - một trìnhthông dịch JavaScript cực nhanh chạy trên trình duyệt Chrome Node.js chạy non-blocking việc hệ thống không phải tạm ngừng để xử lý xong một request sẽ giúp choserver trả lời client gần như ngay tức thì
Hình 2.3.3.1.1: Minh họa Server Node.JS
Trong một môi trường server điển hình LAMP (Linux-Apache-MySQL-PHP),chúng ta có một web server là Apache hoặc NGINX nằm dưới, cùng với PHP chạytrên nó Mỗi một kết nối tới server sẽ sinh ra một thread mới, và điều này khiến ứngdụng nhanh chóng trở nên chậm chạp hoặc quá tải - cách duy nhất để hỗ trợ nhiềungười dùng hơn là bằng cách bổ sung thêm nhiều máy chủ Đơn giản là nó không cókhả năng mở rộng tốt Nhưng với Node.js thì điều này không phải là vấn đề Không cómột máy chủ Apache lắng nghe các kết nối tới và trả về mã trạng thái HTTP - chúng ta
sẽ phải tự quản lý kiến trúc lõi của máy chủ đó May mắn thay, có một số module giúpthực hiện điều này được dễ dàng hơn, nhưng công việc này vẫn gây cho chúng ta mộtchút khó khăn khi mới bắt đầu Tuy nhiên, kết quả thu được là một ứng dụng web cótốc độ thực thi cao
JavaScript là một ngôn ngữ dựa trên sự kiện, vì vậy bất cứ thứ gì xảy ra trênserver đều tạo ra một sự kiện non-blocking Mỗi kết nối mới sinh ra một sự kiện dữliệu nhận được từ một upload form sinh ra một sự kiện data-received việc truy vấn dữ
Trang 18liệu từ database cũng sinh ra một sự kiện Trong thực tế, điều này có nghĩa là mộttrang web Node.js sẽ chẳng bao giờ bị khóa (lock up) và có thể hỗ trợ cho hàng chụcnghìn user truy cập cùng lúc Node.js đóng vai trò của server - Apache - và thông dịch
mã ứng dụng chạy trên nó Giống như Apache, có rất nhiều module (thư viện) có thểđược cài đặt để bổ sung thêm các đặc trưng và chức năng - như lưu trữ dữ liệu, hỗ trợfile Zip, đăng nhập bằng Facebook, hoặc các cổng thanh toán Dĩ nhiên, nó không cónhiều thư viện như PHP, nhưng Node.js vẫn đang ở trong giai đoạn ban đầu và có mộtcộng đồng rất mạnh mẽ ở đằng sau nó
Một khái niệm cốt lõi của Node.js đó là các function bất đồng bộ (asynchronousfunctions) - vì vậy về cơ bản thì mọi thứ chạy trên nền tảng này Với hầu hết các ngônngữ kịch bản máy chủ, chương trình phải đợi mỗi function thực thi xong trước khi cóthể tiếp tục chạy tiếp Với Node.js, bạn xác định các function sẽ chạy để hoàn thànhmột tác vụ nào đó, trong khi phần còn lại của ứng dụng vẫn chạy đồng thời, đó là mộttrong những đặc trưng tiêu biểu của Node.js
Socket một tổ chức mô hình client-server để một trong 2 bên luôn trong tìnhtrạng sẵn sàng trả lời bên kia và ngược lại Để đảm bảo việc này, kết nối giữa Client vàServer phải ở trạng thái "keep-alive" và phải luôn xảy ra quá trình đồng bộ giữaClient-Server Socket sẽ mang lại khả năng trả lời tức thì từ một trong 2 bên khi bênkia đưa ra một sự kiện, thay vì phải thực thi lại một loạt các thủ tục kết nối phức tạpnhư trước, Socket sẽ giúp ứng dụng trở thành ứng dụng thời gian thực
Hình 2.3.3.1.2: Hệ thống Server Node.JS và Socket.IO
Trang 191 Cán bộ Cán bộ, giảng viên nhà trường có quyền gửi tin thông báo trường
2 Sinh viên Sinh viên các lớp, có quyền xem tin theo cấp loại tin
3.2 Biểu đồ hệ thống
Web Server
Hình 3.2.1.1.1: Vai trò các Actor trong hệ thống
3.3 Danh sách các use case
Cho phép người dùng đăng nhập vào hệ
3 Xem thông báo trường Cho phép sinh viên xem thông báo
3 Gửi thông báo trường Cho phép cán bộ gửi thông báo trường
4 Xem thông báo lớp Cho phép sinh viên xem thông báo
Trang 205 Gửi thông báo lớp Cho phép sinh viên gửi thông báo đến
7 Xem thời khóa biểu
Cho phép sinh viên xem thời khóa biểu
8 Xem lịch thi Cho phép sinh viên xem lịch thi theohọc kỳ
Sinh viên
9 Xem sổ tay sinh viên Cho phép sinh viên tra cứu sổ tay sinhviên dễ dàng Sinh viên
10 Đổi mật khẩu Cho phép sinh viên đổi mật khẩu tàikhoản Sinh viên
11 Đăng xuất Cho phép sinh viên đăng xuất khỏi hệthống, xóa dữ liệu trong máy Android Sinh viên
3.4 Biểu đồ use case
Hình 3.4.1.1.1: Biểu đồ use case hệ thống
Trang 21CHƯƠNG 4 THIẾT KẾ HỆ THỐNG 4.1 Biểu đồ tuần tự của hệ thống
4.1.1 Gửi thông báo trường
: Can bo
Man hinh dang nhap Man hinh dang nhap Man hinh gui thong Man hinh gui thong bao truongbao truong He thong xy ly Co so du lieu
1 Nhap tai khoan,mat khau
2 Chon thao tac dang nhap
3 Ham kiem tra tai khoan
4 Kiem tra tai khoan
5 Du lieu
6 Kiem tra
7 Kich hoat
8 Hien thi
9 Nhap thong bao truong
10 Chon thao tac gui
11 Gui den cac may Android
12 Luu vao co so du lieu
Hình 4.1.1.1.1: Biểu đồ tuần tự gửi thông báo trường
4.1.2 Đăng nhập sinh viên
: Sinh vien
Man hinh dang nhap Man hinh dang nhap
Man hinh trang chu Man hinh trang chu
He thong xu ly Co so du lieu
1 Nhap thong tin tai khoan va chon dang nhap
2 Ham dang nhap
3 Kiem tra du lieu