LỜI CẢM ƠN
Trước tiên em xin gửi lời cám ơn chân thành sâu sắc tới các thầy cô giáo trong
trường Đại học Công Nghệ Thông Tin Và Truyền Thông nói chung và các thầy cô
giáo trong khoa Công Nghệ Thông Tin nói riêng đã tận tình giảng dạy, truyền đạt cho
em những kiến thức, kinh nghiệm quý báu trong suốt thời gian qua.
Đặc biệt em xin gửi lời cảm ơn đến thầy giáo ThS. Trần Lâm đã tận tình hướng
dẫn, trực tiếp chỉ bảo em trong suốt thời gian làm đồ án. Trong thời gian làm việc với
cô, em không những tiếp thu thêm nhiều kiến thức bổ ích mà còn học được tinh thần
làm việc, thái độ nghiên cứu khoa học nghiêm túc, hiệu quả. Đây là những điều rất cần
thiết cho em trong quá trình học tập và công tác sau này.
Do thời gian hạn hẹp, mặc dù đã nỗ lực hết sức mình nhưng đề tài của em khó
tránh khỏi những thiếu sót. Em rất mong nhận được những ý kiến đóng góp của quý
thầy Cô và các bạn để đồ án của em được hoàn thiện hơn. Một lần nữa em xin chân
thành cảm ơn!
Thái nguyên, tháng 6 năm 2016
Sinh viên
Hoàng Văn Tùng
1
LỜI CAM ĐOAN
Tôi xin cam đoan kết quả đạt được trong luận văn là sản phẩm của riêng cá nhân
tôi, không sao chép lại của người khác. Trong toàn bộ nội dung của luận văn, những
điều được trình bày hoặc là của cá nhân hoặc là được tổng hợp từ nhiều nguồn tài liệu.
Tất cả các tài liệu tham khảo đều có xuất xứ rõ ràng và được trích dẫn hợp pháp. Tôi
xin hoàn toàn chịu trách nhiệm và chịu mọi hình thức kỷ luật theo quy định cho lời
cam đoan của mình.
Thái nguyên, tháng 6 năm 2016
Sinh viên
2.1.3. Bài toán đặt ra ...........................................................................................40
2.2. Phân tích yêu cầu người dùng ..........................................................................41
2.2.1.Yêu cầu của giảng viên...............................................................................41
2.2.2.Yêu cầu của người quản trị.........................................................................41
2.3. Phân tích hệ thống ...........................................................................................41
3
2.3.1. Xác định các Actor và Usecase của hệ thống .............................................41
2.3.2. Đặc tả các Use Case, biểu đồ trình tự, biểu đồ hoạt động, biểu đồ lớp ......44
CHƯƠNG III: XÂY DỰNG HỆ THỐNG .................................................................55
3.1. Giao diện trang đăng nhập cho admin..............................................................55
3.2. Giao diện trang chủ..........................................................................................56
3.3. Giao diện trang thêm mới sự kiện ....................................................................56
3.4. Giao diện trang sửa sự kiện.............................................................................57
3.5. Giao diện trang xóa sự kiện .............................................................................58
3.6. Giao diện quản lý giảng viên ...........................................................................58
3.7. Giao diện trang thêm mới giảng viên ..............................................................59
3.8. Giao diện trang quản lý bộ môn ......................................................................59
3.9. Sự kiện trên google calendar............................................................................60
KẾT LUẬN ...............................................................................................................61
TÀI LIỆU THAM KHẢO .........................................................................................62
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN ........................................................63
4
DANH MỤC HÌNH ẢNH
Hình 2.1 Biểu đồ Use case mức tổng thể....................................................................42
Hình 2.2 Biểu đồ phân rã Use case quản lý event.......................................................42
rất yêu thích chính vì vậy mà mỗi năm trường đại học công nghệ thông tin tuyển sinh
hàng nghìn sinh viên, đồng thời để đáp ứng yêu cầu dạy và đào tạo sinh viên đạt hiệu
quả cao nhà trường cũng không ngừng tăng cường tuyển thêm các giảng viên .Như
vậy, với số lượng giảng viên ngày càng nhiều việc thông báo lịch công tác ,công việc
cho các giảng viên sẽ nhiều hơn và sẽ có một số khó khăn như giảng viên không nhận
được thông báo hoặc nhận thông báo chậm.
Xuất phát từ những vấn đề đó, “Chương trình hỗ trợ khoa công nghệ thông tin
trong việc gửi thông báo đến các giảng viên trong khoa” được thiết kế và xây dựng
nhằm mục đích đơn giản giản hóa việc gửi thông báo đến các giảng viên trong
khoa,giúp nhà trường sắp xếp,quản lý công việc, lịch hẹn nhanh chóng,dễ dàng và đạt
hiệu quả cao hơn.
Cùng với sự chỉ bảo tận tình của thầy Trần Lâm em đã hoàn thành chương trình
này.Trong quá trình phân tích thiết kế hệ thống không thể tránh khỏi những sai sót
mong thầy cô đóng góp ý kiến để chương trình của em được hoàn thiện hơn.
Em xin chân thành cảm ơn!
6
CHƯƠNG I : CƠ SỞ LÝ THUYẾT
1.1 Tìm hiểu về ngôn ngữ PHP, hệ quản trị cơ sở dữ liệu My SQL
1.1.1 Giới thiệu và sử dụng PHP
1.1.1.1 Giới thiệu
a) Lịch sử ra đời:
Năm 1995, Rasmus Lerdorf tạo ra PHP nhằm giải quyết việc viết lặp đi lặp lại
cùng đoạn mã khi tạo các trang. Ban đầu tác giả chỉ có ý định tạo bộ phân giải đơn giản
để thay thế các thẻ lệnh trong file HTML bằng các đoạn mã lệnh viết bằng C.
b) PHP là gì?
Vì tính hữu dụng, khả năng phát triển, PHP đã bắt đầu được sử dụng trong môi
trường chuyên nghiệp và nó đã trở thành “PHP: Hypertext Preprocessor”. Đây là một
thống. Trình máy chủ phân giải mã lệnh PHP có thể tải về miễn phí từ trang web
chính thức của PHP.
Có lẽ yếu tố hấp dẫn nhất của PHP là nó hoàn toàn miễn phí. Với máy tính cấu
hình vừa phải chạy Linux, cài đặt Apache, PHP và MySQL, bạn sẽ có máy chủ có thể
phục vụ được nhiều ứng dụng web tương đối. Toàn bộ chi phí hầu như chỉ là thời gian
bạn bỏ ra để cài đặt các phần mềm.
PHP được xem là một thay thế cho Perl. PHP không thể làm được nhiều như
Perl, thế nhưng chính sự hạn chế này làm cho PHP dễ học và dễ dùng.
Nhiều nhà phát triển dùng kết hợp cả hai: Perl dùng cho những tác vụ chạy bên
dưới còn PHP dùng cho việc xử lý bề mặt. Komodo của Active State Corp là công cụ
miễn phí dùng để phát triển trang PHP.
c) Tại sao cần dùng PHP?
PHP được sử dụng để phát triển website động vì nó tốt, nhanh và dễ dàng nghiên
cứu hơn các giải pháp khác. PHP có khả năng thực hiện và tích hợp chặt chẽ với hầu
hết các cơ sở dữ liệu có sẵn, tính năng bền vững linh động và khả năng phát triển
không giới hạn. Tất cả các đặc tính trên đều miễn phí vì PHP là mã nguồn mở. PHP
vừa dễ với người mới sử dụng và vừa có khả năng làm được mọi thứ, đáp ứng yêu cầu
của lập trình viên chuyên nghiệp.
PHP được sử dụng càng ngày càng nhiều và mới đây đã bắt kịp ASP (vốn được
8
xem là ngôn ngữ kịch bản phổ biến nhất hiện nay). PHP là modun thông dụng cho
Apache (máy chủ Web phổ biến nhất) và nó đã có mặt trên 12 triệu website
1.1.1.2 Sử dụng PHP
a) Thẻ PHP
Có 4 loại khác nhau của thẻ PHP:
- Kiểu Short: là thẻ mặc định mà các nhà lập trình PHP thường sử dụng.
<? echo “Đây là kiểu Short”; ?>
e) Gán giá trị cho biến
Để gán giá trị cho biến, nếu biến đó chưa khai báo trước đó, biến này được coi
như vừa khai báo và khởi tạo. Trong trường hợp biến đã khai báo, biến này chỉ thay
đổi giá trị.
VD:
f) Kiểu dữ liệu của biến trong PHP
PHP hỗ trợ 5 kiểu dữ liệu
- Interger: Sử dụng hầu hết cho giá trị có kiểu dữ liệu là số.
- Double: Sử dụng hầu hết cho giá trị có kiểu dữ liệu là số thực.
- String: Sử dụng hầu hết cho giá trị có kiểu dữ liệu là chuỗi, ký tự.
- Array: Sử dụng hầu hết cho giá trị có kiểu dữ liệu là mảng có các phần tử cùng
kiểu dữ liệu.
- Object: Sử dụng hầu hết cho giá trị có kiểu dữ liệu là đối tượng của lớp.
10
g) Toán tử trong PHP
* Các phép toán số học
Toán tử
+
*
/
%
$a$b
$a=$b
Ý nghĩa so sánh
$a bằng $b
$a bằng và cùng kiểu dữ liệu với $b
$a không bằng $b
$a không bằng $b
$a nhỏ hơn $b
$a nhỏ hơn hoặc bằng $b
$a lớn hơn $b
$a lớn hơn hoặc bằng $b
* Các phép logic
Phép
Ký hiệu
Sử dụng
toán
!
NOT
!$a
Trả về true nếu cả hai biến có giá trị true.
Ngược lại là false.
Trả về true nếu $a hay $b hay cả hai biến có giá
trị true.
h) Kiểm tra biến trong PHP
- is_array(): Kiểm tra biến là array hay không.
11
- is_double(): Kiểm tra biến là double hay không.
- is_float(): Kiểm tra biến là float hay không.
- is_real(): Kiểm tra biến là real hay không.
- is_long(): Kiểm tra biến là long hay không.
- is_int(): Kiểm tra biến là int hay không.
- is_interger(): Kiểm tra biến là integer hay không.
- is_string(): Kiểm tra biến là string hay không.
- is_object(): Kiểm tra biến là object hay không.
- isset(): Nếu biến tồn tại hàm trả về giá trị true, ngược lại trả về false.
- empty(): Cho phép kiểm tra biến tồn tại và không rỗng, có chiều dài khác 0 trả
về true, ngược lại là false.
Để sử dụng tất cả các hàm trên, cần phải truyền vào hàm biến PHP dưới
dạng tham số.
i) Phát biểu có điều khiển
- Phát biểu If: Phát biểu if với một điều kiện, nếu điều kiện là true thì khối lệnh
trong phát biểu If sẽ được thực hiện, điều kiện được khai báo trong dấu ()
VD: $a = 10;
$b=6;
if($a>$b)
biểu switch. Trong trường hợp không khai báo break trong mỗi phát biểu case, nếu
thỏa mãn điều kiện trong case nhưng PHP vẫn tiếp tục thực hiện tiếp các phát biểu
case sau đó.
- Phát biểu While: phát biểu vòng lặp đơn giản nhất trong PHP là vòng lặp while
cho phép bạn thực thi khối lệnh trong while cho đến khi điều kiện của while là true
như cú pháp
While (điều kiện)
{
câu lệnh thực hiện;
}
- Phát biểu do ... while: tương tự như while nhưng kiểm tra điều kiện sau khi
thực hiện khối lệnh.
do
{
câu lệnh thực hiện;
}
while (điều kiện)
13
- Phát biểu vòng lặp for: tương tự như trong phát biểu while, có thể sử dụng
vòng lặp for với 1 giới hạn chỉ định.
for (giá trị khởi đầu; điều kiện giới hạn; giá trị lặp của vòng lặp for)
{
khối lệnh thực hiện;
}
j) Lưu trữ và truy vấn dữ liệu bằng PHP
- Mở file bằng PHP:
+ fopen(tên file, chế độ mở): mở file
cuối cùng của nội dung, dữ liệu sẽ được ghi tiếp phần cuối,
trong trường hợp file không tồn tại chúng sẽ được tạo ra.
Mở dưới dạng append dữ liệu (write & read), nếu nội dung tồn tại,
A+
bắt đầu phần đầu của nội dung, dữ liệu sẽ được ghi tiếp phần đầu, trong
trường hợp file không tồn tại chúng sẽ được tạo ra.
14
- Thiết lập kết nối cơ sở dữ liệu
Để kết nối cơ sở dữ liệu MySQL, cần cung cấp tên Server hay IP (có thể là
localhost) của máy chứa cơ sở dữ liệu MySQL, Username và Password để đăng nhập
làm việc trên cơ sở dữ liệu được mở.
- Thiết lập kết nối:
Int mysql_pcconnect(“serverbname”, “username”, “password”);
if(!$db)
{ echo “Không kết nối được với CSDL”); }
hoặc
$link = mysql_connect(“servername”, “username”, “password”)
or die(“Không kết nối được với CSDL”);
- Mở một CSDL: mysql_select_db(“database name”); hoặc mysql_select_db
(“database name”, $link);
- Đóng kết nối cơ sở dữ liệu: mysql_close(database_connection);
- Truy vấn cơ sở dữ liệu:
Int mysql_query(string sql);
Int mysql_query(string sql, [int db_connect]);
Int mysql_query(string database, string sql, [int db_connect]);
16
1.1.2.2 Các kiểu dữ liệu trong cơ sở dữ liệu MySQL
a) Loại dữ liệu numeric
Loại
Range
Bytes
Diễn giải
Tinyint
-127 ->128 hay 0..255
1
Số nguyên rất nhỏ
Smallint
-32768 -> 32767 hay 0..65535
2
Số nguyên nhỏ
Mediumint
4
Số thập phân dạng
Double(M,D)
±1.7976931348623157308
8
Số thập phân dạng
Số thập phân dạng
Float(M[,D])
Số chấm động lưu
b) Loại dữ liệu Date and Time
Loại
Range
Diễn giải
Date
1000-01-01
Hiển thị
TimeStamp
YYYYMMDDHHMMSS
TimeStamp(14)
YYYYMMDDHHMMSS
TimeStamp(12)
YYMMDDHHMMSS
TimeStamp(10)
YYMMDDHHMM
TimeStamp(8)
YYYYMMDD
TimeStamp(6)
YYMMDD
TimeStamp(4)
YYMM
28-1
Tinytext
28-1
Blob
216-1
Text
216-1
Mediumblob
224-1
Mediumtext
224-1
Longblob
232-1
Longtext
232-1
Select <danh sách cột> From <danh sách bảng>
Where <các điều kiện ràng buộc>
[Group by <tên cột/biểu thức trong Select>]
[Having <điều kiện bắt buộc của Group by>]
[Order by <danh sách cột>]
[Limit fromNumber | To Number]
b) Phát biểu Insert
Insert into <table_name> [<colum_name list>] Values (data_values)
c) Phát biểu Update
Update <table_name>
Set <column>=<value>, [<column>=<value>]
[where <restrictive conditions>]
d) Phát biểu Delete
Delete from <table_name> Where <condition>
1.2. Tìm hiểu google calendar và google calendar API
1.2.1. Tìm hiểu google calendar
1.2.1.1. Khái niệm google calendar
Google Calendar, được gọi trước đây với tên mã "CL2", là một ứng dụng web
để quản lý thông tin liên lạc và quản lý thời gian được cung cấp bởi Google. Nó cho
phép người dùng đồng bộ các địa chỉ liên lạc trong Gmail với một bộ lịch dựa trên
web. Nó bắt đầu được đưa vào sử dụng vào ngày 13 tháng 4, năm 2006 và hiện nay
đang trong giai đoạn beta. Trong khi người dùng không bị yêu cầu phải có một tài
khoản Gmail, nhưng người dùng được yêu cầu phải có một tài khoản Google miễn phí
để có thể sử dụng các phần mềm này.
19
Để sử dụng công cụ này, trước tiên bạn cần đăng nhập vào tài khoản Google cá
nhân trên thiết bị. Nhấn chọn biểu tượng danh sách các ứng dụng của Google hoặc
20
dụng sẽ sử dụng chức năng định vị của thiết bị để cung cấp thông báo ngay khi bạn
vừa vào nhà.
1.2.1.2. Những tính năng chính của Google Calendar
Hiển thị các sự kiện từ lịch làm việc.
Nhanh chóng thêm các sự kiện mới vào lịch.
Nhắc nhở sự kiện.
Chia sẻ lịch với người khác.
Đồng bộ hai chiều với điện thoại.
Cho phép đặt chỗ cho sự kiện.
Kiểm tra lịch khi không có Internet.
Đồng bộ với các ứng dụng trên máy tính.
a) Tạo sự kiện
Mở giao diện Calendar
Nhấp vào nút Tạo ở bên trái màn hình
Viết tên sự kiện trong mục tiêu đề sự kiện
Trong trang chi tiết sự kiện, ở mục Thêm Kháchở bên phải, nhập địa chỉ email
của những người bạn muốn mời tham gia rồi nhấp vào Thêm. Bên dưới là các lựa chọn
21
về quyền hạn của những người được mời, bao gồm: sửa đổi sự kiện, mời thêm người
khác và xem danh sách khách mời.
Ở mục Tài liệu đính kèm, chọn Thêm tài liệu đính kèm để tải những tài liệu liên
quan vào sự kiện cho những người được mời cùng xem và tham khảo trước khi dự họp
kiện có trong lịch. Nhà tổ chức chỉ cần đặt một lịch trên Google Calendar và mời số
lượng người tham dự theo mong muốn của mình. Đặc biệt hơn nữa là khách tham dự
sự kiện có thể đặt chỗ cho sự kiện của bạn qua email hoặc qua Google Calendar ngay
lập tức.
Khi đồng bộ hóa Google Calendar với điện thoại hoặc các ứng dụng khác như
Microsoft Outlook, Apple iCal và Mozilla Sunbird, bạn có thể truy cập vào lịch làm
việc bất cứ khi nào bạn muốn.
f) Xem lịch offline
Ngay cả khi không có mạng Internet, người dùng cũng hoàn toàn có thể kiểm
soát được lịch làm việc của mình với Google Calendar. Với khả năng truy cập
offline, người dùng Google Calendar có thể xem lịch làm việc của mình trên Google
Calendar cho dù bạn đang ở nơi không có kết nối mạng. Chỉ có một chút khác biệt khi
đây chỉ là bản đọc nên người dùng không thể chỉnh sửa gì trên lịch.
23
Với mỗi lịch làm việc, người dùng cũng có thể tùy chọn ẩn hoặc hiện sự kiện đó
trên bảng lịch của mình.
Nhìn chung, Google Calendar là một tiện ích trên Chrome rất hữu dụng và có thể
tiết kiệm cho người dùng rất nhiều thời gian quản lý công việc. Giao diện rất đơn giản
và dễ dàng sử dụng của công cụ quản lý lịch làm việc Google Calendar cũng là một
điểm cộng của tiện ích này. Những lợi ích mà Google Calendar là rất hiệu quả và tiết
kiệm nhiều thời gian quý báu của người dùng.
1.2.2. Google calendar API
1.2.2.1. Google API
API là viết tắt của Application Programming Interface (giao diện lập trình ứng
dụng). Nó là 1 giao tiếp phần mềm được dùng bởi các ứng dụng khác nhau. Cũng
giống như bàn phím là một thiết bị giao tiếp giữa ngườI dùng và máy tính, API là 1
giao tiếp phần mếm chẳng hạn như giữa chương trình và hệ điều hành (HĐH).
của Google Calendar. Việc này bao gồm các lịch thuộc sở hữu của người dùng, các
lịch thuộc sở hữu của người khác nhưng người dùng đã đăng ký, và các lịch mà người
dùng đã nhập khẩu trong trạng thái chỉ-đọc. Các lịch này, mà mỗi cái đều là nguồn cấp
tin riêng của mình, đã xác thực các nguồn cung cấp tin sự kiện công khai và riêng tư, ở
đó các sự kiện cá nhân trong lịch được liệt kê. Bài viết này tập trung vào các nguồn
cung cấp tin sự kiện công khai.
Cơ chế Oauth của google
25