BÁO CÁO TỐT NGHIỆP
đồ án “ Xây dựng diễn đàn
trên mạng”
- Thưa các thầy cô giáo trong hội đồng bảo vệ
- Thưa các thầy cô, và các bạn
Hôm nay em xin được trình bày tới hội đồng bảo vệ đồ án của em trong
đợt thực tập tốt nghiệp này đó là đồ án “ Xây dựng diễn đàn trên mạng”.
Sau thời gian thực tập thì đồ án của em cũng được hoàn thành, đầu tiên em
xin được cảm ơn tất cả các thầy cô giáo đã dạy em trong suốt quá trình học tập
của em trong trường đại học, tất cả các bạn và đặc biêït là thầy Đỗ Như An đã
hướng dẫn em trong quá trình thực tập.
Bây giờ em xin đi vào vấn đề, báo cáo của em hôm nay bao gồm 6 phần:
- Đặt vấn đề
- Các công cụ trợ giúp
- Phân tích chương trình
- Phân tích thiết kế hệ thống
- Xây dựng chương trình
- Kết luận và đánh giá kết quả
Đầu tiên em muốn giới thiệu tổng quan về chương trình của em. Như tất cả
chúng ta đều biết, nếu ai đã từng sử dụng Internet chắc sẽ không ít lần nghe
hoặc sử dụng dòch vụ nhóm thảo luận trên Internet (NewsGroup), đây là dòch vụ
khá phổ biến hiện nay. Khi ta gặp một vấn đề thắc mắc, hoặc đang tìm kiếm
một thông tin gì đó, thì NewsGroup sẽ là người trợ giúp đắc lực cho chúng ta.
Dòch vụ này cho phép người dùng gửi lên mạng Internet những câu hỏi hoặc
những thắc mắc của mình, sau đó nếu một người nào đó, ở đâu đó trên thế giới
cũng tham gia vào nhóm thảo luận đó nếu họ đọc được được mẩu tin của chúng
ta và biết về thông tin về vấn đề đó họ sẽ trả lời cho ta và ngược lại ta cũng có
thể trở thành một người trả lời.
Tác dụng lớn nhất của Diễn đàn trên web là mọi người khi tham gia vào
mạng có thể đặt ra một vấn đề gì đó theo một chủ đề nhất đònh để có thể nhận
được câu trả lời của nhiều người trên toàn thế giới.
Và hướng xây dựng chương trình của em là: Khi nói đến diễn đàn mọi
người liên tưởng đến ngay đến các cuộc bàn luận, phân tích về một vấn đề gì
đó của một nhóm người nào đó. Trong diễn đàn mọi người đưa ra ý kiến của
mình, các câu hỏi của mình để mọi người tham gia phân tích tìm câu trả lời, đó
là diễn đàn trong cuộc sống hằng ngày chỉ diễn ra trong nội bộ một nhóm
người.
Ngày nay, với sự phát triển của mạng Internet ý tưởng đưa các cuộc nói
chuyện, bàn luận xung quanh một vấn đề gì đó cũng được đưa lên mạng. Như
vậy, khi tham gia diễn đàn trên mạng các thành viên không cần phải tập trung
tại một đòa điểm nào đó mà chỉ cần ngồi tại nhà cùng với chiếc máy tính và
tham gia vào mạng là có thể tham gia được diễn đàn. ưu điểm của phương pháp
này là ở chổ sẽ có nhiều người và rất nhiều nơi trên thế giới tham gia vào diễn
đàn và vấn đề đặt ra trên diễn đàn chắc chắn sẽ mau chóng được giải thích.
Diễn đàn trên web là một chương trình ứng dụng được xây dựng dưới dạng
các trang web. Với web, mọi người sử dụng có thể truy xuất đến các trang ứng
dụng này để trao đổi thông tin với người khác.
Do chương trình xây dựng trên web có trao đổi thông tin giữa các người sử
dụng với nhau nên các trang web của ứng dụng nhất thiết phải là các trang web
có nội dung động. Trong những năm gần đây để xây dựng các trang web động
người ta thường hay sử dụng các ngôn ngữ như: VBScript, Jscript, ASP. Ngoài ra
các trang web cho phép người sử dụng trao đổi thông tin với nhau nên phải có
một cơ sở dữ liệu để lưu trữ các thông tin mà người sử dụng trao đổi với nhau.
Và đây là một số công cụ trợ giúp
1. Môi trường làm việc của ứng dụng:
- PWS (Personal Web Server)
- Cơ sở dữ liệu: Microsoft Access 98
- Chuẩn kết nối: ODBC
Web Server là một chương trình ứng dụng. Trên web server chứa những
site mà các máy con có thể truy xuất đến các site này. Thông thường trên máy
có hệ điều hành Windows 98 thì web server là Personal Web Server, trên máy
WindowsNT Server thì dùng phần mềm IIS 4.0.
Về cơ sở dữ liệu, các ứng dụng thực tế hiện nay người ta thường hay sử
dụng SQL Server. Nhưng trong chương trình ta chỉ dùng cơ sở dữ liệu để lưu trữ
thông tin vào các bảng nên việc chọn SQL Server hay MS Access là không
quan trọng.
Về chuẩn ODBC, ODBC là viết tắt của Open Database Connectivity (hệ
thống kết nối CSDL mở). ODBC được coi như là một giao thức chuẩn để giao
tiếp giữa chương trình ứng dụng với hệ thống các bảng của cơ sở dữ liệu.
Các công cụ lập trình
- Jscript: Jscript được phát triển bởi Microsoft nhằn làm tăng tính năng cho
trình duyệt Internet Explorer.
- Vbscript: Vbscript cũng do Microsoft phát triển. Cũng như Jscript,
Vbscript được chèn vào trang web để làm tăng thêm tính năng tương tác cho
trang web.
- ASP: Microsoft Active Server Page (ASP) là một môi trường kòch bản
trên máy chủ dùng để tạo ra những ứng dụng Web động và có tương tác. ASP
có một tập các đối tượng có sẵn với nhiều tính năng phong phú, khả năng hỗ trợ
VBScript và JScript cùng với một số thành phần ActiveX khác kèm theo.
- Visual Inter Dev: Visual InterDev là một phần mềm được phát triển bởi
Microsoft. Đây là một phần mềm có hỗ trợ cho lập trình thiết kế web đặc biệt
phần mềm có cho phép người lập trình có thể nhìn thấy trực tiếp trang web của
mình đang thiết kế. Visual InterDev hỗ trợ rất mạnh cho việc lập trình các trang
web có tương tác.
- DHTML: Là sự kết hợp giữa các thuộc tính của HTML, JavaScript và
Vbscript.
Sau khi đã trình bày những khái niệm cơ bản cũng như những công cụ
trợ giúp để xây dựng đề án này thì bây giờ em xin được phân tích chương trình:
Phân tích chương trình bao gồm :
Đầu tiên là tổng quát về chức năng: Bao gồm
- Gửi bài lên diễn đàn.
- Xem bài đã được gửi theo các chủ đề khác nhau
- Trả lời bài đã được gửi
- Tìm kiếm một bài
- Đăng ký trở thành thành viên của diễn đàn
- Đánh dấu bài ưa thích
- Xoá các bài đã có trên diễn đàn
- Thêm người sử dụng
- Xoá người sử dụng
- Thêm chủ đề cho diễn đàn
- Xoá chủ đề.
Các vấn đề khi quyết các chức năng này là:
Thiết kế tổng quát ứng dụng: nhằm giúp người lập trình dễ phát triển ứng
dụng một cách có tổ chức, đúng hướng, đúng yêu cầu đã đề ra.
Thiết kế cơ sở dữ liệu: đây là phần quan trọng, có liên quan đến tính tối ưu
của hệ thống.
Xây dựng giao diện: tạo điều kiện thuận lợi cho người sử dụng khi gửi các
yêu cầu của mình đến web server.
Viết các trang web để thực hiện các chức năng của chương trình: dựa vào
ASP và các ngôn ngữ script để tạo ra những modul cho chương trình.
Kiểm tra, sửa lỗi chương trình
SƠ ĐỒ QUI TRÌNH HOẠT ĐỘNG CỦA CÁC TRANG TRONG ỨNG
DỤNG WEB FORUM
Xem nội dung 1 bài
Gửi bài mới
Về trang hiển thò
Quay về trang
hiển thò
Trang Login
Trang đăng
ký
Thành công
Thất bại
Danh sách
bài ghi nhớ
Ghi nhớ bài
Xem
nội
dung
1 bài
Xem, gửi bài
Tìm kiếm
Đăng ký
Login
Danh sách
Xoá
bài
Hiển thò các
bài
Nội dung bài
Soạn và gửi
Trang nhập ND
cần tìm kiếm
Hiển thò kết
quả tìm kiếm
là
danh sách
Cụ thể qui trình hoạt động như sau:
- Qui trình gửi và xem bài: Trang đầu tiên sẽ là trang hiển thò danh sách
các bài được gửi dưới dạng các siêu liên kết. Người sử dụng muốn xem nội
dung của một bài nào đó thì kích vào tiêu đề của bài. ở trang xem nội dung
người sử dụng có thể trả lời cho bài có nội dung vừa đọc. Ngoài ra người sử
dụng có thể gửi một bài mới.
- Qui trình tìm kiếm bài: Khi người sử dụng muốn tìm kiếm một bài nào
đó, sẽ có một trang tìm kiếm và ở trang tìm kiếm
+ Tìm kiếm theo chủ đề của bài gửi
+ Tìm kiếm theo nội dung của bài gửi
+ Tìm kiếm những bài trong một khoảng thời gian giới hạn nào đó
- Qui trình đăng ký và login của người sử dụng, ghi nhớ bài: Để trở thành
một thành viên của diễn đàn, người sử dụng phải đăng ký một account và sẽ
được hệ thống cấp một tên truy nhập và mật khẩu riêng cho người đó.
Khi yêu cầu được đăng ký, một trang đăng ký bao gồm các ô để nhập
thông tin được hiện ra, người sử dụng sẽ nhập các thông tin vào các ô này và
gửi đi, nếu được hệ thống chấp nhận thì người đăng ký sẽ nhận được một thông
báo chúc mừng thành công, nếu không thành công hệ thống sẽ thông báo lỗi và
hiện ra lại trang đăng ký cho người sử dụng sửa lại các thông tin đăng ký cho
phù hợp.
Khi đã trở thành một thành viên của diễn đàn người sử dụng ngoài việc có
thể sử dụng các trang giống như một người sử dụng bình thường còn có thể đánh
dấu những bài mà mình ưa thích.
- Qui trình hoạt động của người quản lý:
Để forum hoạt động tốt cần phải có một người quản lý, chức năng của
người quản lý bao gồm:
+ Xoá bài
+ Thêm người sử dụng, xóa người sử dụng
+ Thêm chủ đề, xóa chủ đề
Và em xin tiếp tục được trình bày phần phân tích thiết kế hệ thống của
chương trình
Như đã nói trong phần giới thiệu tổng quan về hoạt động của diễn đàn,
người sử dụng khi gửi một bài lên diễn đàn thì các thành phần của một bài gửi:
thông tin về người gửi, tiêu đề bài gửi, nội dung đều phải được lưu trữ trong
cơ sở dữ liệu trên máy chủ.
Thông thường người ta thường dùng các mô hình cơ sở dữ liệu quan hệ để
chứa các thông tin về bài gửi như SQL Server hay MS Access.
Trong đồ án này em chọn cơ sở dữ liệu là Access để lưu các thông tin về
bài gửi. Do có liên quan nhiều đến cơ sở dữ liệu, đồng thời các thông tin của
bài gửi đòi hỏi phải được tổ chức một cách hợp lý và chặt chẽ nên trong phần
này chủ yếu trình bày về phần phân tích và thiết kế hệ thống.
Những thông tin cần quản lý trên cơ sở dữ liệu
Thông tin các bài mà người sử dụng gửi lên diễn đàn, mỗi bài phải có mã
riêng, cấp của bài đó, nội dung của bài là gì.
Thông tin về người dùng, khi người sử dụng đăng ký thì các thông tin về
người sử dụng như: tên truy nhập, mật khẩu, cấp của người sử dụng (cấp Admin
và cấp User) phải được lưu trữ trên cơ sở dữ liệu.
Nội dung của bài sau khi gửi sẽ được tách ra thành các từ khoá, các từ
khoá này sẽ tạo nên các bảng chỉ mục dùng cho mục đích tìm kiếm thông tin về
các bài gửi đã gửi lên diễn đàn. Do vậy các từ khoá, các chỉ mục cũng phải
được lưu giữ.
Quản lý các chủ đề của bài gửi, các chủ đề này do người quản lý diễn đàn
qui đònh và có thể thêm bớt.
Quản lý các thông tin ghi nhớ bài của tất cả các thông tin về người sử
dụng: họ tên, e-mail
Và đây là mô hình Sơ đồ dòng dữ liệu
SƠ ĐỒ DÒNG DỮ LIỆU DFD
U
s
e
Gởi
bài lên diễn
đàn
Admin
gởi yêu cầu
Ye
â
u cầu tìm kiếm các
thông tin trên diễn đàn
Yêu cầu xem các bài
trên diễn đàn
Các bài viết trên diễn đàn
Kết quả tìm kiếm
Các trang Web
Admin Login
Xem các bài
đã được gởi
Phân tích bài
được gởi
Tìm kiếm
Xử lý yêu
cầu của Admin
Login
A
d
U
s
e
r
Xử lý yêu
cầu của User
đã đăng ký
User Login
User gởi yêu cầu
Đăng ký
Đăng ký
Bảng chỉ mục, bảng từ khoá
Dữ liệu các bài gởi
Danh sách User
Các chủ đề của forum
User
chưa
đăng ký
User đã
đăng ký
Admin
Qua sơ đồ dòng dữ liệu ta thu thập được :
a. Dữ liệu về bài gửi
Mỗi bài gửi bao gồm các thuộc tính như sau:
- Mã bài gửi
- Cấp của bài gửi
- Mã bài cha (nếu là bài mới trường này có giá trò là 0, bài trả lời trường
này chứa mã bài của bài được nó trả lời)
- Thứ tự
- Thuộc chủ đề nào
- Tiêu đề của bài viết
- Họ tên người gửi
- Đòa chỉ mail của người gửi
- Ngày giờ gửi
- Nội dung của bài gửi.
b. Dữ liệu về người sử dụng
Mỗi người sử dụng khi đăng ký sẽ có những thuộc tính sau:
- Mã người sử dụng
- Tên truy nhập
- Mật khẩu
- Quyền truy cập (Admin hay User)
- Đòa chỉ Email
c. Dữ liệu về chủ đề của các bài gửi
Các chủ đề của các bài trên web forum có các thuộc tính sau:
- Mã chủ đề
- Tên chủ đề
Từ đó ta xây dựng Mô Hình Quan Niệm Dữ Liệu:
ChủĐề
Ghinhớbài
BàiGửi
MãChủĐề
TênChủĐề
Mã
Mãbài
MãNgườiSD
MãNgườiSD
TênTruyNhập
MậtKhẩu
QuyềnTruyCập
NgườiSD
MãTừKhoá
TừKhoá
TừKhoá
MãChỉMục
MãBàiGửi
MãTừKhoá
ChỉMục
MãBàiGửi
Cấp
MãBàiTrước
ThứTự
MãChủĐề
Tiêu Đề
NgườiGửi
Email
NgàyGiờGửi
NộiDung
1
-
1
0
-
n
1
-
1
0
-
n
1
-
1
0-n
1-n
1
-
1
1
-
1
0
-
n
Và sau đây là phần XÂY DỰNG CHƯƠNG TRÌNH
Phần này gồm hai phần chính:
Phần 1: Phân tích các chức năng chung như thuật toán quản lý các bài như
thế nào, trật tự cách hiển thò thông tin về các bài lên web.
Phần 2: Đi sâu vào cách viết các trang theo yêu cầu của người sử dụng: ví
dụ các trang đáp ứng yêu cầu của người quản lý, của người sử dụng
Đầu tiên em xin trình bày việc quản lý các bài gởi lên diễn đàn:
Tất cả các bài viết gửi lên diễn đàn đều có đặc điểm chung giống nhau như
sau:
- Thuộc về một chủ đề nào đó
- Có thể là câu hỏi hoặc là câu trả lời cho một vấn đề nào đó.
Vậy để quản lý các bài viết trên diễn đàn ta phải biết:
- Bài đó thuộc chủ đề nào
- Phải phân biệt được đâu là câu hỏi đâu là câu trả lời
- Nếu là câu trả lời thì phải biết trả lời cho bài nào
Để dễ hình dung cách quản lý các bài viết trên diễn đàn ta đưa ra ví dụ sau:
Giả sử ta đã có các bài gửi có mã bài từ: 1 đến 8 trong đó có cả các câu
hỏi và câu trả lời. Khi tham gia vào diễn đàn, muốn xem các bài đã gửi chúng
ta sẽ thấy xuất hiện một trang trông giống như hình sau:
Hình 20: Trang hiển thò các bài viết
Như đã thấy trong hình, một bài viết được hiển hiện lên trang web bao
gồm các thông tin về: tiêu đề của bài viết, người gửi, ngày giờ gửi. Tiêu đề
được hiển thò dưới dạng một siêu liên kết và khi người sử dụng nhắp vào đây sẽ
xem được nội dung của bài viết.
Và các bài viết sẽ được lưu trữ trong cơ sở dữ liệu như sau:
Mãb
ài
Cấpb
ài
Bàich
a
Thứt
ự
Tiê
ề
Chủđe
à
Ngườig
ưi
Nộidun
g
1 1 0 1
2 1 0 1
3 2 2 1
4 2 2 2
5 3 3 1
6 4 5 1
7 1 0 1
8 2 7 1
Cấp của bài viết
Để có thể quản lý được bài viết gửi lên diễn đàn thì mỗi một bài được gửi
sẽ được gán cho một mã số, nhưng để có thể quản lý theo kiểu phân cấp giữa
bài cha, bài con thì phải có thêm một trường phân bài ra thành các cấp khác
nhau.
Cấp của bài phải tuân theo qui tắc sau đây:
- Bài được gửi lần đầu tiên không trả lời cho bài nào cả sẽ là cấp 1
- Các bài trả lời cho bài cấp 1 sẽ có cấp là 2
- Bài trả lời cho bài cấp 2 sẽ có cấp là 3
Lưu trữ mã bài cha
Đây là cách đi kèm với cách xác đònh cấp bài để xem bài nào là bài cha,
bài nào là bài con và bài con đó thuộc về bài cha nào.
Trường bài cha được tổ chức theo cách:
- Nếu là bài gửi đầu tiên, không trả lời cho một bài nào cả thì giá trò của
trường này bằng 0
- Nếu là bài trả lời thì giá trò của trường này là số mã bài của bài cha (bài
mà nó trả lời).
Ví dụ:
Nhìn vào trong bảng sau ta có thể thấy được qui luật tổ chức trường bài cha
như thế nào. Bài 1, 2, 7 là các câu hỏi, bài đầu tiên. Bài 3, 4 là bài trả lời của
bài 2, 5 là bài trả lời của bài 3
Cách tổ chức trường thứ tự
Để giúp cho việc xác đònh thứ tự của các bài gửi lên diễn đàn. Được tổ
chức theo luật sau: câu hỏi (không trả lời cho bài nào cả) có thứ tự bằng 1.
Câu trả lời cho một bài theo luật sau:
- Nếu có một câu trả lời thì thứ tự của câu trả lời bằng 1
- Nếu có từ hai câu trả lời cho một bài (hai câu trả lời có cấp bài bằng
nhau) thì bài trả lời thứ nhất cũng có giá trò thứ tự bằng 1, bài trả lời thứ hai sẽ
có thứ tự bằng 2
Chúng ta sẽ thấy được tác dụng của trường này một cách rõ rệt là khi in
danh sách các bài theo qui luật cây thư mục.
Hiển thò bài theo qui luật cây thư mục
Với cách quản lý trên ta có thể viết những đoạn chương trình cho phép
hiển thò các bài viết theo luật hiển thò của một cây thư mục, tức là bài con hiển
thò ngay sau dưới bài cha. Hình vẽ sau hiển thò tất cả các bài trong bảng trên.
1
2
3
4
5
7
8
2
3
5
6
4
1
Bài cha
Thứ tự
1
0
1
2
7
1
3
0
1
4
2
1
5
3
1
6
5
1
7
2
2
8
0
1
Cấp bài
Mã bài
Trong hình trên, đầu tiên bài cấp 1 sẽ được hiển thò đầu tiên, sau đó là các
cấp lớn hơn nhưng phải là bài con của bài đã hiển thò. Ví dụ bài 7 có một bài
con là bài 8. Tương tự cho các bài khác. Trong các hiển thò trên ta thấy bài bài 2
có tất cả 4 bài trả lời, trong đó có hai bài trả lời cùng cấp là 3 và 4, như vậy
trường thứ tự của chúng khác nhau để có thể in ra được đúng trật tự (in ngang
hàng với bài 3).
Tiếp theo em xin trình bày việc xây dựng trang web dựa vào yêu cầu
người sử dụng
1. Xem bài: Để xem được nội dung một bài cần phải biết bài đó thuộc chủ
đề nào và có mã số bằng bao nhiêu. Do vậy, khi một người tham gia vào diễn
đàn thì trang đầu tiên mà người sử dụng nhìn thấy là một danh sách các chủ đề
của diễn đàn.
Thuật toán hiển thò danh sách các bài theo chủ đề
Đầu vào: chủ đề cần hiển thò
Đầu ra:
Nếu có tồn tại chủ đề:
danh sách các bài theo chủ đề đã chọn
Nếu không tồn tại chủ đề:
hiển thò thông báo không tìm thấy
Hình 22: Chủ đề của diễn đàn
2. Xem nội dung một bài: Để xem nội dung một bài, người sử dụng nhắp vào
liên kết của bài được hiển thò, ví dụ nhắp vào liên kết “Hay dung len” sẽ đọc
được nội dung như hình:
3. Gởi bài:
Hình 23: Xem nội dung bài gửi
- Khi người dùng muốn gửi một bài mới lên diễn đàn, người dùng nhắp vào
nút gửi bài
- Có hai hình thức gửi bài đó là gửi bài mới và gửi bài trả lời.
Hình 24: Trả lời một bài