Mục lục:
LỜI NÓI ĐẦU 5
CHƯƠNG I: TỔNG QUAN HỆ THỐNG 6
1.1. Cổng thông tin là gì? 6
1.2. Ứng dụng của Cổng thông tin sinh viên trong trường đại học hiện nay: 8
1.3. Thực tế trường Đại học Hàng hải đặt ra: 10
1.4. Yêu cầu của đề tài: 11
a. Yêu cầu chung: 11
b. Yêu cầu chức năng với từng mảng: 14
CHƯƠNG II: PHÂN TÍCH THIẾT KẾ HỆ THỐNG 17
2.1. Sơ đồ phân rã chức năng: 17
2.1.1. Hệ thống: 17
2.1.2. Quản trị: 18
2.1.3. Sinh viên: 19
2.1.4. Giảng viên: 20
2.1.5. Nhân viên phòng đào tạo: 21
2.1.6. Nhân viên phòng hành chính: 21
2.1.7. Người dùng: 22
2.2. Sơ đồ mức ngữ cảnh: 22
2.3. Chức năng hệ thống: 23
2.3.1. Sơ đồ dữ liệu mức đỉnh chức năng hệ thống: 23
2.3.2. Sơ đồ dữ liệu mức dưới đỉnh chức năng hệ thống: 23
2.4. Chức năng quản trị: 24
2.4.1. Sơ đồ luồng dữ liệu mức đỉnh chức năng quản trị: 24
2.4.2. Sơ đồ luồng dữ liệu mức dưới đỉnh chức năng quản trị: 24
2.4.2.1. Chức năng cập nhật thông tin: 24
2.4.2.2. Chức năng tìm kiếm: 25
2.5. Chức năng người dùng là sinh viên: 26
2.5.1. Sơ đồ luồng dữ liệu mức đỉnh chức năng người dùng là sinh viên: 26
2.5.2. Sơ đồ luồng dữ liệu mức dưới đỉnh chức năng người dùng là sinh viên: 27
2.5.2.1. Chức năng xem thông tin: 27
2.5.2.2. Chức năng cập nhật thông tin: 28
2.5.2.3. Chức năng tìm kiếm: 29
2.5.2.4. Chức năng quản lý: 29
2.6. Chức năng người dùng là giảng viên: 30
2.6.1. Sơ đồ luồng dữ liệu mức đỉnh chức năng người dùng là giảng viên: 30
2.6.2. Sơ đồ luồng dữ liệu mức dưới đỉnh chức năng người dùng là giảng viên, nhân viên: 30
2.6.2.1. Chức năng xem thông tin: 30
2.6.2.2. Chức năng cập nhật: 31
2.6.2.3. Chức năng tìm kiếm: 32
2.6.2.3. Chức năng quản lý: 32
2.7. Chức năng Nhân viên phòng đào tạo: 33
2.7.1. Sơ đồ luồng dữ liệu mức đỉnh chức năng nhân viên phòng đào tạo: 33
2.7.2. Sơ đồ luồng dữ liệu mức dưới đỉnh chức năng nhân viên đào tạo: 34
2.7.2.1. Chức năng xem thông tin: 34
2.7.2.2. Chức năng cập nhật: 34
2.7.2.3. Chức năng tìm kiếm: 35
2.7.2.4. Chức năng quản lý: 35
2.8. Chức năng nhân viên phòng hành chính: 36
2.8.1. Sơ đồ luồng dữ liệu mức đỉnh chức năng người dùng là nhân viên phòng hành chính: 36
2.8.2. Sơ đồ luồng dữ liệu mức dưới đỉnh chức năng người dùng là nhân viên phòng hành chính: 36
2.8.2.1. Chức năng quản lý: 36
2.8.2.2. Chức năng cập nhật: 37
2.8.2.3. Chức năng tìm kiếm: 37
2.8.2.4. Chức năng quản lý: 38
2.9. Chức năng người dùng: 38
2.9.1. Sơ đồ luồng dữ liệu mức đỉnh chức năng người dùng: 38
2.9.2. Sơ đồ luồng dữ liệu mức dưới đỉnh chức năng người dùng: 39
2.9.2.1. Chức năng xem thông tin: 39
2.9.2.2. Chức năng tìm kiếm: 39
2.9.2.3. Chức năng liên hệ: 39
2.10. Sơ đồ thực thể - quan hệ: 40
2.10.1. Xác định các thực thể: 40
2.10.2. Quan hệ giữa các thực thể: 43
2.10.3. Sơ đồ thực thể - quan hệ ER: 48
2.11. Sơ đồ dữ liệu quan hệ: 48
2.11.1. Sơ đồ dữ liệu quan hệ: 48
2.11.2. Các bảng cơ sở dữ liệu: 50
CHƯƠNG III: CƠ SỞ LÝ THUYẾT VÀ CÔNG CỤ 57
3.1. Framework Yii: 57
3.1.1. Frame work: 57
3.1.1.1. Lịch sử phát triển: 57
3.1.1.2. Mô hình MVC: 58
3.1.2. Yii Framework: 64
3.1.2.1. Model – View – Controller trong Yii: 64
3.1.2.2. Dòng làm việc chuẩn: 65
3.1.2.3 Làm việc với cơ sở dữ liệu: 67
3.1.2.4. Làm việc với Form: 67
3.1.2.5. Các hỗ trợ của Yii: 68
3.1.2.6.Hiệu năng xử lý của Yii: 69
3.2. PHP VÀ LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG 70
3.2.1. Tổng quan về PHP 70
3.2.2. Các kiểu lập trình trong PHP: 71
3.2.3. Một số khái niệm trong lập trình hướng đối tượng: 72
3.2.4. Biểu thức chính qui (Regular Expression): 73
3.2.4.1. Một số hàm hỗ trợ biểu thức chính qui: 74
3.2.4.2. Các ký hiệu biểu thức chính qui 76
3.2.5. Mảng (Array) 77
3.2.6. Một số phương thức thường sử dụng trong PHP. 80
3.3. Hệ quản trị MySQL: 80
3.3.1. Tổng quan về MySQL: 80
3.3.2. Một số hàm PHP cơ bản kết nối và tương tác với CSDL MySQL. 81
3.4. Các công cụ hỗ trợ ứng dụng và phát triển Website: 82
CHƯƠNG IV: CÀI ĐẶT CHƯƠNG TRÌNH. 83
4.1. Chức năng hệ thống: 83
4.2. Chức năng người dùng: 84
4.3. Chức năng quản trị: 85
4.4. Chức năng sinh viên: 88
4.5. Chức năng giảng viên: 92
4.6. Chức năng nhân viên hành chính: 94
98 trang |
Chia sẻ: netpro | Lượt xem: 2087 | Lượt tải: 2
Bạn đang xem trước 20 trang tài liệu Đồ án Xây dựng cổng thông tin quản lý thông tin sinh viên trường đại học hàng hải, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
o về thời gian đóng học phí. . Bao gồm các trường: mã bài viết, tiêu đề, nội dung, ngày tạo, trạng thái, mã tài khoản.
6. Bình luận_bài viết: Lưu trữ thông tin tất cả các bình luận về bài viết của các đối tượng như sinh viên, giảng viên. . . Bao gồm các trường : mã bình luận, nội dung, mã tài khoản, ngày tạo, mã bài viết nhóm.
7. Bài viết_nhóm: Lưu trữ thông tin tất cả các bài viết được gửi giữa tài khoản và các nhóm, hoặc tài khoản với tài khoản, ví dụ bài viết gửi từ 1 tài khoản đến nhóm nào đó. . . Bao gồm các trường: Mã bài viết nhóm, mã bài viết, mã tài khoản, ngày chia sẻ, trạng thái, mã nhóm.
8. Ảnh: Lưu trữ tất cả các ảnh như ảnh đại diện, ảnh hoạt động. . . Bao gồm các trường: mã ảnh, mô tả, link, mã tài khoản, ngày tạo.
9. Album: Lưu trữ tất cả các album ảnh như ảnh đại diện. Bao gồm các trường: mã album, tên album, mô tả, ảnh đại diện, mã tài khoản, ngày tạo, ngày cập nhật.
10. Bình luận_ảnh: Lưu trữ tất cả các tin bình luận về ảnh của tài khoản hay nhóm. Bao gồm các trường: mã bình luận ảnh, nội dung, mã tài khoản, ngày tạo, mã ảnh nhóm.
11. Ảnh_album(Tổng hợp ảnh): Lưu trữ tất cả các ảnh cùng album. Bao gồm các trường: mã ảnh_album, mã ảnh, mã album, ngày tạo.
12. Ảnh_nhóm(Chia sẻ ảnh): Lưu trữ tất cả các ảnh của các nhóm. Bao gồm các trường: mã ảnh_nhóm, mã ảnh, mã nhóm, ngày chia sẻ, trạng thái.
13. Môn học: Lưu trữ tất cả các thông tin tất cả các môn học. Bao gồm các trường: mã môn học, tên môn học, số đơn vị học trình.
14. Điểm: Lưu trữ tất cả các thông tin về điểm của tất cả các môn học. Bao gồm các trường: mã điểm, mã tài khoản, mã môn học, điểm X, điểm Y, Điểm TK_Hệ 10, Điểm TK_Hệ 4, điểm chữ.
15. Học phí: lưu trữ thông tin về học phí của sinh viên. Bao gồm các trường: Mã tài khoản, còn nợ.
16. Cảnh cáo: Lưu trữ tất cả các thông tin cảnh cáo của sinh viên. Bao gồm các trường: mã cảnh cáo, mã tài khoản, cảnh cáo 1, cảnh cáo 2, cảnh cáo 3, ghi chú, năm, TBCHK, TBCTL, TCTL.
17. Tốt nghiệp: Lưu trữ tất cả các thông tin liên quan đến tốt nghiệp của sinh viên đã ra trường. Bao gồm các trường: mã tài khoản, xếp loại, danh hiệu, số vào sổ, nghành đào tạo, hệ đào tạo, ngày, tháng, năm, lớp.
18. Loại tin: Lưu trữ tất cả các loại tin. Bao gồm các trường: mã loại tin, tên loại tin, trạng thái, ghi chú.
19. Tin tức: Lưu trữ tất các cả thông tin về 1 tin tức. Bao gồm các trường: mã tin tức, mã loại tin, tiêu đề, nội dung, ảnh, tiêu đề ảnh, ngày tạo, trạng thái.
20. Sinh viên_Môn học_Nhóm: Lưu trữ tất cả các thông tin liên quan giữa sinh viên, môn học, nhóm ví dụ như sinh viên học môn nào tại 1 nhóm nào. Bao gồm các trường: mã sinh viên_môn học_nhóm, mã tài khoản, mã môn học, mã nhóm.
21. Thời khóa biểu: Lưu trữ tất cả các thông tin về thời khóa biểu của sinh viên. Bao gồm các trường: mã thời khóa biểu, mã môn học, mã lớp học phần, lớp học phần, thứ, tiết bắt đầu, số tiết, phòng học, ngày bắt đầu, ngày kết thúc.
22. Tài liệu: Lưu trữ tất cả các thông tin về tài liệu. Bao gồm các trường: mã tài liệu, tên tài liệu, mô tả, link, mã tài khoản, ngày tạo.
23. Tài liệu_nhóm: Lưu trữ tất cả các tài liệu của 1 nhóm nào đó. Bao gồm các trường: mã tài liệu_nhóm, mã tài liệu, mã nhóm, ngày chia sẻ.
24. Yêu cầu: Lưu trữ thông tin đăng ký yêu cầu gia nhập nhóm của 1 tài khoản nào đó. Bao gồm các trường: id, tiêu đề, nội dung, mã tài khoản, mã nhóm, xác nhận, ngày tạo.
2.10.2. Quan hệ giữa các thực thể:
1. Tài Khoản - Quyền: một Tài Khoản có một Quyền nào đó (có thể là sinh viên, giảng viên, giáo vụ khoa, …), một Quyền có thể có nhiều Tài Khoản khác nhau. Quan hệ giữa Tài Khoản và Quyền là quan hệ n – 1.
2. Tài khoản - Tài khoản_Nhóm: một Tài Khoản thuộc về nhiều Nhóm khác nhau(ví dụ: một Tài Khoản sinh viên thuộc về nhóm khoa, thuộc về nhóm lớp niên chế, nhóm lớp tín chỉ…), một Nhóm có nhiều Tài Khoản khác nhau (ví dụ: một nhóm Khoa Công nghệ thông tin có nhiều Tài Khoản sinh viên khác nhau). Vậy quan hệ giữa Tài Khoản và Nhóm là quan hệ n – n, nên để khử quan hệ này ta có thêm thực thể Tài khoản_Nhóm, quan hệ giữa Tài Khoản và Tài khoản_Nhóm là quan hệ 1 – n.
3. Nhóm - Tài khoản_Nhóm: một Tài Khoản thuộc về nhiều Nhóm khác nhau(ví dụ: một Tài Khoản sinh viên thuộc về nhóm khoa, thuộc về nhóm lớp niên chế, nhóm lớp tín chỉ…), một Nhóm có nhiều Tài Khoản khác nhau (ví dụ: một nhóm Khoa Công nghệ thông tin có nhiều Tài Khoản sinh viên khác nhau). Vậy quan hệ giữa Tài Khoản và Nhóm là quan hệ n – n, nên để khử quan hệ này ta có thêm thực thể Tài Khoản_Nhóm, quan hệ giữa Nhóm và Tài Khoản_Nhóm là quan hệ 1 – n.
4. Tài khoản - Cảnh cáo: một tài khoản có thể bị nhiều lần cảnh cáo, một cảnh cáo chỉ thuộc về 1 tài khoản nhất định nên quan hệ giữa Tài khoản và Cảnh cáo là quan hệ 1 - n.
5. Tài khoản - Học phí: một Tài Khoản sinh viên sẽ có một thông tin nợ Học Phí xác định, một thông tin nợ Học Phí thuộc về một Tài Khoản sinh viên, quan hệ giữa Tài Khoản và Học Phí là quan hệ 1 – 1:
6. Tài khoản - Tốt nghiệp: một Tài Khoản sinh viên sẽ có một thông tin Tốt Nghiệp xác định, một thông tin Tốt Nghiệp có mã xác định sẽ thuộc về một Tài Khoản sinh viên, quan hệ giữa Tài Khoản và Tốt Nghiệp là quan hệ 1 – 1:
7. Tài khoản - Bài viết: một tài khoản nhân viên có thể có nhiều bài viết, một bài viết chỉ thuộc một tài khoản nhân viên nhất định.
8. Tài khoản - Bình luận_Bài viết: một tài khoản có thể có nhiều bình luận cho một bài viết nhóm, một bình luận bài viết nhóm chỉ thuộc 1 tài khoản.
9. Tài khoản - Bài viết_Nhóm: một tài khoản nhân viên có thể có nhiều bài viết nhóm, một bài viết nhóm chỉ có thể của một tài khoản nhân viên, quan hệ giữa Tài khoản và Bài viết_Nhóm là quan hệ 1 - n.
10. Tài khoản - Ảnh: một tài khoản có thể có nhiều ảnh, một ảnh chỉ thuộc 1 tài khoản, quan hệ Tài khoản - Ảnh là quan hệ 1 - n.
11. Tài khoản - Album: một tài khoản có thể có nhiều album, một album chỉ thuộc một tài khoản duy nhất, quan hệ Tài khoản - Album là quan hệ 1 - n.
12. Tài khoản - Bình luận ảnh: một tài khoản có thể có nhiều bình luận cho nhiều ảnh, một bình luận ảnh chỉ thuộc một tài khoản, quan hệ Tài Khoản - Bình luận ảnh là quan hệ 1 - n.
13. Tài khoản - Điểm: một tài khoản có nhiều điểm, một điểm chỉ thuộc 1 tài khoản, quan hệ Tài khoản - Điểm là quan hệ 1 - n.
14. Tài khoản - Tài liệu: một tài khoản có thể có nhiều tài liệu, một tài liệu chỉ thuộc một tài khoản nhất định, quan hệ Tài khoản - Tài liệu là quan hệ 1 - n.
15. Tài khoản - Request: một tài khoản có thể có nhiều request, một request chỉ thuộc một tài khoản, quan hệ Tài khoản - Request là quan hệ 1 - n.
16. Nhóm - Bài viết_Nhóm: một nhóm chỉ thuộc nhiều Bài viết_Nhóm, một Bài viết_Nhóm chỉ có một nhóm, quan hệ Nhóm - Bài viết_nhóm là quan hệ 1 - n.
17. Ảnh_Nhóm - Nhóm: một Nhóm có nhiều ảnh_nhóm, một Ảnh_Nhóm chỉ thuộc một Nhóm, quan hệ Ảnh_Nhóm - Nhóm là quan hệ n - 1.
18. Nhóm - Tài liệu_Nhóm: một Nhóm có nhiều tài liệu_Nhóm, một Tài liệu_Nhóm chỉ thuộc một Nhóm, quan hệ Nhóm - Tài liệu_Nhóm là quan hệ 1 - n.
19. Tin tức - Loại tin: một tin tức chỉ thuộc một loại tin, một loại tin có thể có nhiều tin tức, quan hệ tin tức - loại tin là quan hệ n - 1.
20. Điểm - Môn học: Một điểm chỉ thuộc một môn học, một môn học chỉ có một điểm, quan hệ Điểm - Môn học là quan hệ 1 - 1.
2.10.3. Sơ đồ thực thể - quan hệ ER:
Hình 2.39 Sơ đồ thực thể quan hệ ER
2.11. Sơ đồ dữ liệu quan hệ:
2.11.1. Sơ đồ dữ liệu quan hệ:
Hình 2.40 Sơ đồ dữ liệu quan hệ
2.11.2. Các bảng cơ sở dữ liệu:
1. TaiKhoan (Tài Khoản): Bảng này lưu các thông tin về tài khoản của sinh viên, giảng viên, nhân viên.
STT
Tên trường
Kiểu trường
Độ rộng
Null
1
MaTaiKhoan
Varchar
11
2
TaiKhoan
Varchar
50
3
MatKhau
Varchar
32
4
HoDem
Varchar
32
5
Ten
Varchar
32
6
NgaySinh
Varchar
15
7
GioiTinh
Varchar
1
8
Email
Varchar
100
X
9
DienThoai
Varchar
15
X
10
DiaChi
Varchar
100
X
11
AnhDaiDien
Varchar
100
X
12
NgayTao
Timestamp
13
TrangThai
Tinyint
Default = 1
14
NgayVaoTruong
Varchar
15
X
15
MaQuyen
Int
2. Quyen (Quyền): Bảng này lưu các thông tin về quyền hạn.
STT
Tên trường
Kiểu trường
Độ rộng
Null
1
MaQuyen
Int
11
2
TenQuyen
Varchar
50
3. Nhom (Nhóm): Bảng này lưu các thông tin về Nhóm.
STT
Tên trường
Kiểu trường
Độ rộng
Null
1
MaNhom
Varchar
50
2
TenNhom
Varchar
50
3
MaTaiKhoan
Varchar
11
4
AnhDaiDien
Varchar
100
x
5
MoTa
Text
x
6
NgayTao
Timestamp
4. TaiKhoan_Nhom (Tài Khoản Nhóm): Bảng này lưu các thông tin liên quan giữa Tài Khoản và Nhóm.
STT
Tên trường
Kiểu trường
Độ rộng
Null
1
MaTaiKhoan_Nhom
Int
11
2
MaTaiKhoan
Varchar
11
3
MaNhom
Varchar
50
4
TrangThai
TinyInt
1
Default = 1
5. BaiViet (Bài viết): Bảng này lưu các thông tin về bài viết của nhân viên gửi cho tài khoản .
STT
Tên trường
Kiểu trường
Độ rộng
Null
1
MaBaiViet
Int
11
2
TieuDe
Text
3
NoiDung
Text
4
NgayTao
Timestamp
5
TrangThai
TinyInt
1
Default = 1
6
MaTaiKhoan
Varchar
11
6. BinhLuanBaiViet (Bình luận Bài viết): Bảng này lưu các thông tin về bình luận bài viết.
STT
Tên trường
Kiểu trường
Độ rộng
Null
1
MaBinhLuan
Int
11
2
NoiDung
Text
3
MaTaiKhoan
Varchar
11
4
NgayTao
Timestamp
5
MaBaiViet_Nhom
Int
11
7. BaiViet_Nhom (Bài viết Nhóm): Bảng này lưu các thông tin liên quan giữa Bài viết và Nhóm.
STT
Tên trường
Kiểu trường
Độ rộng
Null
1
MaBaiViet_Nhom
Int
11
2
MaBaiViet
Int
11
3
MaTaiKhoan
Varchar
11
x
4
NgayChiaSe
Timestamp
5
TrangThai
TinyInt
1
Default = 1
6
MaNhom
Varchar
50
x
8. Anh (ảnh): Bảng này lưu các thông tin về ảnh.
STT
Tên trường
Kiểu trường
Độ rộng
Null
1
MaAnh
Int
11
2
MoTa
Text
x
3
Link
Varchar
100
4
MaTaiKhoan
Varchar
11
5
NgayTao
Timestamp
9. Album: Bảng này lưu các thông tin về Album ảnh.
STT
Tên trường
Kiểu trường
Độ rộng
Null
1
MaAlbum
Int
11
2
TenAlbum
Varchar
100
3
MoTa
Text
x
4
AnhDaiDien
Varchar
100
x
5
MaTaiKhoan
Varchar
11
6
NgayTao
Timestamp
7
NgayCapNhat
Timestamp
x
10. BinhLuanAnh (Bình luận Ảnh): Bảng này lưu các bình luận về ảnh.
STT
Tên trường
Kiểu trường
Độ rộng
Null
1
MaBinhLuanAnh
Int
11
2
NoiDung
Text
3
MaTaiKhoan
Varchar
11
4
NgayTao
Timestamp
5
MaAnh_Nhom
Int
11
x
11. Anh_Album (TongHopAnh): Bảng này lưu tất cả các ảnh và album.
STT
Tên trường
Kiểu trường
Độ rộng
Null
1
MaAnh_Album
Int
11
2
MaAnh
Int
11
3
MaAlbum
Int
11
4
NgayTao
Timestamp
12. Anh_Nhom (ChiaSeAnh) (Ảnh Nhóm): Bảng này lưu các ảnh thuộc Nhóm.
STT
Tên trường
Kiểu trường
Độ rộng
Null
1
MaAnh_Nhom
Int
11
2
MaAnh
Int
11
3
MaNhom
Varchar
11
x
4
NgayChiaSe
Timestamp
5
TrangThai
TinyInt
1
Default = 1
13. MonHoc (Môn học): Bảng này lưu các thông tin về môn học.
STT
Tên trường
Kiểu trường
Độ rộng
Null
1
MaMonHoc
Varchar
20
2
TenMonHoc
Varchar
50
3
SoDonViHocTrinh
Int
3
14. Diem (Điểm) : Bảng này lưu các thông tin về Điểm.
STT
Tên trường
Kiểu trường
Độ rộng
Null
1
MaDiem
Int
11
2
MaTaiKhoan
Varchar
11
3
MaMonHoc
Varchar
20
4
DiemX
Varchar
5
x
5
DiemY
Varchar
5
x
6
DiemTK_He10
Varchar
5
x
7
DiemTK_He4
Varchar
5
x
8
DiemChu
Varchar
5
x
15. HocPhi (Học phí): Bảng này lưu các thông tin về học phí.
STT
Tên trường
Kiểu trường
Độ rộng
Null
1
MaTaiKhoan
Varchar
11
2
ConNo
Int
10
16. CanhCao (Cảnh cáo): Bảng này lưu các thông tin về cảnh cáo.
STT
Tên trường
Kiểu trường
Độ rộng
Null
1
MaCanhCao
Varchar
11
2
MaTaiKhoan
Varchar
11
3
CanhCao1
Varchar
10
X
4
CanhCao2
Varchar
10
X
5
CanhCao3
Varchar
10
X
6
GhiChu
Varchar
50
X
7
Nam
Int
10
X
8
TBCHK
Varchar
50
X
9
TBCTL
Varchar
50
X
10
TCTL
Varchar
10
X
17. TotNghiep (Tốt nghiệp): Bảng này lưu các thông tin tốt nghiệp của sinh viên ra trường.
STT
Tên trường
Kiểu trường
Độ rộng
Null
1
MaTaiKhoan
Varchar
11
2
XepLoai
Varchar
50
X
3
DanhHieu
Varchar
50
X
4
SoVaoSo
Varchar
50
X
5
NganhDaotao
Varchar
11
X
6
HeDaoTao
Varchar
11
X
7
Ngay
Varchar
10
X
8
Thang
Varchar
10
X
9
Nam
Varchar
10
X
10
Lop
Varchar
10
X
18. LoaiTin (Loại tin): Bảng này lưu các thông tin về loại tin.
STT
Tên trường
Kiểu trường
Độ rộng
Null
1
MaLoaiTin
Int
11
2
TenLoaiTin
Varchar
100
3
TrangThai
Int
2
4
GhiChu
Varchar
200
x
19. TinTuc (Tin tức): Bảng này lưu các thông tin về tin tức.
STT
Tên trường
Kiểu trường
Độ rộng
Null
1
MaTinTuc
Int
11
2
MaLoaiTin
Int
11
3
TieuDe
Varchar
200
4
Tomtat
Text
5
NoiDung
Text
6
Anh
Varchar
200
x
7
TieuDeAnh
Varchar
200
X
8
NgayTao
TimeStamp
9
TrangThai
Int
2
20. SinhVien_MonHoc_Nhom (Sinh viên Môn học Nhóm): Bảng này lưu các thông tin liên quan giữa sinh viên, môn học, nhóm.
STT
Tên trường
Kiểu trường
Độ rộng
Null
1
MaSV_Mh_Nhom
Int
11
2
MaTaiKhoan
Varchar
11
3
MaMonHoc
Varchar
20
4
MaNhom
Varchar
50
21. ThoiKhoaBieu (Thời khóa biểu): Bảng này lưu các thông tin về thời khóa biểu.
STT
Tên trường
Kiểu trường
Độ rộng
Null
1
MaThoiKhoaBieu
Int
11
2
MaMonHoc
Varchar
20
3
MaNhom
Varchar
50
4
Thu
Varchar
10
5
TietBatDau
Int
5
6
SoTiet
Int
5
7
PhongHoc
Varchar
50
8
NgayBatDau
Varchar
20
9
NgayKetThuc
Varchar
20
22. TaiLieu (Tài liệu): Bảng này lưu các thông tin về tài liệu.
STT
Tên trường
Kiểu trường
Độ rộng
Null
1
MaTaiLieu
Int
11
2
TenTaiLieu
Varchar
50
3
MoTa
Text
4
Link
Varchar
200
5
MaTaiKhoan
Varchar
11
6
NgayTao
TimeStamp
23. TaiLieu_Nhom (Tài liệu Nhóm): Bảng này lưu các thông tin liên quan giữa tài liệu và nhóm.
STT
Tên trường
Kiểu trường
Độ rộng
Null
1
MaTaiLieu_Nhom
Int
11
2
MaTaiLieu
Int
11
3
MaNhom
Varchar
50
4
NgayChiaSe
TimeStamp
24. Request (phản hồi): Bảng này lưu các thông tin phản hồi.
STT
Tên trường
Kiểu trường
Độ rộng
Null
1
Id
Int
11
2
TieuDe
Text
3
NoiDung
Text
4
MaTaiKhoan
Varchar
11
5
MaNhom
Varchar
50
6
XacNhan
TinyInt
1
7
NgayTao
TimeStamp
CHƯƠNG III: CƠ SỞ LÝ THUYẾT VÀ CÔNG CỤ
3.1. Framework Yii:
3.1.1. Frame work:
Khái niệm về frame work rất đa dạng, nhưng thường chia thành 3 loại sau:
- Software framework: là tập các thư viện hoặc lớp có khả
năng tái sử dụng nhiều lần cho hệ thống phần mềm, hoặc các hệ thống con trên nền một hệ tổng thể.
- Application framework: là 1 software framework được sử
dụng để triển khai các cấu trung cơ bản của một ứng dụng trên nền các hệ điều hành xác định.
- Web application framework: là 1 software framework dùng để phát triển các website động, ứng dụng web hoặc các dịch vụ webservice. Các web application framework thường cung cấp các tính năng thông dụng của 1 sản phẩm web, ví dụ các tính năng liên quan đến truy xuất cơ sở dữ liệu, các khung mẫu của code nguồn, cơ chế quản lý session, bảo mật tập trung hay quan trọng nhất là cung cấp các cấu trúc code nguồn có khả năng tái sử dụng, minh bạch.
Lịch sử phát triển:
Vào thời điểm ra đời world wide web thực ra không tồn tại khái niệm
web động, bởi bản thân www vào thời điểm đó dựa trên khái niệm một tập hợp các hypertext viết trên HTML được xuất bản trên các webserver. Bất kỳ sự chỉnh sửa hoặc tái xuất bản một trang nào đều phải được thực hiện trực tiếp bởi chính tác giả của trang đó. Về sau để cung cấp khả năng động cho các trang web, nghĩa là người dùng có thể tương tác trang thông qua dữ liệu nhập vào, chuẩn CGI(Common Gateway Interface) được ra đời, chuẩn này thực sự đã giúp cho các ứng dụng web ngày một phát triển.
Người lập trình luôn muốn tích hợp vào webserver nhiều tính năng
hơn để có thể xây dựng các ứng dụng web với khối lượng truy cập, nội dung truy cập ngày một phức tạp. Trên cơ sở đó rất nhiều các ứng dụng quản lý webserver xuất hiện, ví dụ như Apache Http Server là một trong các ứng dụng quản lý webserver nổi tiếng, nó hỗ trợ rất nhiều các mở rộng của các ngôn ngữ lập trình, cũng như các đặc tính mở rộng cho phép các webserver có thể quản lý được các nội dung động và các ứng dụng phức tạp. Cùng thời điểm các ứng dụng quản lý webserver xuất hiện, các ngôn ngữ lập trình cũng được phát triển dành riêng cho việc sử dụng trên web như ColdFusion, PHP, Active, Server Page, Ruby…. Cùng với thời gian càng ngày càng có nhiều các thư viện mở rộng được tích hợp hay hỗ trợ bởi các webserver, các thư viện này một phần giúp cho người lập trình bớt đi phần nào công việc cũng như cho phép hệ thống hoá việc xây dựng ứng dụng web một cách thống nhất, dần rà các thư viện hình thành những môi trường phát triển mà chúng ta gọi là các web application frame work như: Zend frame work, Ruby On Rails, CodeIniter, Yii Frame….
Mô hình MVC:
3.1.1.2.1. Tổng quan về mô hình MVC
Bắt đầu vào những năm 70 của thế kỷ 20, tại phòng thí nghiệm Xerox
PARC ở Palo Alto. Sự ra đời của giao diện đồ họa (Graphical User Interface) và lập trình hướng đối tượng (Object Oriented Programming) cho phép lập trình viên làm việc với những thành phần đồ họa như những đối tượng đồ họa có thuộc tính và phương thức riêng của nó. Không dừng lại ở đó, những nhà nghiên cứu ở Xerox PARC còn đi xa hơn khi cho ra đời cái gọi là kiến trúc MVC (viết tắt của Model – View – Controller).
MVC là một mẫu thiết kế phần mềm được dùng để tổ chức các đoạn
mã theo cách mà việc xử lý dữ liệu (business logic) và việc biểu diễn dữ liệu là tách rời nhau. Tiền đề nằm sau hướng tiếp cận này là nếu bussiness logic được nhóm vào trong một section thì giao diện và tương tác người dùng bao quanh dữ liệu có thể định dạng và tùy biến lại mà không có ảnh hưởng đến việc phải lập trình lại bussiness logic. (nghĩa là hình thức và nội dung là tách rời nhau, do đó khi thay đổi hình thức thể hiện thì không ảnh hưởng đến nội dung).
Hầu hết các web application frame work đều dựa vào mô hình MVC.
Kiến trúc này chia thành: các mô hình dữ liệu với các luật xử lý nghiệp vụ dựa trên giao diện người dùng. Tuỳ vào cách chúng xử lý dữ liệu, người ta có thể chia chúng thành:
- Dạng “push-based”: các frame work sử dụng các action để yêu cầu xử lý, sau đó đẩy dữ liệu tới lớp hiển thị để biểu diễn kết quả. Strut, Django, Ruby on Rails hay Spring MVC là các frame work dạng này.
- Ngoài ra các frame có thể dựa trên kiến trúc “pull-based”, nghĩa là ứng dụng sẽ bắt đầu từ lớp hiển thị, sau đó sẽ lấy dữ liệu từ nhiều điều khiển cần thiết để hiển thị, dạng này cho phép nhiều điều khiển có thể được truy xuất trong cùng một hiển thị. Các frame như Strut2, Lift, Tapestry, Jboss, Seam, Wicket và Stripes là thuộc dạng này.
3.1.1.2.2. Mô hình MVC đơn giản:
Model: được giao nhiệm vụ cung cấp dữ liệu cho cơ sở dữ liệu và lưu dữ liệu vào các kho chứa dữ liệu. Tất cả các nghiệp vụ logic được thực thi ở Model. Dữ liệu vào từ người dùng sẽ thông qua View đến Controller và được kiểm tra ở Model trước khi lưu vào cơ sở dữ liệu. Việc truy xuất, xác nhận, và lưu dữ liệu là một phần của Model. Do có 2 vai trò tương đối tách biệt cho nên một Model thường được tách thành các lớp có các domain xử lý khác biệt:
Business Logic: thường là xử lý rule hay policy của nghiệp vụ cũng
như Business Workflows.
Domain data: cung cấp/lưu trữ dữ liệu và việc chuyển đổi dữ liệu
thành các dạng khác nhau theo yêu cầu.
View: hiển thị các thông tin cho người dùng của ứng dụng và được giao nhiệm vụ cho việc nhận các dữ liệu vào từ người dùng, gửi đi các yêu cầu đến controller, sau đó là nhận lại các phản hồi từ controller và hiển kết quả cho người dùng. Các trang HTML, JSP, các thư viện thẻ và các file nguồn là một phần của thành phần View. Trong các Web Framework, View gồm 2 phần chính:
Template file định nghĩa cấu trúc và cách thức trình bày dữ liệu cho user. Ví dụ như layout, color, windows …
Logic xử lý cách áp dụng dữ liệu vào cấu trúc trình bày.
Logic này có thể bao gồm việc kiểm tra định dạng dữ liệu, chuyển đổi định dạng dữ liệu sang một sạng dữ liệu trung gian, lựa chọn một cấu trúc hiện thị phù hợp.
Controller: đảm nhiệm việc cập nhật bộ phận hiển thị (View) khi cần thiết. Bộ điều khiển này nhận dữ liệu nhập từ người dùng, truy xuất các thông tin cần thiết từ mô hình trong (Model), và cập nhật thích hợp phần hiển thị (View). Giao diện với người sử dụng phần mềm được thiết lập nhờ sự tương tác qua lại giữa View và Controller.
Lưu ý: Mục đích của Controller không phải là thành phần trung gian
để tách rời View khỏi Model. Trong thực tế, kiến trúc MVC tách rời dữ liệu và xử lý trung tâm khỏi phần trình bày thông qua cơ chế là Observer Pattern chứ không phải Controller. Nhiệm vụ của Controller là cầu nối giữa người dùng và ứng dụng, không phải giữa View và Model.
3.1.1.2.3. Ưu nhược điểm của MVC:
Ưu điểm
Một lợi điểm của phương pháp MVC là nó bắt buộc phải tạo
ra một sự rành mạch trong liên kết giữa 3 thành phần Model, View và Controller trong ứng dụng. Duy trì được mối quan hệ rành mạch rõ ràng này khiến việc kiểm tra ứng dụng trở nên dễ dàng hơn, đồng thời trách nhiệm của từng thành phần được định nghĩa rõ ràng và cả ba đều làm việc ăn ý với nhau.
Ứng dụng được phát triển một cách độc lập, không bị phụ
thuộc giữa các thành phần, nên việc thêm hoặc xóa một module trong ứng dụng này khá dễ dàng và nhẹ nhàng hơn so với việc phát triển ứng dụng theo mô hình cũ.
Có tính mở rộng do có thể thay thế từng thành phần 1 cách
dễ dàng
Hỗ trợ tốt hơn cho Test Driven Development (TDD) cài đặt
các Unit Tests tự động, xác định và kiểm tra lại các yêu cầu trước khi bắt tay vào viết code.
Hỗ trợ kết hợp rất tốt giữa người lập trình và người thiết kế
giao diện.
Nhược điểm
Đối với dự án nhỏ việc áp dụng mô hình MVC gây cồng
kềnh, tốn thời gian trong quá trình phát triển.Tốn thời gian trung chuyển dữ liệu của các tầng.
3.1.1.2.4. So sánh MVC với kiến trúc 3 tầng:
Giống nhau
Cả hai đều để tách rời programming core/business logic ra
khỏi những phụ thuộc về tài nguyên và môi trường.
Trong một ứng dụng nhỏ: Presentation thể hiện giống như
chức năng của View và Controller. Business và Database thể hiện giống như chức năng của Model. Như thế nhìn ở góc độ này, thì MVC tương đương với kiến trúc 3 tầng (tất nhiên có chồng chéo như hình vẽ)
PRESENTATION
LAYER
CONTROLLER
VIEW
MODEL
DATA ACCESS LAYER
BUSINESS LAYER
3 – tier architecture
MVC architecture
Khác nhau
Trong 3-layers, quá trình đi theo chiều dọc, bắt đầu từ
Presentation, sang Business Logic , rồi tới Data, và từ Data, chạy ngược lại BL rồi quay ra lại Presentation.
So với kiến trúc 3 tầng, kiến trúc MVC có sự tách biệt tầng
Presentation thành view và controller nên sơ đồ hoạt động của MVC có sự thay đổi như sau: Khi Controller bắt được yêu cầu (sự kiện) của người dùng thông qua view, controller sẽ điều hướng hoạt động của ứng dụng; Controllelr sẽ gọi đến model, truy cập cơ sở dữ liệu; Sau khi xử lý logic (hoặc dữ liệu), model sẽ thông báo các thay đổi trạng thái cho view thông qua Observer patern; View nhận thấy sự thay đổi sẽ tự động cập nhật lại trạng thái mới nhất và hiển thị cho người dùng. Trong kiến trúc này, sơ đồ hoạt động có dạng hình tam giác.
Controller
Model
View
Thông thường khi áp dụng thì người ta kết hợp cả 2: MVC
được áp dụng bên phía Client. Sau đó 3 tier được áp dụng như bình thường trên hệ thống client-server. Việc có sử dụng hay là có bọc lẫn nhau giữa MVC và 3-tier là không hoàn toàn bắt buộc, ta có thể sử dụng MVC mà không cần đến 3-tier (với những ứng dụng nhỏ).
3.1.2. Yii Framework:
Yii là một trong số các web application frame work, nó giúp người phát triển web xây dựng được các ứng dụng web phức tạp và triển khai một cách trực quan và chuẩn xác theo thời gian.
Yii được phát âm giống từ Yee hoặc [Ji:], thường được cộng đồng mạng gọi là “Yes it is!”. Điều này thường được ví von khi người phát triển đắn đo xem framework có đáp ứng được các yêu cầu như: nó có nhanh không, co bảo mật không, có chuyên nghiệp không, có sẵn sàng cho việc phát triển website, có sự hỗ trợ không. Và câu trả lời của framework này luôn là “Yes it is!”.
Yii là một web application framework dựa trên chuẩn open-source, nó hoàn toàn miễn phí. Yii được viết trên ngôn ngữ PHP5, nó thực sự chuẩn tắc, dễ dàng thiết kế, dễ dàng phát triển và hơn thế là nó giúp tiết kiệm thời gian. Việc phát triển ứng dụng web trên Yii, giống như việc phát triển các ứng dụng trên máy đơn, Yii hỗ trợ các khả năng mở rộng, bảo trì, kiểm thử và xuất bản ứng dụng một cách hiệu quả, nó thực sự thích hợp đối với mọi project từ đơn giản đến phức tạp.
Yii ra đời vào khoảng năm 2008, và mang đầy đủ các đăc tính hỗ trợ sự phát triển các ứng dụng web trên nền tảng web 2.0. Nó được nhiều lập trình viên lựa chọn để phát triển các ứng dụng web từ đơn giản đến việc xây dựng các ứng dụng web tầm cỡ doanh nghiệp ở mức độ phức tạp. Việc ứng dụng Yii có thể tuân theo kiến trúc sau:
Model – View – Controller trong Yii:
Yii được phát triển dựa triên mẫu thiết kế MVC, đây là một chuẩn mở
được sử dụng rỗng rãi trong thế giới lập trình web. MVC chia các xử lý nghiệp vụ khỏi giao diện, các phần của ứng dụng tồn tại một cách độc lập tương đối thông qua các giao tiếp được chuẩn tắc hoá, điều này ch
Các file đính kèm theo tài liệu này:
- 76465225-Bao-Cao-Tot-Nghiep-Le-Hoang-Duong.doc