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

Thiết kế và phát triển website mạng xã hội

141 1 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

TRƯỜNG ĐẠI HỌC BÀ RỊA - VŨNG TÀU KHOA KỸ THUẬT - CÔNG NGHỆ BÁO CÁO ĐỒ ÁN TỐT NGHIỆP ĐỀ TÀI: THIẾT KẾ VÀ PHÁT TRIỂN WEBSITE MẠNG XÃ HỘI Trình độ đào tạo : Đại học Ngành : Công nghệ thông tin Chuyên ngành : Công nghệ thông tin Khóa học : 2019-2023 Lớp : DH19CT Sinh viên thực : Nguyễn Minh Luân Mã số sinh viên : 19034008 GVHD : TS Phan Ngọc Hoàng VŨNG TÀU, NĂM 2023 LỜI CẢM ƠN Để hoàn thành đề tài báo cáo đồ án trước hết, em xin gửi đến quý thầy, cô giáo khoa Kỹ thuật – Công Nghệ trường Đại học Bà Rịa – Vũng Tàu lời cảm ơn chân thành Đặc biệt, em xin gửi đến thầy Phan Ngọc Hồng, người tận tình hướng dẫn, giúp đỡ em hoàn thành đề tài đồ án tốt nghiệp lời cảm ơn sâu sắc Em xin chân thành cảm ơn Ban Lãnh Đạo, phòng ban công ty TNHH Niềm Tin, tạo điều kiện thuận lợi cho em tìm hiểu thực tiễn suốt q trình thực tập cơng ty Đồng thời xin chân thành cảm ơn Ban lãnh đạo trường Đại học Bà Rịa – Vũng Tàu cho môi trường học tập lành mạnh động Kính chúc Trường Đại học Bà Rịa – Vũng Tàu tiếp túc gặt hái nhiều thành công đường giáo dục hệ trẻ Vì kiến thức thân cịn hạn chế trình độ lý luận kinh nghiệm thực tiễn cịn hạn chế nên báo cáo khơng thể tránh khỏi thiếu sót, em mong nhận ý kiến đóng góp thầy, để em học thêm nhiều kinh nghiệm hoàn thiện thân đáp ứng với nhu cầu công việc thực tế tương lai Em xin chân thành cảm ơn! Đồ án tốt nghiệp khóa 2019-2023 Trường Đại học Bà Rịa- Vũng Tàu LỜI CAM ĐOAN Tôi xin cam đoan kết đạt đồ án sản phẩm riêng cá nhân, không chép lại người khác Trong toàn nội dung đồ án, điều trình bày cá nhân tổng hợp từ nhiều nguồn tài liệu Tất tài liệu tham khảo có xuất xứ rõ ràng trích dẫn hợp pháp Tơi xin hồn tồn chịu trách nhiệm chịu hình thức kỷ luật theo quy định cho lời cam đoan Vũng Tàu, ngày 01 tháng 05 năm 2023 Sinh viên thực Nguyễn Minh Luân Đồ án tốt nghiệp khóa 2019-2023 Trường Đại học Bà Rịa- Vũng Tàu NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN Vũng Tàu, ngày … tháng … năm 20… Người hướng dẫn TS Phan Ngọc Hoàng Đồ án tốt nghiệp khóa 2019-2023 Trường Đại học Bà Rịa- Vũng Tàu NHẬN XÉT CỦA GIẢNG VIÊN PHẢN BIỆN Đồ án tốt nghiệp khóa 2019-2023 Trường Đại học Bà Rịa- Vũng Tàu MỤC LỤC DANH MỤC BẢNG _ DANH MỤC SƠ ĐỒ 10 DANH MỤC HÌNH _ 12 LỜI NÓI ĐẦU _ 14 CHƯƠNG TỔNG QUAN 15 1.1 Lý chọn đề tài 15 1.2 Mục tiêu chức hệ thống _ 15 1.2.1 Mục tiêu _ 15 1.2.2 Chức 15 1.3 Mơ tả tốn 16 CHƯƠNG CƠ SỞ LÝ THUYẾT _ 18 2.1 Giới thiệu ASP.NET _ 18 2.1.1 Tổng quát 18 2.1.2 Lịch sử phát triển ASP.NET 19 2.1.3 Một số đặc điểm ASP.NET _ 20 2.1.4 Cấu trúc thành phần ASP.NET 20 2.1.5 Tại nên chọn ASP.NET 21 2.1.6 Ứng dụng ASP.NET 25 2.2 Giới thiệu Telerik 25 2.2.1 Telerik gì? 25 2.2.2 Tại cần sử dụng Telerik? _ 25 2.2.3 Giới thiệu Telerik UI cho ASP.NET AJAX 26 2.3 Giới thiệu SignalR _ 27 Đồ án tốt nghiệp khóa 2019-2023 Trường Đại học Bà Rịa- Vũng Tàu 2.3.1 SignalR gì? _ 27 2.3.2 SignalR WebSocket 28 2.3.3 Transport fallbacks _ 29 2.3.4 Transport selection process _ 29 2.4 Giới thiệu Mircrosoft SQL Server _ 30 2.4.1 SQL sever gì? _ 30 2.4.2 Mục đích sử dụng SQL Server _ 31 2.5 Các thư viện khác _ 31 CHƯƠNG PHÂN TÍCH HỆ THỐNG _ 32 3.1 Mô tả hệ thống 32 3.2 Xây dựng chức hệ thống _ 37 3.2.1 Mô tả chức chi tiết 37 3.2.2 Xác định use case 39 3.2.3 Đặc tả use case _ 40 3.3 Thiết kế hệ thống 57 3.3.1 Sơ đồ sở liệu _ 57 3.3.2 Chi tiết sở liệu 58 CHƯƠNG XÂY DỰNG WEBSITE 62 4.1 Giao diện đăng nhập đăng ký. 62 4.2 Giao diện chức 63 CHƯƠNG KẾT LUẬN 76 5.1 Kết đạt 76 5.2 Hướng phát triển 76 Đồ án tốt nghiệp khóa 2019-2023 Trường Đại học Bà Rịa- Vũng Tàu TÀI LIỆU THAM KHẢO 77 PHỤ LỤC 78 6.1 Sơ đồ cấu trúc 78 6.2 Code xử lý _ 78 6.2.1 File Site.Master 78 6.2.2 File Default.aspx.cs _ 82 6.2.3 File ChatApp.aspx.cs 102 6.2.4 File AddNewPostForm.aspx.cs 105 6.2.5 File PostDetailForm.aspx.cs _ 115 6.2.6 File UserPage.aspx.cs 118 6.2.7 File GroupPage.aspx.cs 121 6.2.8 File Login.aspx.cs _ 138 6.2.9 File Signup.aspx.cs 140 Đồ án tốt nghiệp khóa 2019-2023 Trường Đại học Bà Rịa- Vũng Tàu DANH MỤC BẢNG Bảng 3-1 Bảng mô tả chứa xem tất đăng 37 Bảng 3-2 Bảng mô tả chứa cập nhật thông tin 38 Bảng 3-3 Bảng mô tả chức thao tác với đăng _ 38 Bảng 3-4 Bảng mô tả chức tìm kiếm nhóm, người dùng có hệ thống 38 Bảng 3-5 Bảng mô tả chức thao tác với nhóm 38 Bảng 3-6 Bảng mô tả chức theo dõi người dùng khác 39 Bảng 3-7 Bảng mô tả chức nhắn tin với người dùng khác 39 Bảng 3-8 Bảng mô tả chức nhận thông báo 39 Bảng 3-9 Cơ sở liệu bảng người dùng 58 Bảng 3-10 Cơ sở liệu bảng theo dõi 58 Bảng 3-11 Cơ sở liệu bảng thông báo 59 Bảng 3-12 Cơ sở liệu bảng hội thoại _ 59 Bảng 3-13 Cơ sở liệu bảng tin nhắn 59 Bảng 3-14 Cơ sở liệu bảng đăng 60 Bảng 3-15 Cơ sở liệu bảng lượt thích _ 60 Bảng 3-16 Cơ sở liệu bảng bình luận _ 60 Bảng 3-17 Cơ sở liệu bảng nhóm đăng 61 Bảng 3-18 Cơ sở liệu bảng thành viên nhóm _ 61 Đồ án tốt nghiệp khóa 2019-2023 Trường Đại học Bà Rịa- Vũng Tàu DANH MỤC SƠ ĐỒ Sơ đồ 3-1 Sơ đồ Use case 40 Sơ đồ 3-2 Sơ đồ đăng nhập thành công 41 Sơ đồ 3-3 Sơ đồ hợp tác đăng nhập thành công _ 41 Sơ đồ 3-4 Sơ đồ đăng nhập thất bại _ 42 Sơ đồ 3-5 Sơ đồ hợp tác đăng nhập thất bại 42 Sơ đồ 3-6 Sơ đồ chức xem tất đăng hệ thống 43 Sơ đồ 3-7 Sơ đồ hợp tác chức xem tất đăng hệ thống 43 Sơ đồ 3-8 Sơ đồ chức thích đăng _ 44 Sơ đồ 3-9 Sơ đồ hợp tác chức thích đăng _ 45 Sơ đồ 3-10 Sơ đồ chức bình luận đăng _ 45 Sơ đồ 3-11 Sơ đồ hợp tác chức bình luận đăng 46 Sơ đồ 3-12 Sơ đồ chức tham gia nhóm 47 Sơ đồ 3-13 Sơ đồ hợp tác chức tham gia nhóm _ 47 Sơ đồ 3-14 Sơ đồ chức đăng vào nhóm 48 Sơ đồ 3-15 Sơ đồ hợp tác chức đăng vào nhóm 48 Sơ đồ 3-16 Sơ đồ chức rời nhóm 49 Sơ đồ 3-17 Sơ đồ hợp tác chức rời nhóm 49 Sơ đồ 3-18 Sơ đồ chức cập nhật thông tin nhóm cho Admin nhóm 50 Sơ đồ 3-19 Sơ đồ hợp tác chức cập nhật thông tin nhóm cho Admin nhóm _ 50 Sơ đồ 3-20 Sơ đồ chức xóa thành viên Admin nhóm _ 51 Sơ đồ 3-21 Sơ đồ hợp tác chức xóa thành viên Admin nhóm _ 51 Sơ đồ 3-22 Sơ đồ chức tìm kiếm người dùng _ 52 Sơ đồ 3-23 Sơ đồ hợp tác chức tìm kiếm người dùng _ 52 Sơ đồ 3-24 Sơ đồ chức theo dõi người dùng khác _ 53 Sơ đồ 3-25 Sơ đồ hợp tác chức theo dõi người dùng khác _ 54 Sơ đồ 3-26 Sơ đồ chức nhắn tin với người dùng khác 55 Sơ đồ 3-27 Sơ đồ hợp tác chức nhắn tin với người dùng khác 55 Đồ án tốt nghiệp khóa 2019-2023 Trường Đại học Bà Rịa- Vũng Tàu { if (e.Item is RadListViewDataItem) { var userList = this.userService.GetAll(); var dataItem = e.Item as RadListViewDataItem; var objPost = this.postService.GetByID(new Guid(dataItem.GetDataKeyValue("postID").ToString())); var objLike = this.likesService.GetByPostAndUserID(objPost.ID, UserSession.Current.User.ID); var listImages = objPost.Images.Split(','); HtmlContainerControl images = (HtmlContainerControl)dataItem.FindControl("images"); HiddenField index = (HiddenField)dataItem.FindControl("hfindexID"); if (listImages.Count() > 1) { string carouselImages = ""; for (int i = 0; i < listImages.Count(); i++) { if (i == 0) { carouselImages += ""; } else NGUYỄN MINH LUÂN 127 Đồ án tốt nghiệp khóa 2019-2023 Trường Đại học Bà Rịa- Vũng Tàu { carouselImages += ""; } } carouselImages += ""; for (int i = 0; i < listImages.Count(); i++) { if (i == 0) { carouselImages += ""; } else { carouselImages += ""; } } carouselImages += ""; NGUYỄN MINH LUÂN 128 Đồ án tốt nghiệp khóa 2019-2023 Trường Đại học Bà Rịa- Vũng Tàu images.InnerHtml = carouselImages; } else { string image = ""; images.InnerHtml = image; } LinkButton btnLikes = (LinkButton)e.Item.FindControl("btnLikes"); if (objLike != null) { btnLikes.CssClass = "fa-solid fa-heart link-danger"; } else { btnLikes.CssClass = "fa-regular fa-heart"; } HtmlContainerControl countLikeBox = (HtmlContainerControl)e.Item.FindControl("countLikeBox"); LinkButton btnLatedLike = (LinkButton)e.Item.FindControl("btnLatedLike"); Label lbAnd = (Label)e.Item.FindControl("lbAnd"); LinkButton btnCountLikes = (LinkButton)e.Item.FindControl("btnCountLikes"); NGUYỄN MINH LUÂN 129 Đồ án tốt nghiệp khóa 2019-2023 Trường Đại học Bà Rịa- Vũng Tàu int countLikes = likesService.CountLikeOfPost(objPost.ID); if (countLikes > 1) { var latedLikeUserID = this.likesService.GetLatedLike(objPost.ID); if (latedLikeUserID != null) { if (latedLikeUserID == UserSession.Current.User.ID) { btnLatedLike.Text = "Bạn"; } else { var latedLikeUser = this.userService.GetByID(latedLikeUserID); btnLatedLike.Text = latedLikeUser.FirstName + " " + latedLikeUser.LastName; } } btnCountLikes.Text = (likesService.CountLikeOfPost(objPost.ID) - 1).ToString() + " người khác thích."; } else if (countLikes == 1) { var latedLikeUserID = this.likesService.GetLatedLike(objPost.ID); if (latedLikeUserID != null) { NGUYỄN MINH LUÂN 130 Đồ án tốt nghiệp khóa 2019-2023 Trường Đại học Bà Rịa- Vũng Tàu if (latedLikeUserID == UserSession.Current.User.ID) { btnLatedLike.Text = "Bạn thích."; } else { var latedLikeUser = this.userService.GetByID(latedLikeUserID); btnLatedLike.Text = latedLikeUser.FirstName + " " + latedLikeUser.LastName + " thích."; } } lbAnd.Visible = false; btnCountLikes.Visible = false; } else { countLikeBox.Visible = false; } } } protected void btnLikes_Click(object sender, EventArgs e) { int index = Convert.ToInt32(((LinkButton)sender).CommandArgument.ToString()); HiddenField hiddenFieldPostID = (HiddenField)RadListView1.Items[index].FindControl("hfPostID"); NGUYỄN MINH LUÂN 131 Đồ án tốt nghiệp khóa 2019-2023 Trường Đại học Bà Rịa- Vũng Tàu var objPost = this.postService.GetByID(new Guid(hiddenFieldPostID.Value)); var likeObj = this.likesService.GetByPostAndUserID(new Guid(hiddenFieldPostID.Value), UserSession.Current.User.ID); if (likeObj != null) { likesService.Delete(likeObj.ID); LinkButton btnLikes = (LinkButton)RadListView1.Items[index].FindControl("btnLikes"); btnLikes.CssClass = "fa-regular fa-heart"; } else { Like newLike = new Like() { ID = Guid.NewGuid(), PostID = new Guid(hiddenFieldPostID.Value), UserID = new Guid(UserSession.Current.User.ID.ToString()), CreatedDate = DateTime.Now, }; likesService.Insert(newLike); LinkButton btnLikes = (LinkButton)RadListView1.Items[index].FindControl("btnLikes"); btnLikes.CssClass = "fa-solid fa-heart"; if (objPost.CreatedBy != UserSession.Current.User.ID) { NGUYỄN MINH LUÂN 132 Đồ án tốt nghiệp khóa 2019-2023 Trường Đại học Bà Rịa- Vũng Tàu string msg = UserSession.Current.User.FirstName + " " + UserSession.Current.User.LastName + " thích viết bạn."; SendNotificationToApp(UserSession.Current.User.ID, objPost.CreatedBy.GetValueOrDefault(), msg); } } HtmlContainerControl countLikeBox = (HtmlContainerControl)RadListView1.Items[index].FindControl("countLikeBox"); countLikeBox.Visible = true; LinkButton btnLatedLike = (LinkButton)RadListView1.Items[0].FindControl("btnLatedLike"); Label lbAnd = (Label)RadListView1.Items[0].FindControl("lbAnd"); lbAnd.Visible = true; LinkButton btnCountLikes = (LinkButton)RadListView1.Items[index].FindControl("btnCountLikes"); btnCountLikes.Visible = true; int countLikes = likesService.CountLikeOfPost(objPost.ID); if (countLikes > 1) { var latedLikeUserID = this.likesService.GetLatedLike(objPost.ID); if (latedLikeUserID != null) { if (latedLikeUserID == UserSession.Current.User.ID) { btnLatedLike.Text = "Bạn"; } NGUYỄN MINH LUÂN 133 Đồ án tốt nghiệp khóa 2019-2023 Trường Đại học Bà Rịa- Vũng Tàu else { var latedLikeUser = this.userService.GetByID(latedLikeUserID); btnLatedLike.Text = latedLikeUser.FirstName + " " + latedLikeUser.LastName; } } btnCountLikes.Text = (likesService.CountLikeOfPost(objPost.ID) - 1).ToString() + " người khác thích."; } else if (countLikes == 1) { var latedLikeUserID = this.likesService.GetLatedLike(objPost.ID); if (latedLikeUserID != null) { if (latedLikeUserID == UserSession.Current.User.ID) { btnLatedLike.Text = "Bạn thích."; } else { var latedLikeUser = this.userService.GetByID(latedLikeUserID); btnLatedLike.Text = latedLikeUser.FirstName + " " + latedLikeUser.LastName + " thích."; } } NGUYỄN MINH LUÂN 134 Đồ án tốt nghiệp khóa 2019-2023 Trường Đại học Bà Rịa- Vũng Tàu lbAnd.Visible = false; btnCountLikes.Visible = false; } else { countLikeBox.Visible = false; } RadListView1.Rebind(); } protected void ajaxDocument_AjaxRequest(object sender, AjaxRequestEventArgs e) { } private void SendNotificationToApp(Guid Sender, Guid Reciever, string message) { Notification notification = new Notification() { ID = Guid.NewGuid(), Message = message, IdSender = Sender, IdReceiver = Reciever, IsRead = false, NGUYỄN MINH LUÂN 135 Đồ án tốt nghiệp khóa 2019-2023 Trường Đại học Bà Rịa- Vũng Tàu Avatar = userService.GetByID(Sender).Avatar, ReceivedDate = DateTime.Now }; notificationService.Insert(notification); SiteMaster MasterPage = new SiteMaster(); MasterPage.getNotification(userService.GetByID(Reciever), notification); } protected void btnInOutGroup_Click(object sender, EventArgs e) { if (this.btnInOutGroup.Text == "Đã tham gia" || this.btnInOutGroup.Text == "Chờ duyệt") { var postGroupUserObj = this.postGroupUserService.GetByUserAndGroup(UserSession.Current.User.ID, new Guid(this.Request.QueryString["groupID"].ToString())); var id = this.postGroupUserService.Delete(postGroupUserObj); if (id) { Response.Redirect(Request.RawUrl); } } else if (this.btnInOutGroup.Text == "Tham gia nhóm") { var groupObj = this.postGroupService.GetByID(new Guid(this.Request.QueryString["groupID"].ToString())); NGUYỄN MINH LUÂN 136 Đồ án tốt nghiệp khóa 2019-2023 Trường Đại học Bà Rịa- Vũng Tàu if (groupObj != null) { if (groupObj.IsPrivate == true) { PostGroupUser newPostGroupUser = new PostGroupUser() { ID = Guid.NewGuid(), GroupId = groupObj.ID, UserId = UserSession.Current.User.ID, IsAdmin = false, IsApproved = false, JoinedDate = DateTime.Now }; this.postGroupUserService.Insert(newPostGroupUser); string msg = UserSession.Current.User.FirstName + " " + UserSession.Current.User.LastName + " yêu cầu tham gia vào nhóm @" + groupObj.GroupName + " bạn."; SendNotificationToApp(UserSession.Current.User.ID, groupObj.Admin.GetValueOrDefault(), msg); } else if (groupObj.IsPrivate != true) { PostGroupUser newPostGroupUser = new PostGroupUser() { ID = Guid.NewGuid(), GroupId = groupObj.ID, NGUYỄN MINH LUÂN 137 Đồ án tốt nghiệp khóa 2019-2023 Trường Đại học Bà Rịa- Vũng Tàu UserId = UserSession.Current.User.ID, IsAdmin = false, IsApproved = true, JoinedDate = DateTime.Now }; this.postGroupUserService.Insert(newPostGroupUser); } Response.Redirect(Request.RawUrl); } } } } } 6.2.8 File Login.aspx.cs using Business.Services.Security; using System; using System.Collections.Generic; using System.Linq; using System.Security.Cryptography; using System.Text; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using Web.Sessions; using Web.Template.Data; namespace Web.Template.Security { public partial class Login : System.Web.UI.Page { private readonly UserService userService; public Login() NGUYỄN MINH LUÂN 138 Đồ án tốt nghiệp khóa 2019-2023 Trường Đại học Bà Rịa- Vũng Tàu { this.userService = new UserService(); } protected void Page_Load(object sender, EventArgs e) { txtEmail.Focus(); if (!this.IsPostBack) {} } protected void btnLogin_Click(object sender, EventArgs e) { var user = userService.GetUserByEmail(this.txtEmail.Text); if (user != null) { if (user.Password == ComputeMD5(this.txtPassword.Text)) { UserSession.CreateSession(user); FormsAuthentication.RedirectFromLoginPage(user.Username, false); Session["UserName"] = user.Username; if (Session["ReturnURL"] != null) { var returnUrl = Session["ReturnURL"].ToString(); Session.Remove("ReturnURL"); Response.Redirect("~" + returnUrl); } else { Response.Redirect("~/Default.aspx"); } } else { Response.Redirect("/Controls/Security/Login.aspx"); } } } static string ComputeMD5(string s) { using (MD5 md5 = MD5.Create()) { return BitConverter.ToString(md5.ComputeHash(Encoding.UTF8.GetBytes(s))) Replace("-", ""); } } } } NGUYỄN MINH LUÂN 139 Đồ án tốt nghiệp khóa 2019-2023 Trường Đại học Bà Rịa- Vũng Tàu 6.2.9 File Signup.aspx.cs using Business.Services.Security; using Data.Entities; using System; using System.Collections.Generic; using System.Linq; using System.Security.Cryptography; using System.Text; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace Web.Template.Security { public partial class Signup : System.Web.UI.Page { protected readonly UserService userService; public Signup() { this.userService = new UserService(); } protected void Page_Load(object sender, EventArgs e) { } protected void btn_DangKy_Click(object sender, EventArgs e) { if (Page.IsValid) { var userList = this.userService.GetAll(); bool mailCheck = false; foreach (User u in userList) { if (u.Email.ToString() != this.txtEmail.Text.Trim()) { mailCheck = false; } else { mailCheck = true; break; } } if (mailCheck == false) { User user = new User() NGUYỄN MINH LUÂN 140 Đồ án tốt nghiệp khóa 2019-2023 Trường Đại học Bà Rịa- Vũng Tàu { ID = Guid.NewGuid(), FirstName = this.txtFirstName.Text, LastName = this.txtLastName.Text, Email = this.txtEmail.Text, Password = ComputeMD5(this.txtPassword.Text), CreatedDate = DateTime.Now, Avatar = "/noneAvatar.jpg", Username = this.txtEmail.Text.Split('@')[0] }; userService.Insert(user); } else { mailCheck = false; } } } static string ComputeMD5(string s) { using (MD5 md5 = MD5.Create()) { return BitConverter.ToString(md5.ComputeHash(Encoding.UTF8.GetBytes(s))) Replace("-", ""); } } } } NGUYỄN MINH LUÂN 141

Ngày đăng: 31/08/2023, 10:03

Xem thêm:

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w