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.. User Chưa đăng
Trang 1Chương trình Xây dựng diễn đàn trên mạng
GVHD: Thầy Đỗ Như An SVTH: Đinh Hoàng Hà
Trang 2Phần 1 Đặt vấn đề
Trang 3Như 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.
Trang 4HƯỚNG XÂY DỰNG CHƯƠNG TRÌNH
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
Trang 5Phần 2 Các công cụ trợ giúp
Trang 6MÔI TRƯỜNG LÀM VIỆC
- PWS (Personal Web Server)
- Cơ sở dữ liệu: Microsoft Access 98
- Chuẩn kết nối: ODBC
CÔNG CỤ TRỢ GIÚP
- 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
- Visual Inter Dev: Visual InterDev là một phần mềm được phát triển bởi Microsoft
- DHTML: Là sự kết hợp giữa các thuộc tính của HTML, JavaScript
và Vbscript.
Trang 7Phần 3 Phân tích chương trình
Trang 8TỔNG QUÁT VỀ CHỨC NĂNG CỦA DIỄN
ĐÀN
- 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ủ đề
Trang 9Các vấn đề khi quyết các chức năng này là:
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
Trang 10Xem 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
Xoá bài
Danh sách User Xoá User
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ác bài gửi
Trang 11Phần 4 Phân tích thiết kế hệ thống
Trang 12Những thông tin cần quản lý trên cơ sở dữ liệu
có mã riêng, cấp của bài đó, nội dung của bài là gì
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
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ữ
diễn đàn qui định và có thể thêm bớt
Trang 13User Chưa đăng ký
User Chưa đăng ký
Gởi bài lên diễn đàn
Admin gởi yêu cầu
Yê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
Tìm kiếm 4
Xử lý yêu cầu của Admin 7
Đăng ký
2 Đă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
Sơ đồ dòng dữ liệu DFD
Trang 14ChủĐề BàiGửi Ghinhớbài MãChủĐề
TênChủĐề
Mã Mãbài gử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
Mô hình quan niệm dữ liệu
Trang 15Phần 5 Xây dựng chương trình
Trang 16QUẢ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
Trang 17Để dễ hình dung ta có ví dụ như 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.
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àicha Thứtự Tiêuđề Chủđề Ngườigửi Nộidung
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
Trang 18
8
24
7
5
6
07023520
11111121
Trang 19XÂY DỰNG TRANG WEB DỰA VÀO YÊU CẦU NGƯỜI SỬ DỤNG
- Xử lý yêu cầu của người chưa đăng ký
- Xử lý yêu cầu của người đã đăng ký
- Xử lý yêu cầu của người quản lý
Trang 20Xem 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
Đầ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
Thuật toán hiển thị danh sách các bài theo
chủ đề
Trang 21Xem 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:
Trang 22Gởi bài:
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
Kiểm tra tính chính xác của các thông tin {email, người gửi, tiêu đề đã nhập đủ chưa}
Kiểm tra có tồn tại mã bài của câu hỏi hay không Nếu có { đây là bài trả lời }
Dựa vào mã bài của câu hỏi xác định:
Cấp của câu hỏi Thứ tự của câu hỏi Gán các biến cho bài con:
Cấp bài = cấp bài cha + 1 Bài cha = mã bài cha ELSE {đây là bài mới}
Cấp bài = 1 Bài cha = 1 Thứ tự = 1 Đưa tất cả các biến vừa có vào cơ sở dữ liệu
Trang 23Đăng ký trở thành thành viên:
Khi người sử dụng tham gia vào diễn đàn, nếu đăng ký một tên truy nhập trên hệ thống thì người sử dụng ngoài các quyền giống như một người sử dụng bình thường (người sử dụng chưa đăng ký) thì còn có khả năng ghi nhớ các bài viết trên diễn đàn
MậtKhẩu, E-mail Kiểm tra phát hiện lỗi (thiếu thông tin, nhập sai yêu cầu)
IF có lỗi then báo lỗi Quay lại trang nhập ELSE
Truy xuất cơ sở dữ liệu chứa dữ liệu người dùng của hệ thống
If tìm thấy một Têntruynhập giống tên vừa đăng
ký THEN Báo lỗi Quay lại trang nhập Else {thông tin đăng ký hợp lệ}
Trang 24Xử lý yêu cầu của người đã đăng ký:Đối với người đã đăng ký ngoài các quyền như một người sử dụng chưa đăng ký như: gửi bài, xem bài, tìm kiếm còn có thêm được chức năng ghi nhớ bài
Ghi nhớ bài:
Khi người sử dụng có đăng ký trên hệ thống một tên truy nhập thì
hệ thống cho phép người sử dụng sau khi login vào hệ thống có thể lưu lại được những bài mà họ cảm thấy cần phải nhớ
Các bài được chọn sẽ được lưu vào trong bảng ghi nhớ sau:
Tên trường Kiểu dữ liệu Giải thích
Mãbàigửi Number
Trang 25Xử lý yêu cầu của người quản lý:Đối với người quản lý ngoài các chức năng giống như người sử dụng chưa đăng ký, người sử dụng đã đăng ký còn có những chức năng khác nhằm duy trì cho hệ thống hoạt động tốt hơn.
Xoá bài:Để một quản lý được nội dung của diễn đàn, hệ thống cho phép người quản lý diễn đàn có thể xoá bất cứ bài nào trên diễn đàn
Thuật toán:
<Từ danh sách các bài Chọn bài để xoá {lấy được mãbài}
Dò tìm tất cả các bài trả lời cho bài
đó {thuật toán tìm bài con}
Xoá bài & xoá luôn cả bài con Xoá mãbài đó trong bảng chỉ mục
Trang 26Thêm người sử dụng: Người quản lý có quyền thêm người sử dụng cũng như thêm người quản lý vào hệ thống Để phân biệt được người sử dụng và người quản lý, chương trình chia người sử dụng thành hai cấp:
Cấp 2 : Là cấp của người sử dụng
Cấp 1: Là cấp của người quản lý
Thuật toán Nhận dữ liệu: tênđầyđủ, têntruynhập,
Trang 27Xoá người sử dụng: Để quản lý được số lượng người sử dụng cũng như số lượng người quản lý của hệ thống Người quản lý có quyền xoá người sử dụng ra khỏi hệ thống
Trang 28Thêm chủ đề: Để có thể đáp ứng được nhu cầu trao đổi thông tin
về nhiều lĩnh vực khác nhau của người sử dụng Chương trình cho phép người quản lý thêm chủ đề cho diễn đàn
Thuật toán:
Nhận dữ liệu về tên chủ đề, giải thích về chủ đề
If thiếu tên chủ đề Báo lỗi
Else Kiểm tra trên cơ sở dữ liệu đã có chủ đề chưa
If có Thông báo trùng chủ đề
Mở lại form đăng ký Else {thành công}
Đưa vào cơ sở dữ liệu End if
End if
Trang 29Xoá chủ đề: Nếu có thêm chủ đề thì phải có xoá chủ đề, hay những chủ đề đã cũ không còn ai quan tâm đến thì người quản lý có thể xoá đi.
Trang 30Tìm kiếm: Ứng dụng cho phép người sử dụng tìm kiếm thông tin
về bất cứ một bài viết nào đó trên diễn đàn theo những lựa chọn: tìm kiếm theo chủ đề của bài gửi, tìm kiếm theo tiêu đề của bài gửi, tìm kiếm theo nội dung bài gửi
gõ một chuỗi ký tự bất kỳ thuộc chủ đề đó, sau đó bấm nút “Tìm kiếm”
Thuật toán tìm kiếm theo chủ đề:
SQLQuery = "Select * from chude where chude.chude like '%"&chuoicantim&"%';
Trang 31Tìm kiếm theo nội dung: Xây dựng bảng chỉ mục phục vụ cho việc tìm kiếm
Để xây dựng bảng chỉ mục đầu tiên ta xây dựng bảng từ khóa Từ khóa có được là do nội dung của bài viết được tách thành các từ
Qui trình thực hiện xây dựng bảng từ khóa có thể tóm tắc như sau:
- Đưa tất cả các từ khoá vừa tách được vào trong một bảng tạm
- Dùng ngôn ngữ truy vấn dữ liệu để cập nhật các từ khoá trong
bảng tạm vào trong bảng từ khoá chính theo nguyên tắc: không thêm vào bảng chính những từ mà bảng chính đã có
Trang 33Giả sử bảng từ khoá trước đã có từ: Visual, học, sau khi thêm các
từ khoá của bài có mã bài gửi là 100 vào thì như sau:
Trang 34Bảng sau đây là ví dụ cho các từ khoá của bài có mã 100, trường mã từ khoá sẽ được đối chiếu với bảng từ khoá Giả sử từ Visual trong bài số 98, từ học có mã bài số 99
MãbàigửiMãtừkhoá
98 1
99 2
100 3
100 2
100 1
100 4
100 6
100 5
100 6
100 7
Trang 35Tìm kiếm theo tiêu đề: Các tiêu đề của bài gửi sau khi được gửi lên diễn đàn cũng được tách ra thành các từ khoá và cũng được lưu trữ trong các bảng từ khoá và bảng chỉ mục dành riêng cho từ khoá Cách xây dựng các bảng chỉ mục, xây dựng bảng từ khóa và cách thức xây dựng thuật toán tìm kiếm hoàn toàn tương tự như cách xây dựng thuật toán tìm kiếm thao nội dung.
Trang 36Tính bảo mật của hệ thống:
xuất bởi người quản lý Do vậy các trang này phải có tính bảo mật
Để thực hiện điều này ta làm như sau:
Sau khi người quản lý Login thành công thì thiết lập biến Session(“capNguoiSD”), biến này tồn tại trong suốt phiên làm việc của người quản lý và tất cả các trang web được xây dựng cho người quản lý khi được mở sẽ kiểm tra biến session này đầu tiên, nếu biến này không phù hợp thì không cho mở trang này
Trang 37Kết luận và đánh giá kết quả