Đồ án tốt nghiệp: Xây dựng website hỏi đáp trực tuyến về công nghệ - ĐH SPKT

Tài liệu đồ án tốt nghiệp Xây dựng website hỏi đáp trực tuyến về công nghệ. Báo cáo trình bày đầy đủ từ phân tích, thiết kế đến triển khai.

Chuyên ngành

Công nghệ thông tin

Tác giả

Trần Tấn Quý

Người đăng

Ẩn danh

Thể loại

Đồ án tốt nghiệp

2020

116
0
0

Phí lưu trữ

35 Point

Tóm tắt

I. Giới thiệu về Đồ án Xây dựng Website Hỏi Đáp Công Nghệ

Đồ án xây dựng website hỏi đáp công nghệ là một dự án tốt nghiệp được thực hiện bởi các sinh viên ngành Công nghệ Thông Tin tại Trường Đại học Sư Phạm Kỹ Thuật Thành phố Hồ Chí Minh. Dự án này nhằm xây dựng một nền tảng hỏi đáp trực tuyến chuyên về lĩnh vực công nghệ, mang tên TechSolution. Nền tảng này cho phép người dùng đặt câu hỏi, cung cấp câu trả lời, và tương tác cộng đồng trong một môi trường thân thiện và tổ chức tốt. Đồ án được hướng dẫn bởi TS. Huỳnh Xuân Phụng và hoàn thành vào tháng 7 năm 2020. Website hỏi đáp công nghệ này được thiết kế để giải quyết các vấn đề kỹ thuật thông qua sự hợp tác của cộng đồng lập trình viên và chuyên gia công nghệ.

1.1. Mục tiêu chính của dự án

Mục tiêu chính của đồ án website hỏi đáptạo ra một nền tảng trực tuyến nơi mà các lập trình viên, sinh viên công nghệ thông tin có thể chia sẻ kiến thức và kinh nghiệm. Nền tảng này hỗ trợ tìm kiếm nhanh, phân loại câu hỏi theo tag, và hệ thống đánh giá để xác định câu trả lời tốt nhất. Mục tiêu khác bao gồm xây dựng cộng đồng công nghệ sôi động, nâng cao chất lượng câu hỏi và câu trả lời thông qua cơ chế đánh giá, và cung cấp công cụ hỗ trợ trực tuyến hiệu quả.

1.2. Phạm vi ứng dụng thực tế

Website hỏi đáp công nghệ có thể được triển khai trong các trường đại học, công ty công nghệ, hoặc các cộng đồng lập trình viên trực tuyến. Ứng dụng này hỗ trợ hàng loạt người dùng đồng thời, cung cấp hệ thống thông báo thời gian thực bằng công nghệ Pusher, và quản lý cơ sở dữ liệu hiệu quả với MongoDB. Phạm vi ứng dụng bao trùm từ hỗ trợ học tập, trao đổi kiến thức chuyên môn, cho đến xây dựng danh tiếng cho các chuyên gia công nghệ.

II. Công Nghệ và Cơ Sở Lý Thuyết Đồ Án

Đồ án website hỏi đáp công nghệ được xây dựng dựa trên các công nghệ hiện đại và phổ biến trong ngành phát triển web. Nhóm sinh viên đã lựa chọn PHP kết hợp với framework Laravel để xây dựng backend ứng dụng, đảm bảo hiệu suất cao, bảo mật tốt, và khả năng mở rộng. Phía cơ sở dữ liệu, dự án sử dụng MongoDB thay vì các hệ quản trị cơ sở dữ liệu quan hệ truyền thống, cho phép lưu trữ dữ liệu linh hoạt và không định sẵn schema. Để xây dựng tính năng chat và thông báo thời gian thực, dự án tích hợp Pusher, một dịch vụ cloud phổ biến. Cuối cùng, Docker được sử dụng để đóng gói ứng dụng, đảm bảo khả năng triển khai dễ dàng trên các môi trường khác nhau.

2.1. Ưu và nhược điểm của PHP và Laravel

PHP là ngôn ngữ lập trình web phổ biến toàn cầu, cung cấp khả năng tích hợp máy chủ dễ dàng, cú pháp đơn giản, và thư viện phong phú. Laravel framework cải thiện PHP truyền thống bằng cách cung cấp cấu trúc MVC rõ ràng, hệ thống routing mạnh mẽ, và ORM Eloquent. Nhược điểm chính của PHPhiệu suất thấp hơn các ngôn ngữ biên dịch, trong khi Laraveloverhead lớnyêu cầu tài nguyên máy chủ cao hơn.

2.2. Lợi ích của MongoDB và Pusher

MongoDB mang lại tính linh hoạt trong cấu trúc dữ liệu, khả năng mở rộng ngang tốt, và truy vấn dữ liệu nhanh chóng. Điểm yếu của MongoDBtiêu thụ bộ nhớ lớnkhó quản lý tính nhất quán dữ liệu. Pusher cung cấp kiến trúc thực tế cho chat, thông báo, và cập nhật trực tiếp, nhưng phụ thuộc vào dịch vụ bên ngoàicó chi phí sử dụng.

III. Kiến Trúc Hệ Thống và Thiết Kế Giao Diện

Kiến trúc hệ thống của website hỏi đáp công nghệ được thiết kế theo mô hình MVC (Model-View-Controller) sử dụng Laravel framework. Giao diện người dùng được xây dựng bằng HTML5, CSS3, và JavaScript, đảm bảo trải nghiệm người dùng mượt màtương thích trên các thiết bị khác nhau. Dự án bao gồm các trang chính: trang đăng ký/đăng nhập, trang chủ hiển thị danh sách câu hỏi, trang chi tiết câu hỏi, trang đặt/sửa câu hỏi, trang hồ sơ người dùng, trang quản lý cá nhân, trang chat thời gian thực, và trang quản lý cho admin. Mỗi giao diện được thiết kế thân thiện, dễ sử dụng, và cung cấp các chức năng rõ ràng cho người dùng.

3.1. Thiết kế các chức năng người dùng

Các chức năng người dùng thông thường bao gồm: đăng ký và đăng nhập tài khoản, đặt câu hỏi mới với hỗ trợ markdown và tag, viết câu trả lời cho các câu hỏi, chỉnh sửa và xóa câu hỏi/câu trả lời cá nhân, tìm kiếm và lọc câu hỏi theo tag, tuần, tháng, năm, đánh giá câu hỏi/câu trả lời bằng hệ thống điểm, xem hồ sơ người dùng khác, gửi tin nhắn trực tuyến, và quản lý thông tin cá nhân như đổi mật khẩu, cập nhật profil.

3.2. Chức năng quản trị admin

Bảng điều khiển admin cung cấp các tính năng quản lý hệ thống toàn diện: quản lý người dùng (xem, xóa, cấp quyền), quản lý câu hỏi/câu trả lời (xem, xóa nội dung vi phạm), quản lý danh mục (tag), xem thống kê hệ thống, và quản lý báo cáo từ cộng đồng. Các công cụ này đảm bảo an toàn, chất lượng nội dungngăn chặn spam, lạm dụng trên nền tảng.

IV. Cơ Sở Dữ Liệu và Triển Khai Thực Tế

Cơ sở dữ liệu MongoDB của đồ án website hỏi đáp công nghệ được thiết kế để lưu trữ các tài liệu linh hoạt bao gồm: tài khoản người dùng, câu hỏi, câu trả lời, bình luận, đánh giá, tin nhắn chat, tag, và phiên làm việc. Schema MongoDB được tổ chức hợp lý để tối ưu hóa tốc độ truy vấngiảm thiểu dữ liệu dư thừa. Dữ liệu quan hệ giữa các document được xác định bằng reference ID. Để triển khai ứng dụng, dự án sử dụng Docker với các container cho PHP-Laravel, MongoDB, Redis, và Nginx, đảm bảo môi trường phát triển thống nhấtdễ dàng triển khai trên máy chủ sản xuất.

4.1. Thiết kế cơ sở dữ liệu MongoDB

Cơ sở dữ liệu MongoDB bao gồm các collection chính: users (lưu thông tin tài khoản), questions (lưu câu hỏi với metadata), answers (lưu câu trả lời), comments (lưu bình luận), ratings (lưu đánh giá), messages (lưu tin nhắn chat), tags (lưu danh mục), sessions (lưu phiên đăng nhập). Mỗi documentunique ID, timestamp, và các trường dữ liệu cần thiết để hỗ trợ tất cả chức năng ứng dụng.

4.2. Quy trình triển khai với Docker

Quy trình triển khai sử dụng Docker Compose để định nghĩa và chạy toàn bộ stack ứng dụng gồm multiple containers. File docker-compose.yml khai báo các service: Laravel app, MongoDB database, Redis cache, Nginx webserver. Mỗi container được tách biệt, độc lập, và dễ dàng scale. Điều này đảm bảo rằng ứng dụng có thể chạy nhất quán trên mọi máy.

Tóm tắt và mô tả trên trang này được tạo với sự hỗ trợ của AI. Nếu bạn thấy nội dung không chính xác hoặc có vấn đề, vui lòng Báo lỗi nội dung.

28/12/2025
Đồ án tốt nghiệp xây dựng website hỏi đáp trực tuyến về công nghệ

Trích đoạn nội dung tài liệu

Chương 1: TỔNG QUAN 10 Báo cáo Đồ án tốt nghiệp 6 Thêm câu trả lời vào cơ sở dữ liệu và hiển thị đi kèm với câu hỏi đó lên trang chủ Điều kiện cần - Đã đăng nhập dưới vai trò người dùng - Kết nối internet Kết quả - Khi thêm câu trả lời thành công, câu hỏi sẽ được hiển thị lên trang chủ kèm theo câu trả lời - Khi thêm câu trả lời thất bại, hiển thị lỗi Bảng 1. Mô tả usecae 'Sửa câu trả lời’ Tên usecase Sửa câu trả lời Mô tả Người dùng có thể sửa câu trả lời của bản thân Actor Người dùng Quy trình nghiệp vụ STT Actor Phản hồi của hệ thống 1 Truy cập vào website 2 Đăng nhập vào website 3 Chọn một câu hỏi 4 Hiển thị ra câu hỏi được chọn 5 Sửa câu trả lời của bản thân đã đặt ra 6 Nhấn nút ‘Save’ 7 Các thông tin sau khi sửa được lưu trữ vào cơ sở dữ liệu và được hiển thị lại Điều kiện cần - Đã đăng nhập dưới vai trò người dùng - Đã trả lời câu hỏi bất kỳ - Kết nối internet Kết quả - Khi sửa câu trả lời thành công, nội dung câu trả lời sẽ được thay đổi hiển thị với thông tin mới - Khi sửa câu trả lời thất bại, hiển thị lỗi Chương 1: TỔNG QUAN 11 Báo cáo Đồ án tốt nghiệp Bảng 1. Mô tả usecase 'Xóa câu trả lời’ Tên usecase Xóa câu trả lời Mô tả Người dùng có thể xóa câu trả lời của bản thân Actor Người dùng Quy trình nghiệp vụ STT Actor Phản hồi của hệ thống 1 Truy cập vào website 2 Đăng nhập vào website 3 Chọn một câu hỏi 4 Hiển thị ra câu hỏi được chọn 5 Xóa câu trả lời của bản thân đã đặt ra 6 Hiển thị popup xác nhận xóa 7 Chọn ‘yes’ 8 Câu trả lời được xóa khỏi hệ thống Điều kiện cần - Đã đăng nhập dưới vai trò người dùng - Đã trả lời câu hỏi bất kỳ - Kết nối internet Kết quả - Khi xóa câu trả lời thành công, câu trả lời đó sẽ được gỡ bỏ khỏi bài viết - Khi xóa câu trả lời thất bại, hiển thị lỗi Chương 1: TỔNG QUAN 12 Báo cáo Đồ án tốt nghiệp 1. Chức năng đánh giá câu hỏi/câu trả lời và nhắn tin Bảng 1.

Mô tả usecase 'Đánh giá câu hỏi/câu trả lời' Tên usecase Đánh giá câu hỏi/câu trả lời Mô tả Người dùng có thể đánh giá câu hỏi/câu trả lời phụ thuộc vào độ hữu ích của chúng Actor Người dùng Quy trình nghiệp vụ STT Actor Phản hồi của hệ thống 1 Truy cập vào website 2 Đăng nhập vào website 3 Chọn một câu hỏi 4 Hiển thị ra câu hỏi được chọn 5 Người dùng có thể đánh giá dộ hữu ích của câu hỏi và câu trả lời thông qua 2 nút like/dislike Điều kiện cần - Đã đăng nhập dưới vai trò người dùng - Kết nối internet Kết quả - Khi câu hỏi load thành công, hiển thị câu hỏi và câu trả lời đến người dùng - Khi câu hỏi load không thành công, hiển thị lỗi Chương 1: TỔNG QUAN 13 Báo cáo Đồ án tốt nghiệp Bảng 1. Mô tả usecase 'Sử dụng hệ thống chat’ Tên usecase Sử dụng hệ thống chat Mô tả Người dùng có thể sử dụng hệ thống chat và trò chuyện với người dùng khác. Actor Người dùng và người quản trị Quy trình nghiệp vụ STT Actor Phản hồi của hệ thống 1 Truy cập vào website 2 Đăng nhập vào website 3 Mở hệ thống chat 4 Hiển thị ra hệ thống chat 5 Chọn người dùng để trò chuyện 6 Hiển thị ra cuộc hội thoại 7 Nhập tin nhắn và gửi để bắt đầu trò chuyện Điều kiện cần - Đã đăng nhập dưới vai trò người dùng - Kết nối internet Kết quả - Khi hệ thống chat load thành công, hiển thị giao diện chat đến người dùng - Khi hệ thống chat load không thành công, hiển thị lỗi - Khi gửi tin nhắn thành công, hiển thị tin nhắn lên màn hình của cuộc trò chuyện Chương 1: TỔNG QUAN 14 Báo cáo Đồ án tốt nghiệp Bảng 1. Mô tả usecase 'Đánh giá câu trả lời hay nhất' Tên usecase Đánh giá câu trả lời hay nhất Mô tả Người đặt câu hỏi có thể chọn câu trả lời hay nhất nếu câu trả lời đó giải quyết vấn đề của người hỏi Actor Người dùng Quy trình nghiệp vụ STT Actor Phản hồi của hệ thống 1 Truy cập vào website 2 Đăng nhập vào website 3 Chọn một câu hỏi của bản thân 4 Hiển thị ra câu hỏi được chọn 5 Nhấn ‘Best answer’ cho câu trả lời mà bản thân yêu thích nhất 6 Câu trả lời sẽ được đánh dấu ‘best answer’ và đưa lên gần nhất với câu hỏi Điều kiện cần - Đã đăng nhập dưới vai trò người dùng - Đã đặt ra câu hỏi - Kết nối internet Kết quả - Khi câu hỏi load thành công, hiển thị câu hỏi và câu trả lời đến người dùng - Khi câu hỏi load không thành công, hiển thị lỗi - Khi vote best answer thành công, câu trả lời sẽ được đánh dấu và đưa lên gần nhất với câu hỏi - Khi vote best answer không thành công, hiển thị lỗi Chương 1: TỔNG QUAN 15 Báo cáo Đồ án tốt nghiệp 1.

Chức năng quản lý thông tin cá nhân Bảng 1. Mô tả usecase ‘Quản lý hồ sơ cá nhân’ Tên usecase Quản lý hồ sơ cá nhân Mô tả Người dùng quản lý thông tin cá nhân của bản thân Actor Người dùng Quy trình nghiệp vụ STT Actor Phản hồi của hệ thống 1 Truy cập vào website 2 Đăng nhập vào website 3 Chọn ‘Profile’ và tiến hành chỉnh sửa thông tin cần thiết Điều kiện cần - Đã đăng nhập dưới vai trò người dùng - Kết nối internet Kết quả - Khi profile load thành công, hiển thị đến người dùng - Khi profile load không thành công, hiển thị lỗi Bảng 1. Mô tả usecase 'Thay đổi ảnh đại diện' Tên usecase Thay đổi ảnh đại diện Mô tả Người dùng có thể thay đổi ảnh đại diện của bản thân Actor Người dùng Quy trình nghiệp vụ STT Actor Phản hồi của hệ thống 1 Truy cập vào website 2 Đăng nhập vào website 3 Chọn ‘Profile’ 4 Hiển thị profile cá nhân 5 Chọn ‘Change picture’ 6 Hiển thị trình upload và chỉnh sửa ảnh 7 Chọn ảnh và nhấn ‘Save’ 8 Lưu ảnh mới xuống cơ sở dữ liệu và hiển thị ảnh mới lên profile Chương 1: TỔNG QUAN 16 Báo cáo Đồ án tốt nghiệp Điều kiện cần - Đã đăng nhập dưới vai trò người dùng - Kết nối internet Kết quả - Khi profile load thành công, hiển thị đến người dùng - Khi profile load không thành công, hiển thị lỗi - Khi thay đổi ảnh đại diện thành công, load lại profile với ảnh đại diện mới - Khi thay đổi ảnh đại diện không thành công, hiển thị lỗi Bảng 1. Mô tả usecase 'Thay đổi thông tin cá nhân' Tên usecase Thay đổi thông tin cá nhân Mô tả Người dùng có thể thay đổi thông tin cá nhân của bản thân Actor Người dùng Quy trình nghiệp vụ STT Actor Phản hồi của hệ thống 1 Truy cập vào website 2 Đăng nhập vào website 3 Chọn ‘Profile’ 4 Hiển thị profile cá nhân 5 Thay đổi các thông tin cá nhân cần thiết 6 Hiển thị các textbox cho việc nhập thông tin 7 Chỉnh sửa thông tin và nhấn ‘Save’ 8 Lưu thông tin cá nhân mới xuống cơ sở dữ liệu và hiển thị thông tin mới lên profile Điều kiện cần - Đã đăng nhập dưới vai trò người dùng - Kết nối internet Kết quả - Khi profile load thành công, hiển thị đến người dùng - Khi profile load không thành công, hiển thị lỗi - Khi thay đổi thông tin cá nhân thành công, load lại profile với thông tin cá nhân mới - Khi thay đổi thông tin cá nhân không thành công, hiển thị lỗi Chương 1: TỔNG QUAN 17 Báo cáo Đồ án tốt nghiệp Chương 1: TỔNG QUAN 18 Báo cáo Đồ án tốt nghiệp Bảng 1.

Mô tả usecase 'Thay đổi mật khẩu' Tên usecase Thay đổi mật khẩu Mô tả Người dùng có thể thay đổi mật khẩu của tài khoản Actor Người dùng Quy trình nghiệp vụ STT Actor Phản hồi của hệ thống 1 Truy cập vào website 2 Đăng nhập vào website 3 Chọn ‘Profile’ 4 Hiển thị profile cá nhân 5 Chọn ‘Change password’ 6 Hiển thị các textbox cho việc nhập thông tin 7 Nhập password cũ và password mới, sau đó nhấn ‘Save’ 8 Lưu mật khẩu mới xuống cơ sở dữ liệu Điều kiện cần - Đã đăng nhập dưới vai trò người dùng - Password cũ phải được nhập chính xác - Kết nối internet Kết quả - Khi profile load thành công, hiển thị đến người dùng - Khi profile load không thành công, hiển thị lỗi - Khi thay đổi mật khẩu thành công, hiển thị thông báo - Khi thay đổi mật khẩu không thành công, hiển thị lỗi Chương 1: TỔNG QUAN 19 Báo cáo Đồ án tốt nghiệp Bảng 1. Mô tả usecase 'Xem các câu hỏi/câu trả lời đã tạo' Tên usecase Xem các câu hỏi/câu trả lời đã tạo Mô tả Người dùng có thể xem lại các câu hỏi và câu trả lời của họ Actor Người dùng Quy trình nghiệp vụ STT Actor Phản hồi của hệ thống 1 Truy cập vào website 2 Đăng nhập vào website 3 Chọn ‘Profile’ 4 Hiển thị profile cá nhân 5 Chọn ‘Questions & Answers’ 6 Hiển thị ra các câu hỏi và câu trả lời từ trước Điều kiện cần - Đã đăng nhập dưới vai trò người dùng - Kết nối internet Kết quả - Khi profile load thành công, hiển thị đến người dùng - Khi profile load không thành công, hiển thị lỗi - Khi câu hỏi/câu trả lời load thành công, hiển thị đến người dùng - Khi câu hỏi/câu trả lời không load thành công, hiển thị lỗi Chương 1: TỔNG QUAN 20 Báo cáo Đồ án tốt nghiệp Bảng 1. Mô tả usecase 'Đăng xuất' Tên usecase Đăng xuất Mô tả Người dùng và người quản trị có thể đăng xuất khỏi hệ thống Actor Người dùng và người quản trị Quy trình nghiệp vụ STT Actor Phản hồi của hệ thống 1 Truy cập vào website 2 Đăng nhập vào website 3 Nhấn nút ‘Log out’ 4 Đăng xuất người dùng ra khỏi hệ thống 5 Redirect người dùng về trang chủ Điều kiện cần - Đã đăng nhập - Kết nối internet Kết quả - Khi đăng xuất thành công, điều hướng người dùng về lại trang chủ 1. Mô tả usecase chức năng quản trị Bảng 1.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ