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

Xây dựng website giới thiệu, đánh giá về sách

69 5 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 69
Dung lượng 1,91 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Tính cấp thiết của đề tài: Ngày nay, ứng dụng công nghệ thông tin và việc tin học hóa được xem là một trong những yếu tố mang tính quyết định trong hoạt động của các chính phủ, tổ chức,

Trang 1

ĐẠI HỌC ĐÀ NẴNG KHOA TIN HỌC

BÁO CÁO KHÓA LUẬN TỐT NGHIỆP

XÂY DỰNG WEBSITE GIỚI THIỆU VÀ

ĐÁNH GIÁ VỀ SÁCH

Sinh viên thực hiện: Mai Văn Nhật Tiến

Đà Nẵng, 4/2019

Trang 2

Để hoàn thành đồ án thực tập ngoài sự nổ lực của bản thân, em

đã nhận được sự hướng dẫn và giúp đỡ tận tình từ nhiều phía Tất cả những điều đó đã trở thành động lực lớn giúp em hoàn thành tốt đợt thực tập này Với tất cả sự cảm kích em xin gửi lời cảm ơn đến tất cả mọi người

Trước tiên em xin chân thành cảm ơn thầy Ts Nguyễn Trần Quốc Vinh đã nhiệt tình hỗ trợ, hướng dẫn em trong việc chọn đề tài, hướng tiếp cận, giúp chúng em chỉnh sửa những thiết sót trong quá trình nghiên cứu Và em xin gửi lời cảm, sự tri ân sâu sắc đối với các thầy

cô của Khoa Tin Học- Đại học Sư Phạm Đà Nẵng đã tận tình dạy bảo, giúp đỡ em trong thời gian em học tại trường cũng như trong thời gian

em thực tập

Em xin được gửi lời cảm ơn đến lãnh đạo trường Đại học Sư phạm Đà Nẵng, lãnh đạo khoa Tin học đã tạo ra những cơ hội và điều kiện học tập giúp em có được những kiến thức bổ ích để hoàn thành đồ

án nghiên cứu

Xin trân trọng cảm ơn!

Đà Nẵng, ngày 10 tháng 04 năm 2019

Sinh viên thực hiện

Mai Văn Nhật Tiến

Trang 3

Tôi xin cam đoan:

1 Những nội dung trong báo cáo này là do tôi thực hiện dưới sự hướng dẫn trực tiếp của thầy TS Nguyễn Trần Quốc Vinh

2 Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá, tôi xin chịu hoàn toàn trách nhiệm

Sinh viên thực hiện

Mai Văn Nhật Tiến

Trang 4

Đà Nẵng, ngày tháng năm 2019 Cán bộ hướng dẫn

Trang 5

Đà Nẵng, ngày tháng năm 2019

Hội đồng phản biện

Trang 6

LỜI MỞ ĐẦU 1

1 Tính cấp thiết của đề tài: 1

2 Mục tiêu và nhiệm vụ nghiên cứu: 1

2.1 Mục tiêu: 1

2.2 Nhiệm vụ: 2

3 Đối tượng và phạm vi nghiên cứu: 2

3.1 Đối tượng nghiên cứu: 2

3.2 Phạm vi nghiên cứu: 2

4 Phương pháp nghiên cứu: 3

4.1 Về mặt lý thuyết: 3

4.2 Về mặt lập trình: 3

5 Phương tiện, công cụ triển khai: 3

6 Kết quả dự kiến và hướng phát triển của đề tài: 3

6.1 Kết quả dự kiến: 4

6.2 Hướng phát triển của đề tài: 4

7 Bố cục của đề tài: 4

CHƯƠNG 1: GIỚI THIỆU TỔNG QUAN 6

1.1 Lý thuyết tổng quan 6

1.1.1 Ngôn ngữ ruby 6

1.1.2 Rails Framework 11

1.1.3 Giới thiệu về hệ quản trị cơ sở dữ liệu SQLite 17

1.1.4 Phân lớp văn bản 18

1.1.5 Thuật toán Naive Bayes Classifier 19

1.2 Triển khai thực hiện 22

1.2.1 Mô tả đề tài 22

Trang 7

1.3 Phân tích website 23

1.3.1 Khảo sát yêu cầu 23

1.3.2 Phân tích yêu cầu 24

CHƯƠNG 2: PHÂN TÍCH THIẾT KẾ 25

2.1 Mục tiêu và chức năng của hệ thống 25

2.2 Phân tích thiết kế hệ thống thông tin 26

2.2.1 Biểu đồ Use Case của hệ thống 26

2.2.2 Đặc tả Use Case 30

2.2.3 Sơ đồ tuần tự 39

2.2.4 Thiết kế sơ đồ cơ sở dữ liệu 42

2.2.5 Cấu trúc bảng và ràng buộc 43

CHƯƠNG 3: TRIỂN KHAI VÀ KẾT QUẢ ĐẠT ĐƯỢC 47

3.1 Môi trường triển khai 47

3.2 Kết quả triển khai 47

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 57

TÀI LIỆU THAM KHẢO 58

Trang 8

Hình 1: Mô hình MVC trong ruby 13

Hình 2: Kiến trúc tổng quan của Ruby on rails 14

Hình 3: Biểu đồ Use Case mô tả chức năng của hệ thống 26

Hình 4: Biểu đồ Use Case mô tả chức năng của khách vãng lai 27

Hình 5: Biểu đồ Use Case mô tả chức năng của thành viên 28

Hình 6: Biểu đồ Use Case mô tả chức năng của quản trị viên 29

Hình 7: Sơ đồ tuần tự chức năng đăng kí 40

Hình 8: Sơ đồ tuần tự chức năng hiển thị sách 40

Hình 9: Sơ đồ tuần tự chức năng đăng nhập 41

Hình 10: Sơ đồ tuần tự chức năng thêm đánh giá 41

Hình 11: Sơ đồ tuần tự chức năng thêm bình luận 42

Hình 12:Sơ đồ cơ sở dữ liệu quan hệ 42

Hình 13: Giao diện trang đăng ký 47

Hình 14: Giao diện trang đăng nhập 48

Hình 15: Giao diện trang chủ 48

Hình 16: Giao diện trang chi tiết sách 49

Hình 17: Giao diện trang hiển thị sách 50

Hình 18: Giao diện trang đánh giá sách 51

Hình 19: Giao diện trang gửi yêu cầu thêm sách 51

Hình 20: Giao diện trang đổi thông tin người dùng 52

Hình 21: Giao diện trang xem thông tin bạn bè và theo dõi 52

Hình 22: Giao diện trang hoạt động của bạn bè 53

Hình 23: Giao diện trang sách được yêu thích 53

Hình 24: Giao diện trang quản lý người dùng 54

Trang 9

Hình 26: Giao diện gửi mail xác nhận 55 Hình 27: Giao diện trang thống kê 56

Trang 10

Bảng 1: Bảng đặc tả Use Case đăng nhập 30

Bảng 2: Bảng đặc tả Use Case đăng xuất 30

Bảng 3: Bảng đặc tả Use Case xem thông tin sách 31

Bảng 4: Bảng đặc tả Use Case thêm mới sách 32

Bảng 5: Bảng đặc tả Use Case xóa sách 32

Bảng 6: Bảng đặc tả Use Case cập nhật sách 33

Bảng 7: Bảng đặc tả Use Case xem thông tin người dùng 33

Bảng 8: Bảng đặc tả Use Case tạo tài khoản mới 34

Bảng 9: Bảng đặc tả Use Case cập nhật thông tin cá nhân 34

Bảng 10: Bảng đặc tả Use Case cập nhật quyền cho user 35

Bảng 11: Bảng đặc tả Use Case xóa tài khoản 35

Bảng 12: Bảng đặc tả Use Case xem danh sách yêu cầu 36

Bảng 13: Bảng đặc tả Use Case thêm mới yêu cầu 36

Bảng 14: Bảng đặc tả Use Case xóa yêu cầu 37

Bảng 15: Bảng đặc tả Use Case cập nhật trạng thái yêu cầu 37

Bảng 16: Bảng đặc tả Use Case xem đánh giá 37

Bảng 17: Bảng đặc tả Use Case xóa đánh giá 38

Bảng 18: Bảng đặc tả Use Case xem bình luận của đánh giá 38

Bảng 19: Bảng đặc tả Use Case xóa bình luận của đánh giá 39

Bảng 20: Bảng đặc tả Use Case thêm yêu thích sách 39

Bảng 21: Bảng người dùng 43

Bảng 22: Bảng sách 43

Bảng 23: Bảng yêu cầu 44

Bảng 24: Bảng thể loại 44

Trang 11

Bảng 26: Bảng hoạt động 45

Bảng 27: Bảng đánh giá 45

Bảng 28: Bảng yêu thích 45

Bảng 29: Bảng bình luận 46

Trang 12

LỜI MỞ ĐẦU

1 Tính cấp thiết của đề tài:

Ngày nay, ứng dụng công nghệ thông tin và việc tin học hóa được xem là một trong những yếu tố mang tính quyết định trong hoạt động của các chính phủ, tổ chức, cũng như của các công ty Nó đóng vai trò hết sức quan trọng, có thể tạo ra những bước đột phá mạnh mẽ

Qua khảo sát tình hình thực tế tại Việt Nam chúng ta sẽ nhận thấy nhu cầu đọc và

mua sách là rất cần thiết cho mọi người Nhưng do đời sống kinh tế ngày càng phát triển nên mọi người không có thời gian để đi khắp nơi tìm và mua những quyển sách

mà mình thích, phù hợp với bản thân Vì vậy việc xây dựng một website giới thiệu và review về những cuốn sách hay bổ ích sẽ là một điều hết sức cần thiết trong việc tiết kiệm thời gian và chọn ra những quyển sách phù hợp với mọi người

Tuy nhiên việc xem những bình luận, đánh giá của người dùng xuất hiện một cách lộn xộn không có sắp xếp phân loại rõ ràng sẽ gây ra không ít khó khăn trong việc chọn ra những cuốn sách được nhận xét phù hợp với người sử dụng hệ thống Bên cạnh đó không có nhiều những trang website chuyên bình luận, đánh giá sách mà có tích hợp tính năng tự động phân lớp các nhận xét của người dùng phục vụ cho nhu cầu tìm hiểu và xem đánh giá về sách một sách dễ dàng và có những trải nghiệm tốt hơn trong quá trình tìm ra những cuốn sách phù hợp với bản thân Bắt nguồn với ý tưởng này, em đã chọn đề tài: “XÂY DỰNG WEBSITE GIỚI THIỆU, ĐÁNH GIÁ

VỀ SÁCH” – hệ thống được xây dựng bằng ngôn ngữ ruby on rails có tích hợp các gem hỗ trợ và tính năng tự động phân loại các đánh giá sách của người dùng theo nhiều hướng

2 Mục tiêu và nhiệm vụ nghiên cứu:

2.1 Mục tiêu:

 Website được sắp xếp bố cục một cách hợp lý thân thiện với người dùng, tạo điều kiện cho người đọc dễ định hướng trong website

Trang 13

 Website có hình thức đẹp phù hợp với chủ đề, có đầy đủ nội dung người dùng quan tâm, thân thiện và thích hợp với mọi lứa tuổi

2.2 Nhiệm vụ:

Để đạt được những mục tiêu trên thì nhiệm vụ đặt ra của đề tài là:

 Khảo sát nhu cầu của mọi người về việc đọc sách và xem giới thiệu review

về sách trước khi mua

 Tìm hiểu các loại sách trên thị trường được nhiều người quan tâm

 Quản lý thông tin sách

 Xây dựng các chức năng: hiện thị các sách mới và hot ở ngoài thị trường, đăng nhập để đánh giá và bình luận về sách quan tâm, hiển thị các đánh giá, phê bình của người đánh giá, tên tác giả, thể loại Cho phép người dùng dễ dàng tìm kiếm cũng như đánh giá sách theo thang điểm, đề xuất với quản trị viên để thêm sách theo yêu cầu, đánh dấu sách Theo dõi những hành động của bản thân và các người dùng khác trên trang cá nhân

 Tự động phân lớp những bình luận tích cực và tiêu cực của người dùng

 Thống kê sách được yêu thích nhất và xem các loại sách được yêu thích

 Liên kết với tài khoản gmail và facebook của người dùng

3 Đối tƣợng và phạm vi nghiên cứu:

3.1 Đối tƣợng nghiên cứu:

 Các công ty, doanh nghiệp về sách và các hiệu sách trên cả nước

 Những người quan tâm và có sở thích về sách muốn tìm hiểu và xem những đánh giá khách quan về sách trước khi mua

 Hướng đến người dùng ở mọi lứa tuổi

3.2 Phạm vi nghiên cứu:

 Đề tài nghiên cứu xây dựng hệ thống giới thiệu, đánh giá sách trong một phạm vi nhỏ, trong một vài thể loại cụ thể

Trang 14

 Giới hạn về thời gian của dữ liệu trong vòng 3 năm gần đây

4 Phương pháp nghiên cứu:

Đề tài này sẽ kết hợp các phương pháp nghiên cứu, đó là:

4.1 Về mặt lý thuyết:

 Nghiên cứu các tài liệu về ngôn ngữ lập trình ruby on rails

 Khảo sát nhu cầu thực tế, sử dụng các phương pháp phỏng vấn, điều tra, phân tích, thống kê

 Tìm hiểu, tham khảo các ứng dụng sử dụng ngôn ngữ Ruby on Rails và các website giới thiệu về sách, nghiên cứu và ứng dụng vào đề tài

 Tìm hiểu về khai phá dữ liệu và thuật toán Machine Learning

 Tìm hiều về các gem hỗ trợ trong rails

5 Phương tiện, công cụ triển khai:

 Xây dựng hệ thống trên hệ điều hành Ubuntu

 Ngôn ngữ lập trình được sử dụng là Ruby viết trên nền tảng của rails

 Trình soạn thảo biên dịch Sublime text

 Công cụ lưu trữ mã nguồn: Git

 Cơ sở dữ liệu: SQLite

 Công cụ kiểm thử: Rspec, Rubocop

6 Kết quả dự kiến và hướng phát triển của đề tài:

Trang 15

6.1 Kết quả dự kiến:

Kết quả đạt được là một website có những yếu tố sau :

 Hình ảnh đăng tải với chất lượng cao

 CSDL bảo mật cao về quản lí thông tin thành viên

 Hiển thị tất cả hình ảnh về thông tin sách được giới thiệu

 Chức năng bình luận, đánh giá của khách hàng với sách

 Thống kê lượt sách thường được yêu thích, bình luận và đánh giá về chất lượng của sách

 Phân quyền truy cập đối với người quản trị hệ thống và người dùng

 Hiển thị các hoạt động của người dùng lên trang chủ

 Cho phép người dùng đề xuất thêm mới sách Đánh dấu sách theo sở thích

 Chức năng cho phép người dùng tìm kiếm theo thể loại sách, tiêu đề, theo

Chương 1: Giới thiệu tổng quan

Nghiên cứu lý thuyết liên quan đến đề tài và cách thức triển khai đề tài

Chương 2: Phân tích và thiết kế

Trình bày phân tích thiết kế hệ thống và phân tích cơ sở dữ liệu

Trang 16

Chương 3: Triển khai và kết quả đạt được

Các kết quả đạt được

Kết luận và hướng phát triển

Đánh giá kết quả đã đạt được, hướng phát triển và các kiến nghị nếu có

Trang 17

CHƯƠNG 1: GIỚI THIỆU TỔNG QUAN 1.1 Lý thuyết tổng quan

1.1.1.2 Ruby là gì?

Hiện nay, có nhiều ngôn ngữ lập trình để các lập trình viên có thể chọn lựa Đối với các lập trình viên mới vào nghề, việc chọn một ngôn ngữ có thể gặp khó khăn Có nhiều ngôn ngữ đang phát triển, nhưng không phổ biến và khó đểtự học một cách thông thường Trong số đó, Ruby là một ngôn ngữ rất hay mà các lập trình viên mới

có thể thử Ruby là một mã nguồn mở, một ngôn ngữ lập trình hướng đối tượng thuần túy, nghĩa là, mỗi giá trịbao gồm: số, giá trịtrue và false, đều là một đối tượng Ruby được thiết kế tập trung vào tính đơn giản và hiệu suất Ruby lấy cảm hứng

từ Lisp, Perl, Smalltalk Mặc dù là ngôn ngữ hướng đối tượng nhưng Ruby cũng có thể được sử dụng các kiểu lập trình thủ tục(procedure) và chức năng(functional)

1.1.1.3 Ruby có thể làm được những gì?

Ruby đã tạo nên những nét đặc biệt nhất của những ngôn ngữ lập trình Những nét chính đó là:

Trang 18

 Sức mạnh: là sự kết hợp hoàn hảo giữa sức mạnh hướng đối tượng thuần túy của ngôn ngữ hướng đối tượng với sức diễn đạt và sự tiện lợi của ngôn ngữ kịch bản(Script) của Perl Chương trình Ruby rất nhỏ gọn, dễ đọc

 Tính đơn giản : Cú pháp và nghĩa của nó rất trực quan và dễđọc (clean) Và cũng không có “những trường hợp đặc biệt” nào mà ta cần phải ghi nhớ Như các instance, số nguyên (integer), hay các lớp (classes), vừa đủ giống vối các ngôn ngữ khác Mỗi khi ta học những cái cơ bản, nó rất dễ dàng đểđoán trước được cách làm những cái mới hơn

 Tính vô hình:Ruby giải phóng người lập trình khỏi sự cực nhọc trong việc nhồi nhét của các trình biên dịch (complier) Ruby luôn nằm trong „vùng kiểm soát‟ ,do đó ta có thể tập trung giải quyết các lỗi bằng tay

 Sẵn có: Ruby là nguồn mở nên có thể sử dụng một cách tự do đối với người dùng hay người phát triển Không giống như nhiều ngôn ngữ mới khác, Ruby không giớihạn bạn về vấn đề HĐH và pháp lý Ruby có thể chạy trên Unix hay Linux, Microsoft Windows,…

1.1.1.4 So sánh với các ngôn ngữ lập trình khác

Ruby với Java

Giống nhƣ Java, Ruby cũng có:

 Bộ nhớđược quản lý thông qua bộ thu dọn rác (garbage collector)

 Đối tượng là chủ đạo

 Đều có những method public, private, protected

Không giống nhƣ Java, trong Ruby:

 Không cần biên dịch code, ta có thể chạy trực tiếp

 Sử dụng từ khóa “end” sau khi định nghĩa một cái gì đó, ví dụ như class, thay vì đặt dấu ngoặc quanh khối lệnh

Trang 19

 Sử dụng “require” thay vì “import” ở Java

 Tất cả các biến thành viên là private Từ bên ngoài, ta có thể truy xuất mọi thứ qua các method

 Mọi thứ đều là đối tượng, bao gồm cả số, ví dụ như 5 và 3.14

 Tên biến chỉ là một cái nhãn, không một kiểu đi kèm với nó

 Contructor luôn luôn có tên là “initialize” thay vì có tên của class

 == và equals() xử lý khác nhau trong Ruby Sử dụng == khi ta muốn kiểm tra sự tương đương trong Ruby (với Java là equal()) Sử dụng equal?() khi

ta muốn biết hai đối tượng có như nhau hay hông (với Java là ==)

Ruby với C++

Giống nhƣ C++, Ruby cũng có:

 Đều có những method public, protected, privated

 Cú pháp kế thừa(inheritance) chỉ có một kí tự (với Ruby là “<” và C++ là

“:”)

 Exception làm việc theo cách giống nhau

Không giống nhƣ C++, trong Ruby:

 Contructor luôn luôn có tên là “initialize” thay vì có tên của class

 Tất cả method luôn là ảo

 Biến của class bắt đầu với @@

 Không truy xuất trực tiếp vào các biến thành viên, mà phải thông qua method

 Một số method kết thúc với dấu “?”, “!” Nó thực sự là một phần tên method

Trang 20

 Chỉ có hai kiểu chứa là : “Array” và “Hash”

1.1.1.5 Ruby IDE và editor hỗ trợ

Khi bắt đầu học một ngôn ngữ lập trình mới, thì lúcđó bạn sẽ nghĩ ngay tới việc tìm cho mình một công cụ IDE đểhỗ trợ cho việc soạn thảo lập trình Với Ruby cũng không là ngoại lệ, bạn cũng sẽ gặp phải vấn đềkhó khăn này khi bắt đầu.Dưới đây là danh sách các công cụ IDE thông dụng:

SciTE

Là một công cụ tuyệt với, rất đơn giản và gọn nhẹ Ưu điểm nổi trổi là tốc độ khi nạp và chạy chương trình Hơn thế nữa, khi cài Ruby mà sử dụng gói dành cho hệ điều hành Windows, bạn có thể chọn trực tiếp để bộ cài đặt cài kèm theo công cụ SciTE cho máy của bạn Tuy nhiên, công cụ này lại có quá ít các chức năng hỗ trợ cho người lập trình và vì vậy, nếu bạn là người thích làm mọi việc khi „coding‟ mà không cần sự hỗ trợ và giúp đỡ gì nhiều từ các công cụ IDE thì SciTE là quá đủ dành cho bạn Ngoài ra, bạn có thể cấu hình SciTE bằng cách chỉnh sửa các tệp tin cấu hình nó Trang chủ: http://www.scintilla.org

mà không cần lưu trước, biên dịch và đưa kết quả ra trực tiếp mà không cần chạy

console, có tính năng giúp đỡngười sử dụng cho việc soạn thảo nhanh hơn dựa vào

giúp đỡ nhớ các lệnh, hàm và phương thức trong Ruby, và quan trọng nhất là có thể chạy gỡ lỗi (debug) cho các đoạn script Ruby

Trang chủ: http://homepage2.nifty.com/sakazuki/rde_en/index.html

Trang 22

trình thông minh, công cụ tổ chức cấu trúc thư mục mạnh mẽ, công cụ phân tích lỗi lập trình trong Ruby cho tới việc hỗ trợ mạnh mẽphát triển ứng dụng trên nên Web và cũng như công cụ phân phối chia sẽmã nguồn tới các CVS nổi tiếng như Git, Subversion… Tuy nhiên, cấu hình hệ thống tối thiểu để sử dụng RubyMine là thuộc loại khá, tức là bộ nhớ RAM từ 1GB trở lên để sửdụng mà không cảm thấy chạy quá ì ạch

Và rồi phiên bản 1 cuối cùng cũng được thay thế bằng phiên bản 1.2 vào tháng Giêng năm 2007 Mặc dù có một số cải tiến nhưng điều đó không quá nhiều Ở phiên bản này, Rails 1.2 được bổ sung thêm nhiều web server để chạy trên nó và nó cũng dễ dàng cài đặt hơn trên hầu hết các web server

Ruby on Rails trở nên phổ biến và chính thống, khi Apple quyết định đóng gói và phát hành trên hệđiều hành MAC OS X của họ: Leopard vào tháng 10 năm 2007

Phiên bản 2.0 được phát hành vào tháng 12 năm 2007 Phiên bản 2 và các phiên bản sau này được cung cấp hai định dạng đầu ra là HTML và XML.Phiên bản 3.0 với

nhiều cải tiến hơn, hỗ trợ javascrip, jquery, giới thiệu CoffeeScript và Sass

Trang 23

Sau khi phiên bản đầu tiên được tung ra thì cộng đồng Rails cũng đã đóng góp bổ sung hàng mở rộng nó, và sửa các lỗi được tìm thấy Và phiên bản mới nhất của Rails bây giờ là phiên bản 3.2.3

1.1.2.2 Ruby on rails là gì?

Ruby on Rails, hay còn được biết đến với cái tên ngắn gọn: Rails hay là ROR, là một framework cho phép phát triển ứng dụng web gồm 2 phàn cơ bản:

 Ngôn ngữ Ruby(lấy đối tượng làm chủ đạo)

 Phần Framework Rails bao gồm nhiều thư viện liên kết

Cũng giống như nhiều framework ứng dụng web khác, Ruby on Rails sửdụng kiến trúc model(mô hình), view(xem), controller(bộ điều khiển) gọi tắt là MVC Nó bao gồm các công cụ cho phép làm nhiều chức năng thông dụng cho web, chẳng hạn như thêm xóa, sửa, thông qua việc sử dụng scaffold, Ruby on Rails có thểtự động xây dựng các view và model cần thiết cho hầu hết các website cơ bản Thật sự, đó là lý do

vì sao Ruby on Rails có thể làm trang web dễ dàng hơn

1.1.2.3 Các tính năng chính của Ruby on rails

Ruby on Rails bao gồm các tính năng giúp tăng hiệu suất làm việc Sau đây là một

 Thư viện cho các tác vụ thông thường: Ruby on Rails bao gồm một máy

chủ thư viện, giúp đơn giản hóa việc gõ code cho các tác vụ lập trình thông

thường như: validation(xác nhận hình thức), quản lý phiên làm việc(sessions managemnet), …

Trang 24

 Thư viện AJAX: Một thư viện phong phú cho các chức năng của AJAX, được cung cấp trong framework Rails Code Ruby có thể sửdụng để tạo ra code AJAX Các đoạn mã kịch bản Java liên kết yêu cầu cho AJAX được tạo ra tự động

 Quy ước về cấu hình: Ruby on Rails không có bất kỳtập tin cấu hình XML Thay vào đó nó bao gồm các quy ước lập trình có thể sử dụng để xác định các thông số cấu hình

 Debugging: Cung cấp chi tiết các bản ghi lỗi, làm cho việc gỡ rốiứng dụng trở nên dễdàng hơn

 Components(các thành phần): Các thành phần có thểđược sử dụng để lưu trữ các đoạn code có thể tái sử dụng

 View

Trang 25

Tầng view hiển thị giao diện người dùng, trong Ruby on Rails các view là các file HTML được nhúng cùng với các đoạn mã Ruby Các đoạn mã Ruby được nhúng trong HTML file là khá đơn giản, thường chỉ gồm các vòng lặp và các lệnh điều kiện

rẽ nhánh, nó được sử dụng để hiện thị dữ liệu lên form của view

 Controller

Controller tương tác với model và view Các request đến từ trình duyệt sẽ được xử

lý bởi controller, sau đó controller có thể sẽ tương tác với model để lấy dữ liệu sau đó trả về cho view để hiển thị thông tin

1.1.2.5 Các thành phần của Rails

Hình 2: Kiến trúc tổng quan của Ruby on rails

 Action Mailer

Mô đun này chịu trách nhiên cung cấp các dịch vụ email Nó xử lý các email đến

và cho phép tao mới các email Mô đun này có thể xử lý từ những email text đơn giản đến những email có các định dạng phức tạp Action Mailer được kế thừa từ Action

Trang 26

Controller, nó cung cấp các phương thức để tao email với các template cũng giống như Action View sử dụng nó để render các trang lên trình duyệt

 Action Pack

Mô đun Action Pack cung cấp các lớp ở tầng controller và view trong mô hình MVC Những mô đun này tiếp nhận request từ client và sau đó ánh xạ chúng đến các action tương ứng những action này được định nghĩa trong tầng controller và sau đó các action này sẽ render view hiển thị lên trình duyệt Action Pack được chia thành 3

mô đun con, đó là:

Action Dispatch: xử lý routing các request, nó parse các request và xử lý một vài quá trình liên quan đến giao thức HTTP như xử lý cookies, session… Action Controller: Sau khi Action Dispatch xử lý request nó sẽ routing các request đến các controller tương ứng, Mô đun này cung cấp các base controller tất để các controller khác có thể kế thừa từ nó Action Controller chứa các action để điều khiển model và view, thêm vào đó nó quản lý các session người dùng , luồng chảy ứng dụng, caching,

mô đun helper và các thực thi các bộ lọc trong các quá trình tiền xử lý Action View: Được gọi bởi Action Controller Nó render các view khi có yêu cầu, Action View cung cấp các master layouts, templates và các view helpers , các thành phần này hỗ trợ việc sinh tự động ra phần khung cho các trang HTML hay các định dạng khác Có

3 template trong Rails là : rhtml, rxml và rjs Định dạng rhtml sinh ra các view HTML cho người dùng có nhúng thêm các đoạn code Ruby (ERB), rxml được sử dụng để xây dựng các tài liệu XML, rjs cho phép tạo ra các đoạn mã động JavaScript

để thực thi các AJAX functionality

 Active Model

Định nghĩa interface giữa mô đun Action Pack và Active Record Giao diện Action Record có thể được dùng bên ngoài Rails, cung cấp các chức năng Object – relational mapping (ORM) ORM là một kỹ thuật lập trình giúp chuyển đổi dữ liệu

giữa các thệ thống không tương thích được viết bởi các ngôn ngữ hướng đối tượng

 Active Record

Trang 27

Được sử dụng để quản lý dữ liệu trong các cơ sở dữ liệu quan hệ thông qua các đối tượng Trong Ruby on Rails mô đun Active Record cung cấp object – relational mapping đến các class Mô đun này xây dựng nên tầng model,giúp kết nối các bảng database với các lớp tương ứng trong các lớp Ruby Rails cung cấp các công cụ để thực thi chức năng CRUD mà không phải cấu hình CRUD cho phép tạo mới, đọc, cập nhật và xóa các bản ghi trong cơ sở dữ liệu thông qua các đối tượng Ruby Thêm vào đó, nó cũng cung cấp các khả năng tìm kiếm thông minh và khả năng tạo ra các mối quan hệ hay các liên kết giữa các model Active Records có những quy ước rất chặt chẽ bắt các developer phải tuân thủ theo như : phải đặt tên lớp, các bảng, các khóa chính và khóa ngoài như thế nào

Mô đun này được sử dụng để tạo ra các lớp trong tầng Model, chúng chứa đựng phần logic nghiệp vụ, xử lý validate và các mối quan hệ, ánh xạ đến các bảng và hỗ

trợ kết nối đến các hệ quản trị cơ sở dữ liệu khác nhau

 Active Resource

Quản lý các kết nối giữa RESTful web services và các đối tượng nghiệp vụ, làm giảm số lượng code cần viết để ánh xạ đến các tài nguyên Active Resource ánh xạ model class đến các tài nguyên REST ở xa cũng giống như cách mà Active Record ánh xạ từ model class đến các bảng cơ sở dữ liệu Nó cũng cung cấp các cơ chế proxy giữa Active Resource (client) và một RESTful service Khi một có một request cần truy cập đến các tài nguyên ở xa, một REST XML được sinh ra và được truyền đi, sau

đó kết quả sẽ được parse sang các đối tượng Ruby

Trang 28

Rake là một trong những lệnh được sử dụng để thực hiện các task database, triển khai, tài liệu, testing và cleanups

1.1.3 Giới thiệu về hệ quản trị cơ sở dữ liệu SQLite

1.1.3.1 SQLite là gì?

SQLite là một hệ quản trị cơ sở dữ liệu hay còn gọi là hệ thống cơ sở dữ liệu quan

hệ nhỏ gọn, khác với các hệ quản trị khác như MySQL, SQL Server, Ocracle, PostgreSQL… SQLite là một thư viện phần mềm mà triển khai một SQL Database Engine truyền thống, không cần mô hình client-server nên rất nhỏ gọn SQLite được

sử dụng vào rất nhiều chương trình từ desktop đến mobile hay là website

1.1.3.2 Lịch sử hình thành SQLite thế nào?

Năm 2000: D.Richard Hipp đã thiết kế SQLite dưới dạng thư viện bằng ngôn ngữ lập trình c với mục đích không cần quản trị để điều hành một chương trình

Vào tháng 8, SQLite 1.0 được công bố với GNU Database Manager

Năm 2011: Hipp bổ sung UNQI Interface cho SQLite DB và để phát triển UNQLite (là một Document Oriented Database)

1.1.3.3 Tại sao sử dụng SQLite?

SQLite là mã nguồn mở, là một trong những Database Engine phát triển nhanh nhất, sự phát triển của nó là về mặt tính phổ biến Ngoài những lý do trên thì không thể không kể đến những ưu điểm khi sử dụng SQLite, sau đây là phần ưu điểm của SQLite

1.1.3.4 Ƣu điểm của SQLite

 SQLite không cần mô hình client – server để hoạt động

 SQLite không cần phải cấu hình tức là bạn không cần phải cài đặt

 Với SQLite database được lưu trữ trên một tập tin duy nhất

 SQLite hỗ trợ hầu hết các tính năng của ngông ngữ truy vấn SQL theo chuẩn SQL92

Trang 29

 SQLite rất nhỏ gọn bản đầy đủ các tính năng nhỏ hơn 500kb, và có thể nhỏ hơn nếu lược bớt một số tính năng

 Các thao tác dữ liệu trên SQLite chạy nhanh hơn so với các hệ quản trị cơ

sở dữ liệu theo mô hình client – server

 SQLite rất đơn giản và dễ dàng sử dụng

 SQLite tuân thủ 4 tính chất ACID (là tính nguyên tổ (Atomic), tính nhất quán (Consistent), tính cô lập (Isolated), và tính bền vững (Durable) )

 Với đặc tính nhỏ gọn, truy xuất dữ liệu nhanh SQLite thường được sử dụng

để nhúng vào các dự án

1.1.3.5 Nhƣợc điểm của SQLite

Ngoài những ưu điểm đã kể ra ở trên SQLite cũng có một số mặt hạn chế nếu đem

- Để phân lớp văn bản tự động thường sử dụng các kỹ thuật học máy có giám sát,

dữ liệu văn bản đã được phân lớp bằng tay, được chia thành hai phần: Tập huấn luyện

Trang 30

hay tập mẫu và tập kiểm thử (kiểm tra), tập mẫu chiếm 2/3 dữ liệu, tập kiểm thử 1/3

Đại lượng đánh giá hiệu suất phân lớp:

Việc đánh giá độ phân lớp dựa trên việc áp dụng mô hình đối với các dữ liệu thuộc tập dữ liệu kiểm tra Dtest, sử dụng mô hình cho từng trường hợp dữ liệu ở Dtest mà kết quả đầu ra là lớp c dự báo cho từng dữ liệu

Hai độ đo được dùng phổ biến để đánh giá chất lượng của thuật toán phân lớp là

Định lý này đặt theo tên nhà toán học Thomas Bayes, người Anh sống ở thế kỷ

18 Đây là một trong những công cụ vô cùng hữu ích, người bạn thân của các Data Scientist, những người làm trong ngành khoa học dữ liệu

Ta có 2 sự kiện ngẫu nhiên A và B

Nếu A và B là 2 sự kiện độc lập, ta có xác suất để xảy ra A và B đồng thời là:

trong đó:

P(A)P(A) là xác suất xảy ra A riêng biệt

P(B)P(B) là xác suất xảy ra B riêng biệt

Trang 31

Nếu A và B là 2 sự kiện liên quan đến nhau, và xác suất xảy ra sự kiện B lớn hơn

0, ta có thể định nghĩa xác suất xảy ra A khi biết B xảy ra như sau:

Ta có thể viết lại thành:

1.1.5.2 Thuật toán Naive Bayes Classifier (NBC)

Naive Bayes Classification (NBC) là một thuật toán phân loại dựa trên tính toán xác suất áp dụng định lý Bayes Thuật toán này thuộc nhóm Supervised Learning (Học có giám sát)

Kĩ thuật phân lớp của Naive Bayes đặc biệt phù hợp cho các trường hợp phân loại

có kích thước đầu vào là lớn Với mỗi loại văn bản, thuật toán Naive Bayes tính cho mỗi lớp văn bản một xác suất mà tài liệu cần phân hoạch có thể thuộc loại đó Tài liệu

đó sẽ được gán cho lớp văn bản nào có xác suất cao nhất Xác suất P(ck| di) gọi là xác suất mà tài liệu di có khả năng thuộc vào lớp văn bản ck được tính toán như sau:

tài liệu di sẽ được gán cho loại văn bản nào có xác suất hậu nghiệm cao nhất nên được biểu diễn bằng công thức:

trong đó N là tổng số tài liệu

Có 2 mô hình thuật toán Naive Bayes thường sử dụng là: mô hình Bernoulli và mô hình Multinomial

Trang 32

 Bernoulli Nạve Bayes

Mơ hình này được áp dụng cho các loại dữ liệu mà mỗi thành phần là một giá trị binary - bẳng 0 hoặc 1 Ví dụ: cũng với loại văn bản nhưng thay vì đếm tổng số lần xuất hiện của 1 từ trong văn bản, ta chỉ cần quan tâm từ đĩ cĩ xuất hiện hay khơng Khi đĩ, p(xi|c) được tính bằng:

với p(i|c) cĩ thể được hiểu là xác suất từ thứ i xuất hiện trong các văn bản của class c

 Multinomial Nạve Bayes

Mơ hình này chủ yếu được sử dụng trong phân loại văn bản mà feature vectors được tính bằng Bags of Words Lúc này, mỗi văn bản được biểu diễn bởi một vector

cĩ độ dài d chính là số từ trong từ điển Giá trị của thành phần thứ i trong mỗi vector chính là số lần từ thứ i xuất hiện trong văn bản đĩ

Khi đĩ, p(xi|c) tỉ lệ với tần suất từ thứ i (hay feature thứ i cho trường hợp tổng quát) xuất hiện trong các văn bản của class c Giá trị này cĩ thể được tính bằng cách:

Trang 33

1.2 Triển khai thực hiện

1.2.1 Mô tả đề tài

Xây dựng một website đáp ứng nhu cầu của người đọc

Tại đây bạn sẽ tìm được những đánh giá về sách của người dùng, thống kê được những đánh giá tốt về những quyển sách hay cho bạn cùng đọc, Bạn cũng có thể tìm cho mình những quyển sách phù hợp để có thể đọc, giải trí, stress sau buổi làm việc hay những buổi học căng thẳng Bạn sẽ tìm thấy cả kho kiến thức sách Nếu bạn

có thời gian hạn hẹp, trang web này khá hữu ích cho bạn vì có những hướng dẫn chi tiết cho bạn dù bạn ở bất cứ đâu Và điều quan trọng bạn có thể lựa chọn các loại sách phù hợp mà không cần mất thời gian tìm kiếm trên mạng xã hội google, facebook, Website có Admin để quản lý sách, thể loại, người dùng và đề nghị của người dùng

Hệ thống cho phép:

 Người dùng:

 Đăng kí, đăng nhập vào website

 Xem sách, đánh giá, bình luận, tìm kiếm sách theo yêu cầu

 Có thể theo dõi/hủy theo dõi 1 tài khoản khác

 Xem hoạt động của những bạn bè mà bạn theo dõi

 Yêu cầu thêm sách đến với admin nếu có quyển sách hay cần đăng tải lên website để được đánh giá

 Admin quản lý:

 Quản lý sách: thêm, sửa, xóa

 Quản lý yêu cầu: trạng thái (accept, reject, waiting)

 Quản lý người dùng: thêm, xóa, phân quyền

 Thống kê: lượt like sách, lượt đánh giá sách, người dùng, trạng thái yêu cầu

Trang 34

 Thiết kế cơ sở dữ liệu

 Thiết kế giao diện

 Kiểm thử và đưa vào sử dụng

1.3 Phân tích website

1.3.1 Khảo sát yêu cầu

- Khảo sát mức 1

an iến cho đ ài

Sau khi lên ý tưởng cho đề tài, em đã tiến hành khảo sát ý kiến của bạn bè và anh chị ở công ty Nội dung xoay quanh về các chức năng của website, tìm hiểu về giao diện, cách thức hoạt động của trang website quản lý sinh viên

- Khảo sát mức 2

Tham hảo iến đ nh i c a m i n ư i

Sau khi chuẩn bị cơ bản các nội dung về ý tưởng, em bắt đầu thực hiện khảo sát ý kiến, nhận xét của mọi người về website Trong đó có sự hỗ trợ, góp ý kiến nhiệt tình của các anh chị trainner thực tập tại công ty Sun Asterisk Nội dung hướng đến là hoàn thiện về mặt ý tưởng, nêu ra các chức năng tiêu biểu, loại bỏ các chức năng không cần thiết

- Khảo sát mức 3

Ngày đăng: 29/04/2021, 12:50

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

TÀI LIỆU LIÊN QUAN

w