TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI
KHOA CÔNG NGHỆ THÔNG TIN
*****************
BÁO CÁO BÀI TẬP LỚN
----------------Mơn học: Lập trình Web
Đề tài: Trang Web tin tức
Giảng viên HD: Lại Mạnh Dũng
Nhóm thực hiện: Nhóm 5 – CNTT4 – K60
Sinh viên thực hiện: 1. Bùi Văn Hùng
2. Đồn Huy Tuấn Hải
3. Ngơ Trung Hiếu
4. Đào Nhật Tân
–
–
–
–
191202050
191210360
191213136
191204022
Năm học: 2021 - 2022
Lời nói đầu
Cùng với sự phát triển của khoa học – công nghệ và nhu cầu về thông tin trong
thời kì dịch bệnh đang diễn ra phức tạp đang tăng cao , các trang web về tin tức cũng
phát triển mạnh và gắn liền với sự phát triển của công nghệ, đặc biệt là công nghệ
thông tin. Ngày nay các website đóng một vai trị thiết yếu trong cuộc sống hàng ngày
của mỗi người , nó mang lại lợi ích to lớn cho các nhu cầu của mỗi người trong các
lĩnh vực khác nhau . Website tin tức là những trang web trang báo điện tử, được thiết
kế chuyên biệt dùng để truyền tải những thơng tin mới nhất, nóng hổi nhất ở một lĩnh
vực cụ thể nào đó hoặc đa dạng lĩnh vực trong cuộc sống hiện nay. Trong 3 năm gần
đây, do tình hình dịch bệnh COVID – 19 diễn biến vô cùng phức tạp , song song với
việc mọi người ở nhà , ít tiếp xúc để tránh lây nhiễm thì đồng thời họ cũng dành thời
gian rảnh của mình với các thiết bị điện tử như smartphone, laptop,… Chính vì vậy,
các website để cập nhật thơng tin và trao đổi thông tin bỗng phát triển mạnh. Nhận ra
được vấn đề này nên nhóm chúng em quyết định lựa chọn đề tài “Web Blog tin tức”.
Việc thiết lập một website nhanh chóng với nhiều dịch vụ tiện ích và hồn tồn miễn
phí có thể cập nhật các bài viết mới liên quan đến dịch bệnh mới nhất và nhiều thông
tin khác .v.v , tiết kiệm thời gian và thuận lợi cho mọi người.
Với đề tài và học phần này, nhóm chúng em xin chân thành cảm ơn sự giúp đỡ
tận tình của thầy Lại Mạnh Dũng. Song, do cịn nhiều hạn chế nên đề tài của nhóm
chúng em xây dựng khơng tránh được những thiếu sót. Rất mong được thầy và các
bạn đóng góp ý kiến để đề tài của chúng em được hoàn thiện hơn.
Trân trọng cảm ơn!
1. Tổng quan về đề tài.
1.1.
Mô tả hệ thống, các nghiệp vụ cơ bản.
- Website được xây dựng trên nền tảng web, sử dụng công nghệ
1.2.
1.3.
ASP.Net MVC.
- Ngôn ngữ lập trình: C#
- Cơ sở dữ liệu: Microsoft SQL Server.
- Các cơng việc chính của Website:
+ Đăng tải thơng tin về các vấn đề nóng trong xã hội.
+ Biên soạn, chỉnh sửa hoặc tổng hợp các tin tức mới nhất, hot nhất
đang diễn ra, thu hút được nhiều lượt đọc và đăng tải lên website của
mình.
Khảo sát, biểu mẫu thu thập được.
- Qua khảo sát, chúng em đã biết đến một số trang web tin tức trực
tuyến như:
+ />+ />+ />- Ưu điểm của các trang web này là:
+ Thiết kế đẹp, hiển thị thông tin chi tiết.
+ Các trang web đều có kênh thơng tin riếng.
+ Hệ thống hỗ trợ khách hàng đầy đủ.
+ Hỗ trợ nhiều chức năng cho khách hàng như: tìm kiếm, bình luận,
….
- Tuy nhiên một số trang web vẫn còn tồn tại một số hạn như:
+ Một số thông tin chưa được đa dạng.
+ Bố cục trang web khơng thuận tiện khi sử dụng.
Phân tích yêu cầu để xác định các chức năng cho các lớp người dùng.
-
Người sử dụng có thể tìm kiếm nhiều bài viết phù hợp với nhu cầu
của mình thơng qua nhiều tiêu chuẩn khác nhau như: thể loại, trend,
độ phổ cập ,,…
-
Khách hàng có thể xem thơng tin chi tiết các bài viết và để lại bình
luận ý kiến lại cho chủ bài viết. Việc tìm kiếm thơng tin trước như vậy
sẽ giúp khách hàng tiết kiệm được thời gian đi tìm kiếm những bài
viết theo ý muốn, tiết kiệm được cả thời gian và công sức
.
2. Phân tích và thiết kế
• Danh sách các Actor (tác nhân)
-
STT
Tên Actor
1
Adminstrator
2
Editors(Users)
/Member
Nhiệm vụ
+ Adminstrator là tác nhân giữ vai trị chính của
website: Quyền quản lý là quyền cao nhất của
hệ thống.Đây cũng là người chịu trách nhiệm
lớn nhất. Những người giữ vai trị quản lý
chính có thể phân quyền cho các nhân viên
trong website.
+ Tác nhân Adminstrator có thể thực hiện được
tất cả các chức năng của website như: Tạo,quản
lý tài khoản thành viên, quản lý và phân quyền
thành viên, quản lý các tag, Đăng sửa xóa tin
bài…
+ Tác nhân Adminstrator có quyền thêm, sửa,
xóa, cập nhật thơng tin mới.
+ Đăng nhập vào hệ thống: Mỗi một thành viên
có một số quyền giới hạn do Adminstrator cấp
cho.
+ Đăng ký tài khoản thành viên khi muốn tham
gia website.
+ Đăng tin mới: Khi có thơng tin mới cần đăng
thì Users cập nhật thông tin và đăng lên
website.
+ Sửa thông tin: Khi cần update, sửa thơng tin
thì Users sẽ vào bài viết đó và sửa thơng tin cho
chính xác.
+ Xóa thơng tin: Khi thơng tin q cũ và khơng
cần thiết thì Users có quyền xóa khỏi CSDL.
3
+ Truy cập vàohệ thống Website để đọc các bài
viết theo từng chun mục, tìm kiếm thơng tin
theo ý muốn.
+ Subcribe (Đăng ký) nhận tin tức mới bằng
cách nhập email
Visiter
Mô tả yêu cầu đối với các Actor
Adminstrator
-
Đăng nhập vào Website.
-
Quản lý thành viên.
-
Quản lí tag.
-
Quản lí series bài viết.
-
Quản lý bài ghim.
-
Bảo trì, bảo dưỡng hệ thống website.
Editors(Users) / Member
-
Thêm, sửa, xố thơng tin các bài viết.
Visitor (bạn đọc)
- Xem thông tin các bài viết.
- Đăng ký nhận tin tức ( nếu có).
- Tìm kiếm thơng tin. (tìm kiếm chung, tìm kiếm nâng cao)
Biểu đồ Usecase mức tổng quát
Biểu đồ use case tổng quát của Website
Biểu đồ Usecase mức đăng nhập
Biểu đồ use case Đăng nhập
Tác nhân : admin/ editor
Mô tả: Chức năng này cho phép Admin và các thành viên đăng nhập vào hệ thống để
sử dụng các chức năng của Website. Khi các thành viên muốn thao tác với các chức
năng của hệ thống bắt buộc phải đăng nhập theo đúng thơng tin đã đăng kí trước đó..
-
Dịng sự kiện chính:
Bắt đầu Admin và thành viên đăng nhập vào website.
Hệ thống yêu cầu Admin và thành viên đăng nhập vào website.
Admin và thành viên nhập tên và mật khẩu.
Hệ thống kiểm tra tên và mật khẩu đúng với thơng tin đã đăng kí và cho
phép người dùng đăng nhập vào website.
- Nếu người dùng chưa nhập “ Tên đăng nhập ” và “mật khẩu ” mà nhấn
vào nút “ Đăng nhập ” thì coi như đăng nhập khơng hợp lệ.
Dòng sự kiện phụ:
- Nếu người dùng nhập tài khoản và mật khẩu sai thì website sẽ báo lỗi và
yêu cầu người dùng đăng nhập lại.
- Các yêu cầu đặc biệt: Khơng có.
-
Điều kiện bắt buộc: Khơng có.
Biểu đồ Usecase Quản lý người dùng
Tác nhân: Admin.
Mô tả: Chức năng này cho phép Admin quản lý các thành viên (users) trong hệ
thống Website. Admin được phép tạo tài khoản cho người dùng và cấp phát quyền cho
người dùng đó hoặc sửa, xóa người dùng.
Dịng sự kiện chính
- Admin truy xuất vào chức năng quản lý người dùng.
- Admin chọn người dùng mới tạo tài khoản bằng cách nhập thông tin yêu
-
cầu và cấp phát quyền của người dùng đó đối với hệ thống.
Admin chọn người dùng để chỉnh sửa thông tin.
Admin xóa người dùng .
Tất cả các tùy chọn được lưu lại và gửi tới webserver để cập nhật vào cơ
sở dữ liệu.
Dòng sự kiện phụ:
- Nếu tài khoản tạo mới đó đã tồn tại trong csdl thì hệ thống sẽ thông báo
lỗi và yêu cầu Admin kiểm tra và tạo lại.
- Xóa tài khoản người dùng đồng nghĩa với các bản tin của người dùng đó
bị xóa
- Nếu admin khơng đăng ký thì sẽ chọn “Thốt” thì trang đăng ký sẽ đóng
lại.
-
Biểu đồ Usecase Quản lý bài viết
Tác nhân: Admin/ editor
Mô tả: Admin/ editor được quyền cập nhật thơng tin bài viết mới, sửa, xóa bài viết sau
khi đăng nhập hệ thống với quyền tương ứng
Dòng sự kiện chính:
- Admin/ editor truy xuất vào chức năng quản lý bài viết.
- Admin/ editor cập nhật thông tin cho bài viết như: tiêu đề, ảnh, nội
dung…
-
Admin/ editor sau khi cập nhật đầy đủ thông tin có thể sửa thơng tin hoặc
xóa bài viết.
Tất cả các tùy chọn được lưu lại và gửi tới webserver để cập nhật vào cơ
sở dữ liệu
Biểu đồ Usecase Quản lý thành viên phản hồi
Biểu đồ use case Quản lý thành viên phản hồi
Biểu đồ use case Quản lý thành viên phản hồi
Tác nhân: Admin
Mơ tả: Có được quyền quản lý member và các phản hồi của member đối với bản tin
Tác nhân chính:
- Admin truy xuất vào chức năng quản lý member
- Admin chọn member để chỉnh sửa member: kích hoạt tài khoản, khóa tài
khoản giúp cho việc quản lý phản hồi sau mỗi bản tin.
- Admin xóa member khỏi CSDL
- Tất cả các tùy chọn được lưu lại và gửi tới webserver để update vào csdl
Tác nhân phụ:
Xóa tải khoản member đồng nghĩa xóa các phản hồi của member đó đối với bản tin
Biểu đồ Usecase Quyền người dùng (bạn đọc)
Biểu đồ use case Phản hồi
Tác nhân: Visiter
Mô tả: Visiter đọc bản tin và gửi phản hồi saumỗi bản tin khi đã đăng nhập thành cơng
vào hệ thống.
Tác nhân chính:
- Visitor truy cập vào hệ thống, chọn một trong các chuyên mục trên trình
-
duyệt
Đọc bài viết, tìm kiếm các bài viết
Visitor đăng ký nhận tin mới thông qua email bằng cách nhập email trên
giao diện
Biểu đồ Usecase Quản lý bài ghim
Biểu đồ use case Quản lý bài ghim
Tác nhân: Admin
Mô tả: Admin được quyền thêm mới bài ghim, sửa, xóa bài ghim sau khi đăng nhập
với quyền tương ứng.
-
Tác nhân chính
Admin truy cập vào hệ thống và chọn quản lý bài ghim
Admin được phép cập nhật thêm bài ghim.
Admin chọn độ ưu tiên để sửa bài ghim hoặc xóa bài ghim
Hệ thống sẽ cập nhật vào cơ sử dữ liệu và gửi lại lên Webserver
Biểu đồ Usecase Tìm kiếm
Biểu đồ use case Tìm kiếm
Tác nhân: Visiter/Admin
Mơ tả: Tìm kiếm thơng tin các bài viết
Tác nhân chính:
- Visitor click trên nút tìm kiếm ở trang chủ và đánh từ khóa (thơng tin
-
muốn tìm kiếm)
Trình duyệt sẽ gửi từ khóa mà visitor muốn tìm kiếm tới webserver
Webserver truy vấn CSDL và gửi lại những thơng tin tìm kiếm cho
visitor
Visitor xem bản tin vừa tìm được
Biểu đồ Usecase Quản lý bài ghim
Biểu đồ use case Quản lý series bài viết
Tác nhân: Admin
Mô tả: Admin được quyền thêm mới series, sửa, xóa series sau khi đăng nhập với
quyền tương ứng.
-
Tác nhân chính
Admin truy cập vào hệ thống và chọn quản lý series
Admin được phép cập nhật thêm serie.
Admin chọn series để thêm, sửa, xóa bài viết vào series
Hệ thống sẽ cập nhật vào cơ sử dữ liệu và gửi lại lên Webserver
1.1.
Thiết kế cơ sở dữ liệu: ERD, mô tả về dữ liệu, Diagram
1.2.1: ERD:
1.2.2:Các bảng dữ liệu:
+)Posts :
+)Tags:
+)Series:
+)Users:
1.2.3:Diagram:
3. Thiết kế hệ thống
3.1.
Xây dựng giao diện và các chức năng cho hệ thống.
3.1.1:Giao diện đăng nhập:
3.1.2:Giao diện Admin:
3.1.3:Giao diện người dùng:
3.1.4: Giao diện tìm kiếm cho người dùng:
3.1.5: Quản lý bài ghim:
3.1.6: Quản lý series bài viết:
3.1.7: Giao diện đổi mật khẩu và đăng ký người dùng:
4. Kiểm thử
1.1.
Mục tiêu phát hiện lỗi trong quá trình xây dựng hệ thống
1.2.
Cách thức: xây dựng danh mục các test case. Mỗi test case cần có:
- Mục tiêu test
- Dữ liệu đầu vào, các ràng buộc
Đầu ra dự kiến
Đầu ra thực tế
- Kết quả test pass/fail -> đề xuất và mơ tả q trình fix lỗi
1.3. Cách thức kiểm thử:
Các thành viên trong nhóm thay nhau trải nghiệm website và tìm ra điểm
bất cập sau đó hội bàn đưa ra những vấn đề cịn tồn đọng và phương pháp giải
quyết.
Test case 1:
o Mục tiêu: Thêm bài viết vào cơ sở dữ liệu
o Dữ liệu đầu vào: Thông tin bài viết bao gồm các dữ liệu cần có.
o Đầu ra dự kiến: Cập nhật được thơng tin của bài viết trong cơ sở dữ liệu
o Đầu ra thực tế: Cập nhật không thành công
o Kết quả: Fail.
Đề xuất: Cần kiểm tra lại thông tin: slug của bài viết cần chứa id để dùng
cho bài ghim, upload ảnh dùng System.IO
-
-
Test case 2:
o Mục tiêu: Upload ảnh lên cơ sở dữ liệu thông qua trang admin
o Dữ liệu đầu vào: Thông tin bài viết bao gồm ảnh.
o Đầu ra dự kiến: Cập nhật được bài viết mới cùng ảnh đi kèm bao gồm
ảnh tiêu đề và ảnh trong bài viết.
o +
Đầu ra thực tế: Cập nhật thành công nhưng khơng có ảnh trong bài
viết
o Kết quả thử nghiệm: Fail (sử dụng thư viện ckeditor chưa thể upload ảnh
trực tiếp được chỉ thêm được bằng cách copy paste ảnh).
Đề xuất: Cần kiểm tra lại thông tin: Sử dụng ckfinder để upload ảnh
trong bài viết
o
o
o
o
o
-
Test case 3:
Mục tiêu: Kiểm thử tính năng lọc theo ngày đăng
Dữ liệu đầu vào: Ngày tháng bắt đầu và kết thúc
Đầu ra dự kiến: Lọc thành công các sản phẩm theo đúng ngày chọn
Đầu ra thực tế: Lỗi gày kết thúc nhỏ hơn ngày bắt đầu
Kết quả thử nghiệm: Fail.
Đề xuất: Nếu ngày kết thúc nhỏ hơn thì gán bằng ngày bắt đầu +1
Test case 4:
o Mục tiêu: Sửa người dùng
o Dữ liệu đầu vào: username
o Đầu ra dự kiến: Lưu được người dùng cùng với thông tin đã thay đổi
o
o
-
Đầu ra thực tế: Admin không sửa được mật khẩu
Kết quả thử nghiệm: Admin khơng xem được mật khẩu vì dùng MD5
hash theo như tìm hiểu trên mạng thì đây là hàm hash 1 chiều chưa tìm ra
cách để decrypt
Đề xuất: Chưa có đề xuất
Test case 5:
o Mục tiêu: Đăng nhập với ghi nhớ thông tin
o Dữ liệu đầu vào: username, password
o Đầu ra dự kiến: Vào được trang admin khi đăng xuất vẫn lưu thông tin
o Đầu ra thực tế: Đăng nhập vào được chưa lưu được thông tin tài khoản
o Kết quả thử nghiệm: Đã đăng nhập được nhưng giá trị memberme trả về
cả 2 giá trị true và false nên không thể set vào cookie được
Đề xuất: Chưa có đề xuất
Test case 6:
o Mục tiêu: Thêm, sửa, xóa bài ghim
o Dữ liệu đầu vào: id bài viết
o Đầu ra dự kiến: Thêm, sửa, xóa các bài được ghim
o Đầu ra thực tế: Thành công
o Kết quả thử nghiệm: Đã cho lên bài ghim được
Đề xuất: Bài ghim ở giao diện chính có thể thêm slide cho trượt ảnh bài
viết thay vì 3 bài. Trong quản lý bài ghim có nhiều hơn 3 bài.
-
-
Test case 7:
o Mục tiêu: Thêm, sửa, xóa series bài viết và thêm được bài viết vào series
o Dữ liệu đầu vào: tên series, id bài viết
o Đầu ra dự kiến: Thêm, sửa, xóa được series và thêm bài viết vào series
o Đầu ra thực tế: Thành công
o Kết quả thử nghiệm: Đã cho lên series bài viết.
5. Kết luận, Bảng phân công công việc của nhóm, Tài liệu tham khảo.
Thành viên
Ngơ Trung Hiếu
Mã sinh viên
191213136
Công việc
Quản lý bài viết, bài ghim,
series bài viết, gửi mail
Đoàn Huy Tuấn Hải
Đào Nhật Tân
Bùi Văn Hùng
-
191210360
191204022
191202050
cho visitor
Quản lý người dùng
Quản lý bài viết của editor
Quản lý Tag
Công việc chung
Thiết kế giao diện admin, visitor.
Thiết kế cơ sở dữ liệu
Đăng nhập, đăng ký tài khoản dùng cookie
Tìm kiếm nâng cao
Các bảng admin đều có tìm kiếm, phân trang
Viết báo cáo
Với tốc độ phát triển ngày càng tăng của mạng máy tính, việc cập nhật thơng tin
cuộc sống hằng ngày là một sự lựa chọn hết sức phù hợp. Chính vì vậy qua quá
trình tìm hiểu, khảo sát, em đã chọn và xây dựng web tin tức này để giải quyết
vấn đề ấy .
Với kiến thức nền tảng cộng thêm sự giảng dạy trên lớp tận tình của thầy Lại
Mạnh Dũng, chúng em đã hoàn thành đề tài và chúng em đã phần nào hiểu được
quy trình, cách thức xây dựng một website. Chúng em đã hiểu hơn về các ngôn
ngữ HTML, CSS, javascript, biết cách sử dụng các công cụ hỗ trợ để xây dựng
trang web nhằm tiết kiệm thời gian, công sức thiết kế website.
Mặc dù hệ thống website đã hồn thành, nhưng nó vẫn cịn rất nhiều mặt hạn
chế và vấn đề thiếu xót. Như là, mơ tả các chức năng chưa đầy đủ, thiếu chính
xác, thiết kế giao diện sơ xài và chưa được chuẩn hóa, chưa thực sự hoàn
thiện,... Chúng em rất mong nhận được sự đóng góp của thầy giáo và các bạn để