1. Trang chủ
  2. » Luận Văn - Báo Cáo

XÂY DỰNG DIỄN ĐÀN THẢO LUẬN- PHÂN TÍCH THIẾT KẾ HỆ THỐNG

68 3 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 68
Dung lượng 1,49 MB

Nội dung

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC MỞ HÀ NỘI - Ngành: Công Nghệ Thông Tin Đề 5: Xây dựng diễn đàn thảo luận HỌC VIÊN THỰC HIỆN: Chu Minh Tám Nguyễn Văn Tiến Nguyễn Ngọc Dũng Phạm Đức Tiến Nguyễn Duy Đức HƯỚNG DẪN KHOA HỌC: TS Lê Hữu Dũng Hà Nội, 09/2021 MỤC LỤC CHƯƠNG 1: GIỚI THIỆU CHUNG .1 1.1 Giới thiệu toán 1.2 Đánh giá đề tài/sản phẩm tương tự, liên quan 1.3 Mục tiêu đề tài 1.4 Phân công nhiệm vụ CHƯƠNG 2: XÁC ĐỊNH YÊU CẦU .3 2.1 Yêu cầu chức 2.2 Yêu cầu phi chức CHƯƠNG 3: PHÂN TÍCH & THIẾT KẾ 3.1 Phân tích Hệ thống chức 3.1.1 UseCase hệ thống 3.1.2 Biểu đồ hoạt động 18 3.2 Phân tích thiết kế Hệ thống Dữ liệu 23 3.2.1 Xác định bảng thực thể 23 3.2.2 Lược đồ quan hệ sở liệu 24 CHƯƠNG 4: MỘT SỐ CHỨC NĂNG CHÍNH 25 4.1 Trang chủ .25 4.2 Các trang chi tiết 25 CHƯƠNG 5: KẾT LUẬN .66 TÀI LIỆU THAM KHẢO .66 CHƯƠNG 1: GIỚI THIỆU CHUNG 1.1 Giới thiệu toán  Diễn đàn phát triển nhầm mục đích trao đổi thơng tin cộng đồng internet, thành tiên đăng tải thảo luận thành viên khác tham gia trả lời, trao đổi thảo luận  Các gửi phân nhóm nhành chủ để khác người dùng dễ dàng tìm kiếm thảo luận  Người quản trị sửa xóa viết tài khoản thành viên 1.2 Đánh giá đề tài/sản phẩm tương tự, liên quan  Voz diễn đàn nổ tiếng việt nam, ngày có hàng trăm thảo luận trao đổi công nghệ  Được xây dựng mã nguồn mở nên chức diễn đàn đầy đủ 1.3 Mục tiêu đề tài Xây dựng diễn đàn nơi người dùng thực chức :  Đăng nhập  Đăng ký  Tìm kiếm thảo luận  Tham gia trao đổi thảo luận Và admin quản lý thảo luận người dùng 1.4 Phân công nhiệm vụ Họ tên Chu Minh Tám Nguyễn Văn Tiến Nguyễn Ngọc Dũng Phạm Đức Tiến Nguyễn Duy Đức Công việc Thiết kế sở liệu Trang đăng nhập Trang đăng ký Thiết kế sở liệu Các chức quản lý thảo luận Các chức quản lý tài khoản Các chức quản lý danh mục Chức bình luận Trang chi tiết viết Kiểm thử web Chức bình luận Trang chủ Chức tìm kiếm viết Kiểm thử CHƯƠNG 2: XÁC ĐỊNH YÊU CẦU Các yêu cầu mà website phải đáp ứng 2.1 Yêu cầu chức Quản trị:  Đăng nhập  Xem danh sách tài khoản  Tìm kiếm tài khoản  Thêm tài khoản  Sửa tài khoản  Xóa tài khoản  Xem danh sách chủ đề  Tìm kiếm chủ đề  Thêm chủ đề  Sửa chủ đề  Xóa chủ đề  Thêm thảo luận  Xóa thảo luận  Sửa thảo luận  Xem danh sách bình luận  Xóa bình luận Người dùng:  Tìm kiếm thảo luận theo từ khóa  Tìm kiếm thỏa luận theo chủ đề  Đăng nhập  Đăng ký  Đăng thảo luận  Bình luận 2.2 Yêu cầu phi chức  Thơng báo người dùng bình luận  Cập nhật số bình luận viết CHƯƠNG 3: PHÂN TÍCH & THIẾT KẾ 3.1 Phân tích Hệ thống chức 3.1.1 UseCase hệ thống  Tác nhân hệ thống Xây dựng Website diễn đàn thảo luận trao đổi thơng tin, bình luận thành phần người dùng hệ thống là: - THANHVIEN: Là người dùng truy cập hệ thống, đăng nhập, xem tin tức thảo luận nội dung - QUANTRIVIEN: Là người quản trị hệ thống, đăng nhập với quyền quản trị viên có chức quản lý loại tin, quản lý tin, quản lý tài khoản, quản lý thảo luận với thao tác thêm, sửa, xóa…  UseCase Tổng quát  UseCase tác nhân Thành viên ▫ UseCase Đăng nhập hệ thống: - Mô tả tổng quát: Thành viên đăng nhập để thảo luận, quản trị viên đăng nhập vào hệ thống để quản lý website - Điều kiện đầu vào: Use case sử dụng bắt đầu thành viên, quản trị viên muốn đăng nhập vào website - Dịng kiện chính:  Hệ thống yêu cầu nhập tên đăng nhập mật  Người dùng nhập tên đăng nhập mật  Hệ thống kiểm tra tên mật vừa nhập: - Nếu cho phép vào hệ thống - Nếu sai thực luồng kiện phụ A1 - Dịng kiện phụ A1:  Hệ thống thơng báo việc nhập liệu không hợp lệ  Người dùng nhập lại tên mật  Quay lại bước luồng kiện hủy bỏ việc đăng nhập, ca sử dụng kết thúc ▫ UseCase Đăng xuất: - Mô tả tổng quát: Người quản trị viên, thành viên muốn thoát khỏi hệ thống - Điều kiện đầu vào: Usecase sử dụng bắt đầu người dùng muốn thoát hệ thống - Dịng kiện chính:  Người dùng chọn đăng xuất  Hệ thống hủy lưu tài khoản đăng nhập  Hiển thị giao diện trang chủ sau đăng xuất ▫ UseCase Đăng ký hệ thống: - Mô tả tổng quát: Thành viên đăng ký để thực đăng bài, thảo luận - Điều kiện đầu vào: Use case sử dụng bắt đầu thành viên chọn đăng ký - Dịng kiện chính:  Hệ thống u cầu nhập tên đăng nhập mật  Người dùng nhập tên đăng nhập mật  Hệ thống kiểm tra tên mật vừa nhập: - Nếu thỏa mãn lưu tài khoản cho phép vào hệ thống - Nếu sai thực luồng kiện phụ A1 - Dòng kiện phụ A1:  Hệ thống thông báo việc nhập liệu không hợp lệ  Người dùng nhập lại tên mật  Quay lại bước luồng kiện hủy bỏ việc đăng ký, ca sử dụng kết thúc ▫ UseCase Tìm kiếm: - Mơ tả tổng quát: Người dùng truy cập hệ thống muốn tìm kiếm tin tức quan tâm - Điều kiện đầu vào: Usecase sử dụng bắt đầu người dùng truy cập hệ thống nhập từ khóa tìm kiếm - Dịng kiện chính:  Người dùng nhập từ khóa muốn tìm  Nhấp chọn tìm kiếm  Hệ thống kiểm tra từ khóa vừa nhập: - Nếu có liệu thực tìm kiếm tin tức theo từ khóa người dùng nhập vào - Nếu sai thực luồng kiện phụ A1 - Dòng kiện phụ A1:  Hệ thống thông báo việc nhập liệu không hợp lệ  Người dùng nhập lại từ khóa  Quay lại bước luồng kiện hủy bỏ việc tìm kiếm, ca sử dụng kết thúc ▫ UseCase Bình luận & trả lời bình luận: - Mơ tả tổng quát: Thành viên đăng nhập để thảo luận tin tức quan tâm - Điều kiện đầu vào: Use case sử dụng bắt đầu thành viên muốn thảo luận website - Dịng kiện chính:  Ca sử dụng bắt đầu thành viên đăng nhập hệ thống  Hệ thống kiểm tra mật khẩu, truy cập vào hệ thống  Thành viên chọn tin tức muốn bình luận  Nhập nội dung bình luận, gửi yêu cầu  Hệ thống kiểm tra bình luận vừa nhập: - Nếu thỏa mãn thực bước tiếp - Nếu sai thực luồng kiện phụ A1  Hệ thống lưu thảo luận vào sở liệu  Load lại trang - Dịng kiện phụ A1:  Hệ thống thơng báo việc nhập liệu không hợp lệ  Người dùng nhập lại nội dung 52 cursor: pointer; } #comment-message { margin-left: 20px; color: #189a18; display: none; } bkLib.onDomLoaded(function () { new nicEditor().panelInstance('area'); }); // Thay text area có id area1 trở thành WYSIWYG editor sử dụng nicEditor Thời Gian Đăng : 53 54 Comments Added Successfully! var commentId = 0; function postReply(cId, name) { commentId = cId; $('#repName').text("Trả lời: " + name) } $("#submitButton").click(function () { var idBaiViet = window.location.href.split("idBaiViet=")[1]; var comment = $('.nicEdit-main').html(); var cmtJson = "{'commentId':" + commentId + ",'idBaiViet':" + idBaiViet + ",'comment':" + "'" + comment + "'" + "}"; $("#comment-message").css('display', 'none'); $.ajax({ url: "DetailNews.aspx/addComment", data: cmtJson, type: 'post', contentType: "application/json; charset=utf-8", dataType: "json", success: function (response) { if (response.d != false) { $("#comment-message").css('display', 'inline-block'); 55 $(".nicEdit-main").html(""); commentId = 0; $('#repName').text(""); listComment(); } else { alert("Bạn cần đăng nhập để bình luận !"); return false; } } }); }); $(document).ready(function () { listComment(); }); function listComment() { var id = window.location.href.split("idBaiViet=")[1]; $.ajax({ type: "POST", url: "DetailNews.aspx/getListComment", data: "{'idBaiViet':" + id + "}", contentType: "application/json; charset=utf-8", dataType: "json", success: function (data) { var data = JSON.parse(data.d); var comments = ""; var replies = ""; var item = ""; var parent = -1; var results = new Array(); var list = $("
    "); var item = $("
  • ").html(comments); 56 for (var i = 0; (i < data.length); i++) { var commentId = data[i]['comment_id']; parent = data[i]['parent_comment_id']; if (parent == "0") { comments = "" + "from " + data[i]['comment_sender_name'] + " at " + data[i]['date'] + "" + "" + data[i]['comment'] + "" + "Reply" + ""; var item = $("
  • ").html(comments); list.append(item); var reply_list = $('
      '); item.append(reply_list); listReplies(commentId, data, reply_list); } } $("#output").html(list); } }); } function listReplies(commentId, data, list) { for (var i = 0; (i < data.length); i++) { 57 if (commentId == data[i].parent_comment_id) { var comments = "" + "@" + data[i]['parentName']+"" + " from " + data[i]['comment_sender_name'] + " at " + data[i]['date'] + "" + "" + data[i]['comment'] + "" + "Reply" + ""; var item = $("
    • ").html(comments); var reply_list = $('
        '); list.append(item); item.append(reply_list); listReplies(data[i].comment_id, data, reply_list); } } } 58 o Mã lệnh phía server using using using using using using using using using using using using BaiTapLon.ClassGetSet; BaiTapLon.DAL; Newtonsoft.Json; System; System.Collections.Generic; System.Data; System.Linq; System.Web; System.Web.Script.Services; System.Web.Services; System.Web.UI; System.Web.UI.WebControls; namespace BaiTapLon.WebForm.Web { public partial class DetailNews : System.Web.UI.Page { KetNoiAdmin cls_con = new KetNoiAdmin(); protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { if (Request.QueryString["idBaiViet"] != null) 59 { HienDetailNews(); } } } private void HienDetailNews() { BaiViet bviet = new BaiViet(); bviet.idBaiViet = int.Parse(Request.QueryString["idBaiViet"]); BaiVietDAL baiVietDAL = new BaiVietDAL(); dtlDetailNews.DataSource = baiVietDAL.LaydulieuTheoID(bviet); // dtlChiTietSanPham ID DataList dtlDetailNews.DataBind(); string sql; sql = "select idLoaiTin from tbl_BaiViet where idBaiViet = " + Request.QueryString["idBaiViet"]; String idLoaiTin = cls_con.thongkeSoLuong(sql).ToString(); sql = "select top * from tbl_BaiViet order by ThoiGianDang desc"; dtlTinTuc.DataSource = cls_con.getDataTable(sql); dtlTinTuc.DataBind(); } [WebMethod] [ScriptMethod] public static string getListComment(int idBaiViet) { KetNoiAdmin cls_con = new KetNoiAdmin(); string sql; sql = "select A.*,B.comment_sender_name as parentName from tbl_BinhLuan A left join tbl_BinhLuan B on A.parent_comment_id = B.comment_id where A.new_id = " + idBaiViet; DataTable datatable = cls_con.getDataTable(sql); var JSONresult = JsonConvert.SerializeObject(datatable); return JSONresult; } [WebMethod] [ScriptMethod] public static bool addComment(int commentId,int idBaiViet, string comment) { //Session["User_Id"] = txtDangNhap.Text; //Session["id"] = db.Rows[0]["idTaiKhoan"]; //Session["IsLogIn"] = 1; //Session["Name"] = db.Rows[0]["HoTen"]; if (HttpContext.Current.Session["User_Id"] == null) { return false; } else { BinhLuanDAL binhLuanDAL = new BinhLuanDAL(); binhLuanDAL.ChenDuLieu(commentId, idBaiViet, comment, HttpContext.Current.Session["name"].ToString(),int.Parse(HttpContext.Current.Session["id" ].ToString())); return true; } } 60 } } g.Tìm kiếm viết o Hình ảnh g.Đăng o Hình ảnh 61 o Mã lệnh phía client canchinh { width: 150px; padding-left: 10px; font-size: 15px; } txt { 62 padding: 10px; } ADD NEWS Tiêu Đề (*) Hình Ảnh Tóm Tắt (*) Nội Dung Trạng Thái 63 Hiển Thị Không Hiển Thị Thời Gian Đăng Nguồn Tin (*) Mã Loại Tin 64   o Mã lệnh phía server using using using using using using using BaiTapLon.DAL; System; System.Collections.Generic; System.Linq; System.Web; System.Web.UI; System.Web.UI.WebControls; namespace BaiTapLon { public partial class AddNew : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { txtTieuDe.Focus(); if (Session["id"] == null) { Response.Redirect("Login.aspx"); } } } protected void btnReset_Click(object sender, EventArgs e) { Response.Redirect("Add_News.aspx"); } protected void btnCancel_Click(object sender, EventArgs e) { Response.Redirect("TrangChu.aspx"); 65 } protected void btnAdd_Click(object sender, EventArgs e) { if (IsValid) { string fileName = System.IO.Path.GetFileName(FileUpload1.PostedFile.FileName); string path = Server.MapPath("~/Admin/Upload/" + fileName); FileUpload1.PostedFile.SaveAs(path); ClassGetSet.BaiViet Bviet = new ClassGetSet.BaiViet(); Bviet.TieuDe = txtTieuDe.Text; Bviet.TenAnh = "Admin/Upload/" + fileName; // FileUpload1 ID điều khiển FileUpLoad Bviet.TomTat = txtTomTat.Text; Bviet.NoiDung = CKEditorControl1.Text; Bviet.TrangThaiBaiViet = cboTrangThai.SelectedItem.Value; Bviet.ThoiGianDang = Convert.ToDateTime(textShippedDate.Text); Bviet.NguonTin = txtNguonTin.Text; Bviet.idLoaiTin = int.Parse(cboMaLoaiTin.SelectedItem.Value); Bviet.idTaiKhoan = int.Parse(Session["id"].ToString()); try { BaiVietDAL baiVietDAL = new BaiVietDAL(); baiVietDAL.ChenDuLieu(Bviet); } catch { Response.Redirect("Trangloi.aspx"); } Response.Redirect("TrangChu.aspx"); } } protected void imagebuttonDatePicker_Click(object sender, ImageClickEventArgs e) { if (calendarDatePicker.Visible) { calendarDatePicker.Visible = false; } else { calendarDatePicker.Visible = true; } } protected void calendarDatePicker_SelectionChanged(object sender, EventArgs e) { textShippedDate.Text = calendarDatePicker.SelectedDate.ToShortDateString(); calendarDatePicker.Visible = false; 66 CHƯƠNG 5: KẾT LUẬN Nhóm chưa thực chức quản lý bình luận ,và yêu cầu phi chức năng, chức lại hoạt động tốt Đánh giá ưu, nhược điểm website Ưu điểm: -Website cáo giao diện đẹp -Kết hợp client side server side đem lại trải nghiệm tốt Nhược điểm: -Cịn chức -Một số ngoại lệ chưa xử lý TÀI LIỆU THAM KHẢO  Các ví dụ asp.net: http://huudungle.net/?ID=20 Tác giả: Lê Hữu Dũng  Essential ASP.NET Web Forms Development: Full Stack Programming with C#, SQL, Ajax, and JavaScript 1st ed Edition Tác giả: Robert E Beasley ... varchar(10) Khóa Mã bình luận idbinhluancha varchar(10) Khóa ngoại Mã bình luận cha noidung nvarchar(max) Null Nội dung thoigian datetime Not null Thời gian idnguoidung varchar(10) Khóa ngoại Mã người... Ngày sinh sodienthoai varchar(10) Null Số điện thoại email varchar(100) Not null Email diachi nvarchar(300) Null Địa  Bảng tbl_BinhLuan STT Tên thực thể Kiểu liệu Ràng buộc Mô tả idbinhluan varchar(10)... Null Tóm tắt 24 STT Tên thực thể Kiểu liệu Ràng buộc Mô tả noidung nvarchar(max) Null Nội dung trangthai bit Not null Trạng thái thoigiandang datetime Not null Thời gian đăng idloaitin varchar(10)

Ngày đăng: 05/09/2022, 15:50

w