Đồ án tốt nghiệp ngành Hệ thống thông tin. Hệ thống quản lý và tìm kiếm đồ án. Xây dựng trên nền web và sử dụng thư viện Lucene cho tìm kiếm. Hệ thống quản lý và tìm kiếm đồ án cho phép tìm kiếm toàn văn trên tài liệu.
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
Trang 2LỜI CẢM ƠN
Lời đầu tiên cho em gửi lời cảm ơn chân thành tới tất cả các thầy, cô và cán bộ công tác tạitrường Đại học Bách Khoa Hà Nội, các thầy cô trong Viện Công nghệ thông tin và Truyềnthông đã tận tình giảng dạy và truyền đạt cho em những kiến thức bổ ích trong suốt nhữngnăm học vừa qua Nhờ đó mà em có được nền tảng vững chắc về chuyên ngành Công nghệthông tin để có thể tiếp tục học tập, làm việc và cống hiến cho xã hội
Em xin bày tỏ lời cám ơn sâu sắc tới cô giáo, TS Vũ Tuyết Trinh, người đã tận tình chỉ bảo,hướng dẫn, tạo điều kiện cho em trong suốt quá trình làm đồ án tốt nghiệp
Em cũng xin gửi lời cảm ơn tới thầy Phạm Đăng Hải và tập thể lớp CNTT1- K54, nhữngngười đã đồng hành cùng em trong suốt những năm học vừa qua
Cuối cùng con xin gửi lời cảm ơn chân thành tới Bố, Mẹ và toàn thể gia đình, người thân đãquan tâm, động viên con trong suốt quá trình học tập và nghiên cứu tại trường
Hà Nội, ngày 29 tháng 5 năm 2014
Tác giả ĐATN
Nguyễn Bảo Chung
Trang 3PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
1 Thông tin về sinh viên
Họ và tên sinh viên: Nguyễn Bảo Chung
Điện thoại liên lạc 01656094439 Email: bkitk54@gmail.com
Lớp: CNTT1 – K54 Hệ đào tạo: Đại học
Đồ án tốt nghiệp được thực hiện tại:
Thời gian làm ĐATN: Từ ngày 01/03/2014 đến 31/05 /2014
2 Mục đích nội dung của ĐATN
Xây dựng hệ thống tìm kiếm và quản lý đồ án cho sinh viên đại học Hệ thống có thể tìm kiếmtrên toàn bộ nội dung của đồ án cũng như từ các thông tin trích rút được từ đồ án Cho phépngười dùng upload đồ án lên hệ thống cũng như quản lý các đồ án của mình Cho phép quảntrị viên quản lý toàn bộ đồ án cũng như người dùng trong hệ thống
3 Các nhiệm vụ cụ thể của ĐATN
- Tìm hiểu về trích rút thông tin, đánh chỉ mục và tìm kiếm trên toàn bộ nội dung của tài liệu Cụ thể ở đây là những đồ án của sinh viên
- Đưa ra phương pháp đánh chỉ mục, cũng như tìm kiếm hỗ trợ tiếng việt
- Xây dựng hệ thống tìm kiếm và quản lý đồ án
- Đánh giá, kiểm định kết quả đạt được
- Nêu những hạn chế và hướng phát triển của đề tài
4 Lời cam đoan của sinh viên:
Tôi – Nguyễn Bảo Chung - cam kết ĐATN là công trình nghiên cứu của bản thân tôi dưới sự hướng dẫn của TS Vũ Tuyết Trinh
Các kết quả nêu trong ĐATN là trung thực, không phải là sao chép toàn văn của bất kỳ côngtrình nào khác
Hà Nội, ngày tháng năm
Tác giả ĐATN
Nguyễn Bảo Chung
5 Xác nhận của giáo viên hướng dẫn về mức độ hoàn thành của ĐATN và cho phép bảo vệ:
Hà Nội, ngày tháng năm
Giáo viên hướng dẫn
TS Vũ Tuyết Trinh
3
Trang 4TÓM TẮT NỘI DUNG ĐỒ ÁN TỐT NGHIỆP
Đồ án thực hiện nhằm sử dụng thư viện tìm kiếm Lucene cho tìm kiếm toàn văn tài liệu mà cụ thể ở đây là đồ án tốt nghiệp của sinh viên Hệ thống được xây dựng trên nền web và cho phépngười dùng có thể xem, tìm kiếm, upload, và quản lý đồ án của chính người đó upload lên hệ thống Người quản trị hệ thống ngoài những chức năng như người dùng bình thường, có quyềnquản lý toàn bộ cơ sở dữ liệu về đồ án cũng như về người dùng trong hệ thống
Nội dung đồ án tốt nghiệp bao gồm 5 phần:
Chương 1: Giới thiệu đề tài, mô tả bài toán.
Chương 2: Phân tích chức năng
Chương 3: Thiết kế chi tiết hệ thống
Chương 4: Cài đặt hệ thống
Chương 5: Kết luận, đánh giá ưu nhược điểm và nêu hướng phát triển cho hệ thống
Trang 5Mục lục
M c l c ục lục ục lục
HỆ THỐNG QUẢN LÝ ĐỒ ÁN 1
LỜI CẢM ƠN 2
PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP 3
TÓM TẮT NỘI DUNG ĐỒ ÁN TỐT NGHIỆP 4
Mục lục 5
Danh mục hình vẽ 7
Danh mục các bảng 8
CHƯƠNG I GIỚI THIỆU 9
1.1 Giới thiệu và mô tả bài toán 9
1.2 Định hướng giải quyết 9
CHƯƠNG II PHÂN TÍCH CHỨC NĂNG 11
2.1 Khảo sát yêu cầu người dùng và phân tích chức năng 11
2.2 Đặc tả ca sử dụng (Use Case) 13
2.2.1 Use case dành cho tác nhân người dùng 13
2.2.2 Use case dành cho tác nhân admin 17
CHƯƠNG III THIẾT KẾ CHI TIẾT HỆ THỐNG 22
3.1 Tiến trình hoạt động của hệ thống 22
3.1.1 Biểu đồ hoạt động tìm kiếm đồ án 22
3.1.2 Biểu đồ hoạt động cho quản lý tài khoản 22
3.1.3 Biểu đồ hoạt động cho quản lý đồ án 22
3.1.4 Biểu đồ hoạt động xem đồ án 24
3.1.5 Biểu đồ hoạt động quản lý người dùng 24
3.2 Biểu đồ trình tự 24
3.2.1 Biểu đồ trình tự Xem đồ án 25
3.2.2 Biểu đồ trình tự tìm kiếm đồ án 25
3.2.3 Biểu đồ trình tự quản lý đồ án 26
5
Trang 63.2.4 Biểu đồ trình tự quản lý tài khoản 27
3.2.5 Biểu đồ trình tự quản lý người dùng 28
3.3 Biểu đồ lớp 30
3.4 Thiết kế cơ sở dữ liệu 30
CHƯƠNG IV CÀI ĐẶT HỆ THỐNG 33
4.1 Công cụ và môi trường cài đặt 33
4.2 Thử nghiệm chương trình 34
CHƯƠNG V KẾT LUẬN 42
5.1 Kết luận 42
5.2 Hướng phát triển 42
Trang 7Danh mục hình vẽ
Hình 5: Use case tổng thể toàn hệ thống 13
Hình 6: Biều đồ use case tổng quan cho người dùng 14
Hình 7: Use case quản lý tài khoản người dùng 15
Hình 8: Biểu đồ Use case quản lý đồ án 16
Hình 9: Biểu đồ use case Tìm kiếm đồ án 17
Hình 10: Biểu đồ use case cho admin 18
Hình 11: Biểu đồ use case Quản lý tài khoản 19
Hình 12: Biểu đồ use case quản lý người dùng 20
Hình 13: Biểu đồ use case Quản lý đồ án cho admin 21
Hình 15: Biếu đồ hoạt động tìm kiếm đồ án 22
Hình 16: Biểu đồ hoạt động quản lý tài khoản 22
Hình 17: Biểu đồ hoạt động quản lý đồ án 23
Hình 18: Biểu đồ hoạt động xem đồ án 24
Hình 19: Biểu đồ hoạt động quản lý người dùng 24
Hình 20: Biểu đồ trình tự xem đồ án 25
Hình 21: Biểu đồ trình tự tìm kiếm đồ án 25
Hình 22: Biểu đồ trình tự upload đồ án 26
Hình 23: Biểu đồ trình tự sửa thông tin đồ án 26
Hình 24: Biểu đồ trình tự xoá đồ án 27
Hình 25: Biểu đồ trình tự quản lý tài khoản 27
Hình 26: Biểu đồ trình tự thêm người dùng 28
Hình 27: Biểu đồ trình tự sửa người dùng 28
Hình 28: Biểu đồ trình tự xoá người dùng 29
Hình 29: Biểu đồ lớp chi tiết 30
Hình 30: Thiết kế cơ sở dữ liệu của hệ thống 31
Hình 31: Trang chủ hệ thống 34
Hình 32: Giao diện tìm kiếm 35
Hình 33: Giao diện xem đồ án 37
Hình 34: Giao diện đăng nhập 38
Hình 35: Giao diện upload đồ án 38
Hình 36: Giao diện quản lý đồ án của người dùng 39
Hình 37: Giao diện quản lý người dùng của admin 40
Hình 38: Giao diện sửa thông tin đồ án 40
Hình 39: Giao diện sửa thông tin người dùng 41
7
Trang 8Danh mục các bảng
Bảng 1 Mô tả use case quản lý tài khoản người dùng 15
Bảng 2: Mô tả use case quản lý đồ án 16
Bảng 3: Mô tả use case tìm kiếm đồ án 17
Bảng 4: Mô tả use case quản lý tài khoản 19
Bảng 5: Mô tả use case quản lý người dùng 20
Bảng 6: mô tả use case quản lý đồ án cho admin 21
Bảng 7: Bảng dữ liệu user 31
Bảng 8: Bảng dữ liệu document 32
Bảng 9: Bảng dữ liệu student 32
Bảng 10: Bảng dữ liệu lecturer 32
Trang 9CHƯƠNG I GIỚI THIỆU
1.1 Giới thiệu và mô tả bài toán
Mỗi mùa đồ án đến, các khoa viện đều nhận được số lượng đồ án rất lớn Trong khisinh viên có nhu cầu tìm kiếm những đồ án này để tham khảo trong quá trình thực hiện
đồ án của mình Vậy làm sao để quản lý những đồ án này một cách hiệu quả để cáckhoa viện dễ dàng quản lý cũng như các sinh viên khi muốn tham khảo dễ dàng tìmkiếm được đúng đề tài mình cần
Xuất phát từ thực tế trên, em xin chọn đề tài: “Xây dựng hệ thống quản lý đồ án”.
Hệ thống được xây dựng với chức năng cho phép người dùng xem, tìm kiếm, upload,dowload đồ án
Đối với quản trị viên: Ngoài các chức năng như người dùng bình thường của hệ thống còn có chức năng quản lý (thêm, sửa, xoá) toàn bộ đồ án trong cơ sở dữ liệu cũng như toàn bộ người dùng của hệ thống
Ngoài ra, những người mà không phải thành viên của hệ thống, vẫn có thể sử dụng một
số chức năng như xem, tìm kiếm đồ án hoặc đăng ký làm thành viên của hệ thống
1.2 Định hướng giải quyết
Phương pháp phân tích thiết kế : Phân tích thiết kế hướng đối tượng Phương pháphướng đối tượng gồm các bước sau:
- Phân tích chức năng:
o Xây dựng biểu đồ use case
- Thiết kế chi tiết hệ thống:
o Xây dựng biểu đồ tương tác (hoạt động, trình tự),
Trang 10Trong đồ án thông thường có trang bìa và trang phiếu giao nhiệm vụ có chứa nhiềuthông tin về đồ án Xử lý thông tin trong tờ bìa và trang phiếu giao nhiệm vụ có thểtrich rút ra các thông tin cần thiết như: tên sinh viên, giảng viên hướng dẫn, tên đề tài,nội dung đồ án Những thông tin này được lưu vào csdl và index vào lucene nhằm mụcđích quản lý và tìm kiếm.
Trang 11CHƯƠNG II PHÂN TÍCH CHỨC NĂNG
2.1 Khảo sát yêu cầu người dùng và phân tích chức năng
2.1.1 Các tác nhân của hệ thống
Hệ thống được xây dựng cho 3 actor:
Khách: Là những người không phải người dùng của hệ thống Khách có thể tìm
kiếm, xem đồ án, đăng ký thành viên
Người dùng: Là những người đã có tài khoản trong hệ thống Ngoài những chức
năng như khách, người dùng có thể upload đồ án, tải đồ án, quản lý đồ án
Quản trị viên: Là người quản trị hệ thống, có toàn quyền thêm sửa, xoá CSDL
11
Trang 122.1.2 Xác định các chức năng ứng với mỗi actor:
Trang 132.2 Đặc tả ca sử dụng (Use Case)
Use case tổng quan cho hệ thống
Hình 1: Use case tổng thể toàn hệ thống
2.2.1 Use case dành cho tác nhân người dùng
Use case tổng quát đối với người dùng
13
Trang 14Hình 2: Biều đồ use case tổng quan cho người dùng
Trang 15Use case Quản lý người dùng cho tác nhân người dùng
Hình 3: Use case quản lý tài khoản người dùng
Mô tả Người dùng thực hiện đăng ký, đăng nhập, sửa thông tin cá nhân
Thông tin đưa vào Yêu cầu người dùng
Hệ thống xử lý
Đăng ký: kiểm tra thông tin đăng nhập, nếu đúng lưu vào
CSDL, nếu sai yêu cầu nhập lại
Đăng nhập: kiểm tra thông tin đăng nhập, nếu đúng chuyển
sang trạng thái đã đăng nhập, nếu sai y/c nhập lại
Sửa thông tin: ghi lại sự thay đổi của người dùng và lưu vào
CSDLThông tin trả về Thông tin sau khi update hoặc báo lỗi
Bảng 1 Mô tả use case quản lý tài khoản người dùng
15
Trang 16Use case quản lý đồ án cho người dùng
Hình 4: Biểu đồ Use case quản lý đồ án
Thông tin vào
Xem, xóa : Yêu cầu người dùng Sửa đồ án: thông tin update Thêm đồ án: file đồ án, thông tin đồ án
Hệ thống xử lý Tìm kiếm, thêm, sửa, xoá đồ án theo yêu cầu người dùng, cập
nhật lại CSDL và chỉ mụcThông tin trả về Hiển thị kết quả lên giao diện
Bảng 2: Mô tả use case quản lý đồ án
Trang 17Use case tìm kiếm đồ án cho người dùng
Hình 5: Biểu đồ use case Tìm kiếm đồ án
hệ thống cung cấp
Hệ thống xử lý Tìm kiếm trong chỉ mục và hiển thị danh sách kết quả lên
trang web cho người dùng
Thông tin trả về Các kết quả phù hợp với từ khóa
Bảng 3: Mô tả use case tìm kiếm đồ án
2.2.2 Use case dành cho tác nhân admin
Biểu đồ use case tổng quan cho admin
17
Trang 18Hình 6: Biểu đồ use case cho admin
Trang 19Use case quản lý tài khoản cho admin, user
Hình 7: Biểu đồ use case Quản lý tài khoản
Thông tin vào Yêu cầu của admin, thông tin update
Hệ thống xử lý Đăng nhập: kiểm tra thông tin đăng nhập, nếu đúng chuyển
sang giao diện quản trị, nếu sai yêu cầu nhập lại
Sửa hồ sơ: ghi lại sự thay đổi của người dùng và lưu vào
CSDLThông tin trả về Hiển thị kết quả lên giao diện hoặc báo lỗi
Bảng 4: Mô tả use case quản lý tài khoản
19
Trang 20Use case quản lý người dùng cho admin
Hình 8: Biểu đồ use case quản lý người dùng
Mô tả Quản trị viên thực hiện quản lý thêm, xoá, sửa thông tin của
các user trong hệ thống
Thông tin vào Yêu cầu của quản trị viên Thông tin về người dùng cần
thêm, sửa
Hệ thống xử lý Thực hiện việc thêm, sửa, xoá người dùng, cập nhật lại
CSDL Thông tin trả về Hiển thị kết quả lên giao diện hoặc báo lỗi
Bảng 5: Mô tả use case quản lý người dùng
Trang 21Use case quản lý đồ án cho admin
Hình 9: Biểu đồ use case Quản lý đồ án cho admin
Thông tin vào Yêu cầu của admin, các thông tin về đồ án cần thêm, sửa
Hệ thống xử lý Thực hiện thêm, sửa, xoá đồ án theo yêu cầu của quản trị
viên, cập nhật lại CSDL và đánh chỉ mụcThông tin trả về Hiển thị kết quả lên giao diện hoặc báo lỗi
Bảng 6: mô tả use case quản lý đồ án cho admin
21
Trang 22CHƯƠNG III THIẾT KẾ CHI TIẾT HỆ THỐNG
3.1 Tiến trình hoạt động của hệ thống
3.1.1 Biểu đồ hoạt động tìm kiếm đồ án
Hình 10: Biếu đồ hoạt động tìm kiếm đồ án
3.1.2 Biểu đồ hoạt động cho quản lý tài khoản
Hình 11: Biểu đồ hoạt động quản lý tài khoản
3.1.3 Biểu đồ hoạt động cho quản lý đồ án
Trang 23Hình 12: Biểu đồ hoạt động quản lý đồ án
23
Trang 243.1.4 Biểu đồ hoạt động xem đồ án
Hình 13: Biểu đồ hoạt động xem đồ án
3.1.5 Biểu đồ hoạt động quản lý người dùng
Hình 14: Biểu đồ hoạt động quản lý người dùng
3.2 Biểu đồ trình tự
Trang 263.2.3 Biểu đồ trình tự quản lý đồ án
Thêm đồ án
Hình 17: Biểu đồ trình tự upload đồ án
Sửa đồ án
Trang 27 Xoá đồ án
Hình 19: Biểu đồ trình tự xoá đồ án
3.2.4 Biểu đồ trình tự quản lý tài khoản
Hình 20: Biểu đồ trình tự quản lý tài khoản
27
Trang 283.2.5 Biểu đồ trình tự quản lý người dùng
Thêm người dùng
Hình 21: Biểu đồ trình tự thêm người dùng
Sửa người dùng
Trang 29Hình 23: Biểu đồ trình tự xoá người dùng
29
Trang 303.3 Biểu đồ lớp
Hình 24: Biểu đồ lớp chi tiết
3.4 Thiết kế cơ sở dữ liệu
Trang 31Hình 25: Thiết kế cơ sở dữ liệu của hệ thống
Trang 32user
hướng dẫn sinh viên
Bảng 10: Bảng dữ liệu lecturer
CHƯƠNG IV CÀI ĐẶT HỆ THỐNG
4.1 Công cụ và môi trường cài đặt
Công cụ và phần mềm được sử dụng trong chương trình : Netbean, Notepad++, Wamp server
Trang 33Để thực hiện việc tìm kiếm trên các tài liệu (đồ án), ở đây ta dùng thư viện mã nguồn
mở Lucene để đánh chỉ mục và tìm kiếm Lucene là một thư viện mã nguồn mở cho tìm kiếm toàn văn, được phát triển bởi Dough Cutting (hiện đang làm việc cho Yahoo).Thư viện này cung cấp các hàm cơ bản hỗ trợ cho việc đánh chỉ mục và tìm kiếm Để
có thể sử dụng Lucene, cần phải có sẵn dữ liệu Dữ liệu có thể là tập hợp các tập tin dạng PDF, Word hay là các trang web HTML; hoặc là dữ liệu lưu trong các hệ quản trịCSDL như MS SQL Server hay MySQL Với Lucene, ta có thể tiến hành đánh chỉ mụctrên dữ liệu hiện có để sau này có thể thực hiện thao tác tìm kiếm toàn văn trên dữ liệu đó
Việc sử dụng thư viện Lucene có một số ưu điểm so với việc tìm kiếm sử dụng câu lệnh SQL như:
Có thể tìm kiếm toàn văn trên các tài liệu
Không bị giới hạn bởi cú pháp của ngôn ngữ SQL
Tốc độ tìm kiếm nhanh hơn rất nhiều
Độ chính xác và số lượng kết quả trả về đầy đủ hơn
Một trong những bước cơ bản khi xây dựng hệ thống tìm kiếm là trích rút văn bản từ tài liệu cần đánh chỉ mục Nếu tài liệu là ở định dạng text, thì ta có thể dễ dàng sử dụngthư viện có sẵn của java để trích rút văn bản trong file đó Tuy nhiên, trong thực tế, phần lớn tài liệu được lưu dưới rất nhiều định dạng như doc, docx, pdf hay html Do
đó, để đánh chỉ mục với mỗi tài liệu, đầu tiên chúng ta cần xác định tài liệu thuộc loại
gì, sau đó dùng API cần thiết để trích rút ra văn bản từ tài liệu đó Ở đây ta dùng một
bộ thư viện mã nguồn mở gọi là Tika để làm những việc trên
Ngoài ra chương trình còn sử dụng một số thư viện như View.JS để đọc tài liệu trên web, PHPExcel để import, export CSDL sang file Excel, PHPJavaBridge để kết nối, truyền dữ liệu từ chương trình java sang trang web sử dụng php
4.2 Thử nghiệm chương trình
4.2.1 Giao diện chương trình
33
Trang 34Hình 26: Trang chủ hệ thống
Trang 35Hình 27: Giao diện tìm kiếm
35
Trang 36Tìm kiếm nâng cao
Trang 37Hình 28: Giao diện xem đồ án
37
Trang 38Hình 29: Giao diện đăng nhập
Trang 39Hình 31: Giao diện quản lý đồ án của người dùng
39
Trang 40Hình 32: Giao diện quản lý người dùng của admin
Trang 41Hình 34: Giao diện sửa thông tin người dùng
4.3 Đánh giá kết quả
4.3.1 Ưu điểm
Hệ thống hoàn thành đầy đủ các chức năng yêu cầu
Tốc độ tìm kiếm nhanh, kết quả tìm kiếm tương đối chính xác
Các chức năng quản lý thực hiện tốt
4.3.2 Nhược điểm
Giao diện chưa được đẹp, thân thiện với người sử dụng
Các chức năng chưa phong phú
41