8. Những đóng góp mới của đề tài
2.5. Phân tích hệ thống website tự học
Từ mô tả các chức năng của website, chúng tôi xác định có 3 tác nhân:
- Khách tham quan thông thường, họ là những người duyệt web mà không đăng ký thành viên.
- Thành viên của website. - Ban quản trị website.
2.5.2. Tác vụ trên hệ thống
2.5.2.1. Tác vụ chung cho cả 3 tác nhân
- Xem tin tức về Hóa học (1).
- Gởi các ý kiến đánh giá cho một tin tức nào đó (2).
- Xem danh sách thành viên và chi tiết 1 thành viên nào đó của website (3). - Tham khảo tư liệu (4).
- Gởi các ý kiến đánh giá cho một tư liệu nào đó (5). - Download tư liệu về máy cá nhân (6).
- Gởi tin nhắn cho ban quản trị (7). - Đăng ký thành viên (8).
Về tác vụ (1) thì chúng tôi không cần trình bày thêm.
Tác vụ (2) là tác vụ mở rộng của tác vụ (1), điều đó có nghĩa là người dùng có thể xem tin tức, nhưng không nhất thiết phải gởi ý kiến đánh giá.
Tác vụ (3) là tác vụ thêm vào nhằm làm phong phú thêm cho website, chứ không có trong mô tả chức năng của website. Ở đây, thông tin thành viên là một số thông tin cá nhân cùng thông tin về các lần làm bài có kết quả không dưới 10/20 của thành viên đó.
Tác vụ (4) thì chúng tôi cũng không cần trình bày thêm.
Tác vụ (5) và tác vụ (6) là các tác vụ mở rộng của tác vụ (4). Tác vụ (5) có thể thực hiện với các mục “Kiến thức Hóa học”, “Lịch sử Hóa học”, “Học mà vui, vui mà học” và “Các nhà Hóa học”. Tác vụ (6) có thể thực hiện với các mục “Mô hình flash”, “Video thí nghiệm” và “Sách và bài tập tham khảo”.
Đưa tác vụ (7) vào nhóm các tác vụ chung cho cả 3 tác nhân có vẻ nhập nhằng, nhưng thật ra là hợp logic. Tác vụ này không đòi hỏi phải là thành viên của website mới có thể thực hiện được. Vì vậy, khách tham quan thông thường hay quản trị viên đều có thể thực hiện tác vụ này.
Cũng như tác vụ (7), tác vụ (8) đưa vào nhóm các tác vụ chung cho cả 3 tác nhân là hợp logic. Khách tham quan thông thường có thể thực hiện tác vụ này là điều dễ hiểu. Vậy còn thành viên và ban quản trị thì sao? Một người dùng có thể có
nhiều tài khoản đăng nhập, tất nhiên các tài khoản này đều phải khác tên đăng nhập, vì thế thành viên cũng có thể thực hiện tác vụ này. Về phía quản trị viên thì cũng vậy, 1 quản trị viên có thể tham gia làm thành viên của hệ thống, đó cũng là cách làm thông thường của hầu hết các diễn đàn nhằm giúp tăng số lượng thành viên của diễn đàn.
2.5.2.2. Tác vụ riêng cho thành viên
- Đăng nhập vào hệ thống (9). - Tìm lại mật khẩu (10). - Xem thông tin cá nhân (11). - Làm bài tập trực tuyến (12). - Cập nhật thông tin cá nhân (13). - Tham gia diễn đàn thảo luận (14).
Tác vụ (9) là tác vụ bắt buộc phải thực hiện để có thể thực hiện các tác vụ (11), (12), (13) và (14).
Tác vụ (10) là tác vụ mở rộng của tác vụ (9), có nghĩa là trong quá trình đăng nhập vào hệ thống, nếu người dùng quên mật khẩu thì có thể thực hiện tác vụ này ngay trên form đăng nhập.
Các tác vụ (10), (11) và (13) đều là các tác vụ thêm vào chứ không có trong mô tả chức năng của website. Hai tác vụ (12) và (14), chúng tôi cũng không cần trình bày thêm.
2.5.2.3. Tác vụ riêng cho ban quản trị
- Đăng nhập vào hệ thống (9). - Tham gia diễn đàn thảo luận (14). - Quản lý chung (15).
- Cập nhật thông tin tài khoản của ban quản trị (16). - Xóa log đăng nhập của thành viên (17).
- Xóa tin nhắn cũ do người dùng gởi đến ban quản trị (18). - Khôi phục trạng thái đăng nhập cho thành viên (19).
- Quản lý thành viên (20). - Xóa thành viên (21). - Quản lý tin tức (22).
- Cập nhật, tạo mới 1 tin tức (23). - Quản lý tư liệu (24).
- Cập nhật, tạo mới một tư liệu (25). - Quản lý bài tập (26).
- Cập nhật, upload bài tập mới (27).
Cũng như thành viên, quản trị viên cũng phải thực hiện tác vụ (9) để có thể thực hiện các tác vụ khác.
Khi thực hiện tác vụ (14), các quản trị viên được biết đến với cái tên “admin” trên diễn đàn.
Các tác vụ (16), (17), (18) và (19) là các tác vụ mở rộng của tác vụ (15). Mỗi lần thành viên đăng nhập vào hệ thống đều có lưu lại log đăng nhập, và log này sẽ đầy lên sau một thời gian nào đó. Nhằm tối ưu vùng nhớ cho CSDL, tác vụ (17) thực hiện xóa các log đăng nhập trước thời điểm xóa 1 ngày. Cũng với mục đích tối ưu vùng nhớ cho CSDL, tác vụ (18) thực hiện xóa các tin nhắn cũ của người dùng trước thời điểm xóa 30 ngày. Tác vụ (19) là một tác vụ đặc biệt, tác vụ này giúp quản trị viên có thể khôi phục trạng thái đăng nhập cho thành viên nếu xảy ra 1 lỗi gì đó mà thành viên không thể đăng nhập vào hệ thống.
Tác vụ (21) là tác vụ mở rộng của tác vụ (20). Tác vụ (23) là tác vụ mở rộng của tác vụ (22). Tác vụ (25) là tác vụ mở rộng của tác vụ (24). Tác vụ (27) là tác vụ mở rộng của tác vụ (26).
Hình 2.1. Biểu đồ tương tác giữa tác nhân khách tham quan với các tác vụ của nó Xem tin tức (1)
Gởi ý kiến đánh giá (2) Xem thông tin thành viên (3)
Gởi ý kiến đánh giá (5)
Tham khảo tư liệu (4)
Download tư liệu (6)
Gởi tin nhắn cho ban quản trị (7)
Đăng kí thành viên (8) <<extend> <<extend> <<extend> Syste Khách tham quan
Hình 2.2. Biểu đồ tương tác giữa tác nhân thành viên với các tác vụ của nó Tham gia diễn đàn Thành viên Syste <<extend>> <<extend>> <<extend>> <<extend>> <<include> <<include> <<include>> <<include>
Xem tin tức (1) Gởi ý kiến đánh giá (2)
Gởi ý kiến đánh giá (5) Tham khảo tư liệu (4)
Download tư liệu (6) Gởi tin nhắn cho ban quản trị (7)
Đăng kí thành viên (8)
Xem thông tin cá nhân (11)
Làm bài tập trực tuyến (12)
Cập nhật thông tin cá nhân (13)
Đăng nhập vào website (9) Tìm lại mật khẩu (10) Xem thông tin thành viên (3)
Hình 2.3. Biểu đồ tương tác giữa tác nhân ban quản trị với các tác vụ của nó Ban quản <<extend> <<extend> <<extend> <<extend> <<extend> <<extend> <<extend> <<include> <<extend> <<extend> <<extend> <<include> <<include> <<include> <<include> <<include>
Đăng nhập vào website (9) Xem tin tức (1) Gởi ý kiến đánh giá (2) Xem thông tin thành viên (3) Gởi ý kiến đánh giá (5)
Tham khảo tư liệu (4) Download tư liệu (6) Gởi tin nhắn cho ban quản trị (7)
Đăng kí thành viên (8)
Quản lý chung (15)
Quản lý bài tập (26)
Khôi phục tình trạng khi đăng nhập (19) Cập nhật tài khoản ban quản trị (16)
Syste
Xóa log đăng nhập của thành viên (17)
Xóa thành viên (21) Xóa tin nhắn cũ (18)
Cập nhật, tạo mới tin tức (23) Cập nhật, tạo mới tư liệu (25) Cập nhật, upload bài tập mới (27) Quản lý tư liệu (24)
Quản lý tin tức (22) Quản lý thành viên (20) Tham gia diễn đàn (14)
2.6. Thiết kế hệ thống website tự học 2.6.1. Thiết kế cơ sở dữ liệu 2.6.1. Thiết kế cơ sở dữ liệu
Sau đây, chúng tôi sẽ trình bày chi tiết về các table bên trong CSDL.
- Table có tên Answer: dùng để lưu các câu trả lời cho một chủ đề nào đó trên diễn đàn.
Bảng 2.2. Table Answer
Tên cột Loại dữ liệu Cho phép rỗng Chú giải
Id real no Dùng để phân biệt các câu
trả lời với nhau.
Ques int no Id của chủ đề mà câu trả
lời này thuộc về.
Mem int no Id của thành viên post câu
trả lời này.
Cont nvarchar(MAX) no Nội dung câu trả lời.
Date datetime no Thời điểm câu trả lời
được post.
- Table có tên City: dùng để lưu các địa phương (cấp tỉnh/thành) trên lãnh thổ Việt Nam.
Bảng 2.3. Table City
Tên cột Loại dữ liệu Cho phép rỗng Chú giải
Id int no Dùng để phân biệt các địa
phương với nhau.
City nvarchar(50) no Tên của địa phương.
- Table có tên Comment: dùng để lưu các ý kiến đánh giá cho một tin tức hay một tư liệu nào đó.
Bảng 2.4. Table Comment
Tên cột Loại dữ liệu Cho phép rỗng Chú giải
kiến đánh giá với nhau.
Type nvarchar(50) no Dùng để phân biệt tin Hóa
học, tin giáo dục, tư liệu.
News int no Id của tin tức hay tư liệu
mà ý kiến này thuộc về.
Title nvarchar(MAX) no Tiêu đề của ý kiến.
Cont nvarchar(MAX) no Nội dung của ý kiến.
Name nvarchar(MAX) no Tên người post ý kiến.
Date datetime no Thời điểm ý kiến được
post.
- Table có tên Document: dùng để lưu thông tin tư liệu “Kiến thức Hóa học”, “Lịch sử Hóa học”, “Học mà vui, vui mà học” và “Các nhà Hóa học”.
Bảng 2.5. Table Document
Tên cột Loại dữ liệu Cho phép rỗng Chú giải
Id int no Dùng để phân biệt các tư
liệu với nhau.
Avatar nvarchar(MAX) yes Địa chỉ lưu ảnh kèm theo
của tư liệu.
Title nvarchar(MAX) no Tiêu đề của tư liệu.
Cont nvarchar(MAX) no Nội dung của tư liệu.
Date datetime no Thời điểm tư liệu được
post.
Type int no
Dùng để phân biệt loại tự liệu: 1 – Kiến thức Hóa học, 2 – Lịch sử Hóa học, 3 – Học mà vui, vui mà học, 4 – Các nhà Hóa học.
- Table có tên Ebook: dùng để lưu thông tin tư liệu “Sách và bài tập tham khảo”.
Bảng 2.6. Table Ebook
Tên cột Loại dữ liệu Cho phép rỗng Chú giải
Id int no Dùng để phân biệt các tư liệu
với nhau.
Title nvarchar(MAX) no Tiêu đề của tư liệu.
FName nvarchar(MAX) no Tên file tư liệu.
Date datetime no Thời điểm tư liệu được post.
Status int no
Tình trạng của tư liệu: 0 – không dùng nữa, 1 – bình thường.
- Table có tên Exercise: dùng để lưu thông tin các bài tập. Bảng 2.7. Table Exercise
Tên cột Loại dữ liệu Cho phép rỗng Chú giải
Id int no Dùng để phân biệt các
bài tập với nhau.
Part int no Chương mà bài tập đó
thuộc về (1 – 7).
Type int no Loại bài tập: 1 – biết, 2
– hiểu, 3 – vận dụng.
Require nvarchar(MAX) no Đề bài.
Ans1 nvarchar(MAX) no Đáp án 1.
Ans2 nvarchar(MAX) no Đáp án 2.
Ans3 nvarchar(MAX) no Đáp án 3.
Ans4 nvarchar(MAX) no Đáp án 4.
RightAns int no Số thứ tự của đáp án
BadWarning int no Trạng thái phản ánh về bài tập: 0 – bình thường, 1 – bài tập có vấn đề.
Date datetime no Thời điểm bài tập được
upload lên website.
Status int no Tình trạng của bài tập:
0 – đã hủy, 1 – đang dùng.
Reference nvarchar(MAX) yes Thông tin nguồn bài
tập.
Pics nvarchar(MAX) yes Địa chỉ ảnh kèm theo.
- Table có tên LogHistory: dùng để lưu các log đăng nhập vào website của thành viên, tránh trường hợp nhiều người dùng khác nhau dùng chung 1 tài khoản đăng nhập vào website vào cùng một thời điểm.
Bảng 2.8. Table LogHistory
Tên cột Loại dữ liệu Cho phép rỗng Chú giải
Mem int no Id của thành viên.
LogIn datetime no Thời điểm đăng nhập vào
website.
LogOut datetime yes Thời điểm đăng xuất khỏi
website.
Status int no
Tình trạng: 0 – chưa thoát khỏi website, 1 – đã thoát khỏi website.
- Table có tên Member: dùng để lưu thông tin các thành viên cũng như quản trị viên của website.
Bảng 2.9. Table Member
Tên cột Loại dữ liệu Cho phép rỗng Chú giải
Id int no Dùng để phân biệt thành
viên, quản trị viên.
Name varchar(50) no Tên đăng nhập.
Pass varchar(50) no Mật khẩu đăng nhập.
Admin int no
Dùng để phân biệt thành viên và quản trị viên: 0 – thành viên, 1 – quản trị viên.
Class nvarchar(MAX) yes Thông tin lớp.
School nvarchar(MAX) yes Thông tin trường.
District nvarchar(MAX) yes Thông tin quận/huyện.
City int yes Id của địa phương.
Email varchar(MAX) yes Thông tin email.
Phone varchar(50) yes Thông tin số điện thoại.
Avatar nvarchar(MAX) yes Địa chỉ ảnh hiện thị của
thành viên, quản trị viên.
SecQues1 nvarchar(MAX) yes Câu hỏi bảo mật 1.
SecAns1 nvarchar(MAX) yes Câu trả lời bảo mật 1.
SecQues2 nvarchar(MAX) yes Câu hỏi bảo mật 1.
SecAns2 nvarchar(MAX) yes Câu trả lời bảo mật 2.
SumMark real yes Tổng điểm của thành viên.
DisQues int yes Số chủ đề thành viên đã
tạo trên diễn đàn.
DisAns int yes Số trả lời thành viên post
trên diễn đàn.
Date datetime yes Thời điểm trở thành thành
- Table có tên Message: dùng để lưu các tin nhắn do người dùng gởi đến cho ban quản trị.
Bảng 2.10. Table Message
Tên cột Loại dữ liệu Cho phép rỗng Chú giải
Id int no Dùng để phân biệt các tin
nhắn với nhau.
Name nvarchar(MAX) no Tên người gởi.
Subject nvarchar(MAX) no Tiêu đề của tin nhắn.
Cont nvarchar(MAX) no Nội dung của tin nhắn.
Date datetime no Ngày tin nhắn được gởi
đến.
Status int no Trạng thái tin nhắn: 0 –
chưa xem, 1 – đã xem. - Table có tên Multimedia: dùng để lưu các tư liệu “Mô hình flash” và “Video thí nghiệm”.
Bảng 2.11. Table Multimedia
Tên cột Loại dữ liệu Cho phép rỗng Chú giải
Id int no Dùng để phân biệt các tư
liệu với nhau.
Title nvarchar(MAX) no Tiêu đề của tư liệu.
FName nvarchar(MAX) no Tên file tư liệu.
Date datetime no Thời điểm tư liệu được
post.
Status int no
Tình trạng của tư liệu: 0 – không dùng nữa, 1 – bình thường.
Type varchar(10) no Dùng để phân biệt loại tư
- Table có tên là News: dùng để lưu các tin Hóa học (“Hóa học và đời sống”, “Hóa học và môi trường” và “Hóa học hiện đại”).
Bảng 2.12. Table News
Tên cột Loại dữ liệu Cho phép rỗng Chú giải
Id int no Dùng để phân biệt các tin
với nhau.
Avatar nvarchar(MAX) yes Địa chỉ ảnh kèm theo của
tin.
Title nvarchar(MAX) no Tiêu đề của tin.
Cont nvarchar(MAX) no Nội dung của tin.
Date datetime no Thời điểm tin được post.
Type int no
Dùng để phân biệt loại tin: 1 – Hóa học và đời sống, 2 – Hóa học và môi trường, 3 – Hóa học hiện đại. - Table có tên PedagogyNews: dùng để lưu các tin giáo dục.
Bảng 2.13. Table PedagogyNews
Tên cột Loại dữ liệu Cho phép rỗng Chú giải
Id int no Dùng để phân biệt các tin
với nhau
Avatar nvarchar(MAX) yes Địa chỉ ảnh kèm theo của
tin
Title nvarchar(MAX) no Tiêu đề của tin
Cont nvarchar(MAX) no Nội dung của tin
Date datetime no Thời điểm tin được post
Bảng 2.14. Table Question
Tên cột Loại dữ liệu Cho phép rỗng Chú giải
Id int no Dùng để phân biệt các chủ
đề với nhau
Mem int no Id của thành viên hay quản
trị viên post chủ đề
Title nvarchar(MAX) no Tiêu đề của chủ đề
Cont nvarchar(MAX) no Nội dung của chủ đề
Date datetime no Thời điểm chủ đề được
post
Type int no Dùng để phân biệt loại chủ
đề
- Table có tên Round: dùng để lưu thông tin mỗi lần tham gia làm bài của thành viên.
Bảng 2.15. Table Round
Tên cột Loại dữ liệu Cho phép rỗng Chú giải
Id real no Dùng để phân biệt các lần
làm bài với nhau.
Mem int no Id của thành viên thực hiện
bài làm.
Part int no Số thứ tự của chương mà
bài làm này thuộc về.
STT int no Số thứ tự vòng của bài làm
ứng với chương (Part).
Mark real no Điểm được tính cho lần
làm bài này.
Date datetime no Thời điểm kết quả bài làm
2.6.2. Thiết kế bố cục website
Website gồm có tất cả 26 trang, dưới đây là sơ đồ bố cục các trang và đường đi nối kết giữa các trang.
Hình 2.4. Sơ đồ bố cục các trang Trang diễn đàn chi tiết (2.3) Trang diễn đàn (2.3) Trang đăng nhập vào diễn đàn (2.3) Trang quản lý bài tập (3) Trang quản lý tư liệu (3) Trang quản lý tin tức (3) Trang quản lý thành viên (3) Trang quản lý chung (3) Trang chủ Trang tin tức chi tiết Trang tin tức Trang tin giáo dục Trang tư
liệu chi tiết Trang đăng kí thành viên
Trang mô hình flash Trang video thí nghiệm Trang sách và bài tập tham khảo Trang tìm lại mật khẩu (2) Trang danh sách thành viên Trang chi tiết thành viên Trang tư liệu Trang liên hệ Trang cập nhật thông tin cá nhân (2) Trang làm bài (2) Trang chọn chương bài tập (2) Trang cá nhân của
Trên sơ đồ, chúng tôi dùng (2) để biểu thị trang đó chỉ có thành viên tham gia. Tương tự, (3) biểu thị trang đó chỉ có quản trị viên tham gia, và (2,3) là trang mà cả thành viên và quản trị viên đều tham gia. Các trang không đánh số là các trang mà tất cả người dùng đều có thể tham gia.
- Trang chủ được xem như trung tâm của toàn bộ 26 trang. Trang chủ có các