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

Luận văn Tìm hiểu Framework ruby on rails, Arduino và xây dựng ứng dụng quản lý thư viện

68 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

Tiêu đề Tìm Hiểu Framework Ruby on Rails, Arduino Và Xây Dựng Ứng Dụng Quản Lý Thư Viện
Tác giả Nguyễn Quang Lĩnh, Bùi Đức Lộc
Người hướng dẫn Trần Đức Doanh
Trường học Trường Đại Học Giao Thông Vận Tải Thành Phố Hồ Chí Minh
Chuyên ngành Khoa học Máy Tính
Thể loại Đề tài
Năm xuất bản 2020
Thành phố Hồ Chí Minh
Định dạng
Số trang 68
Dung lượng 3,5 MB

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

Cấu trúc

  • I. Ruby on rails (10)
  • II. Arduino (16)
  • CHƯƠNG 1: GIỚ I THI Ệ U T Ổ NG QUAN V Ề THƯ VIỆ N (8)
    • 1. T ổ ng quan v ề thư việ n (20)
    • 2. Quy trình qu ản lý sách và độ c gi ả (20)
    • 3. Nhi ệ m v ụ c ủ a m ộ t h ệ th ố ng qu ản lý thư việ n (22)
    • 4. Nhược điể m c ủ a h ệ th ố ng qu ản lý thư việ n trên (22)
    • 5. Hướ ng th ực thi đề tài (23)
  • CHƯƠNG 2: THIẾ T K Ế H Ệ TH Ố NG QU ẢN LÝ THƯ VIỆ N (24)
  • CHƯƠNG 3: THIẾ T K Ế CƠ SỞ D Ữ LI Ệ U (9)
    • 1. B ả ng borrows (38)
    • 2. B ả ng amounts (38)
    • 3. B ả ng Authors (39)
    • 4. B ả ng books (39)
    • 5. B ả ng cheditor_assets (40)
    • 6. B ả ng department (40)
    • 7. B ả ng equipment (41)
    • 8. Histories (41)
    • 9. B ả ng historyalls (42)
    • 10. B ả ng publishes (42)
    • 11. B ả ng types (43)
    • 12. B ả ng users (43)
  • CHƯƠNG 4: KẾ T H Ợ P ARDUINO VÀ RUBY ON RAILS (45)
    • I. Cách n ạ p code qua chip Esp8266 (45)
    • II. K ế t n ố i Ruby on Rails v ớ i Arduino (45)
  • CHƯƠNG 5: SƠ ĐỒ L Ắ P M Ạ CH VÀ K Ế T N Ố I V Ớ I CON CHIP ESP8266 (46)
    • I. C ấ u trúc con chip Esp8266 (46)
    • II. L ắ p r ắp sơ đồ m ạch điệ n (48)
  • CHƯƠNG 6: THIẾ T K Ế GIAO DI Ệ N WEBSITE (49)
  • CHƯƠNG 7: KẾ T LU Ậ N – KI Ế N NGH Ị (9)

Nội dung

- Xây dựng ứng dụng quản lý thư viện gồm trang sinh viên, giáo viên, quản trị - Quản lý được việc mượn trả sách online - Quản lý được các thiết bị trong thư viện - Tìm hiểu được hoạt

Ruby on rails

1 Khái ni ệ m ruby on rails

Ruby là ngôn ngữ lập trình hướng đối tượng, phổ biến trong việc phát triển ứng dụng web và di động Được sáng tạo bởi một nhà khoa học máy tính người Nhật, Ruby vẫn đang được phát triển và cải tiến liên tục.

Ruby on Rails, hay còn gọi là Rails hoặc ROR, là một framework web được phát triển bằng ngôn ngữ lập trình Ruby Đây là phần mềm mã nguồn mở (Open source), cho phép người dùng không chỉ sử dụng miễn phí mà còn có thể tham gia vào việc cải thiện và phát triển nó.

Ruby là một ngôn ngữ lập trình kịch bản, cho phép mã lệnh chạy trực tiếp trên máy tính mà không cần biên soạn thành tệp thực thi exe trên Windows hay tệp binary trên Linux Sức mạnh của Ruby nằm ở khả năng linh hoạt và dễ sử dụng.

Ruby là một ngôn ngữ lập trình thuần hướng đối tượng, trong đó mọi thứ đều là đối tượng Ngôn ngữ này kế thừa đầy đủ các ưu điểm của lập trình hướng đối tượng, bao gồm tính linh hoạt cao Người dùng có thể dễ dàng thêm các hàm mới vào Ruby mà không làm ảnh hưởng đến các hàm đã có, giúp việc đọc hiểu mã nguồn trở nên dễ dàng hơn.

Ngôn ngữ Ruby được biết đến với câu nói “The code comments itself”, nghĩa là các dòng lệnh trong Ruby tự diễn đạt ý nghĩa và chức năng của chúng Ruby được thiết kế với sự chú trọng vào tính dễ phát triển, cho phép viết ít mã hơn để thực hiện công việc so với các ngôn ngữ khác, tạo ấn tượng mạnh mẽ cho người mới bắt đầu Tuy nhiên, một điểm yếu của Ruby là tốc độ xử lý chậm.

Nhắc đến Ruby thì phải nhắc đến framework của nó chính là ruby on rails (RoR) a Lợi ích khi sử dụng RoR

Rails là một công cụ mạnh mẽ giúp triển khai nhiều tính năng cho ứng dụng web một cách nhanh chóng và hiệu quả Nó cung cấp cấu trúc chuẩn, giúp tối ưu hóa quá trình phát triển.

Rails cung cấp một thư viện gem phong phú, cho phép người dùng thay thế hầu hết mọi thứ mà họ có thể tưởng tượng Tất cả các gem này đều miễn phí và dễ dàng tìm kiếm trên trang web https://rubygems.org/.

• Chất lượng code: Nhìn chung, mình nhận thấy rằng chất lượng của các phần mềm hỗ trợ Ruby code là cao hơn so với một số ngôn ngữ khác

Cộng đồng Ruby rất lớn, điều này không chỉ giúp cải thiện các sản phẩm của Ruby mà còn là lý do khiến thư viện của Ruby trở nên tuyệt vời Ruby cũng là một trong những ngôn ngữ lập trình phổ biến nhất trên GitHub.

Ruby on Rails (RoR) là một ngôn ngữ lập trình gọn gàng, cho phép phát triển ứng dụng nhanh chóng khi kết hợp với các thư viện hỗ trợ.

Tương lai của Ruby on Rails (RoR) có triển vọng sáng sủa khi nó trở thành ngôn ngữ được ưa chuộng trong các trang học lập trình trực tuyến nổi tiếng như Makers Academy và Codecademy Điều này dự báo rằng số lượng lập trình viên tài năng trong cộng đồng Ruby sẽ gia tăng đáng kể trong những năm tới Tuy nhiên, cũng cần lưu ý đến một số nhược điểm của ngôn ngữ này.

Vì nó cũng là một phần cũng ruby nên nó cũng có hạn chế giống nhau:

• Thời gian chạy: Phần lớn những cuộc tranh luận về rail đều có những ý kiến rằng rails chậm Điều này hoàng toàn đúng, so với NodeJS hay

GoLang và Rails có tốc độ chạy tương đối chậm Tuy nhiên, hiệu suất của ứng dụng Rails thường không ảnh hưởng nhiều đến hoạt động kinh doanh Vấn đề thường xuất phát từ thiết kế server và cơ sở dữ liệu.

Tốc độ boot của framework Rails là một vấn đề gây khó chịu, ảnh hưởng đến hiệu suất làm việc do thời gian khởi động lâu, phụ thuộc vào số lượng gem và file Mặc dù sự ra đời của Spring đã cải thiện tốc độ boot, nhưng vẫn còn tiềm năng để tăng tốc độ này hơn nữa.

3 Cấu trúc thư mục của rails

App: Nơi tổ chức các thành phần của ứng dụng, bao gồm thành phần của mô hình mvc, helper, jobs, assets, mails

Thư mục Bin/ chứa các script Rails để khởi động ứng dụng của bạn, đồng thời có thể bao gồm các tập lệnh khác mà bạn sử dụng để thiết lập, cập nhật, triển khai hoặc vận hành ứng dụng.

The Config/ directory contains essential configuration information for the application, including database settings in database.yml, environment configurations for development (development.rb), production (production.rb), and testing (test.rb), as well as query routing defined in routes.rb.

Db/: Lưu trữ thông tin về các đối tượng trong cơ sở dữ liệu, mối quan hệ giữa các đối tượng, và các đoạn script để quản lý các bảng trong database.

Lib/: Chứa các thư viện do bạn định nghĩa

Log/: Chứa các file logs của ứng dụng

Public/: Chứa static file: file ảnh, css, javascript

Test/: Chứa test script của ứng dụng

Tmp/: Rails sử dụng thư mục này để lưu các tệp tạm thời để xử lý trung gian

Vendor/: Thư viện được cung cấp bởi bên thứ 3

Rakefile: File này giúp xây dựng, đóng gói và kiểm tra code rails

GIỚ I THI Ệ U T Ổ NG QUAN V Ề THƯ VIỆ N

T ổ ng quan v ề thư việ n

- Ban quản lý thư viện: Chịu trách nhiệm điều hành chung cho toàn bộ các công tác trong thư viện

- Thủ thư: Tiếp nhận sách đã đánh mã số, phân loại sách, kiểm tra độc giả có thể đọc sách, tra cứu sách

- Phòng nghiệp vụ: Lập kế hoạch mua sách mới, thanh lý sách cũ

Quy trình qu ản lý sách và độ c gi ả

a Đối với công việc nhập sách:

Mỗi khi có bổ sung tài liệu thủ thư sẽ lập kế hoạch bổ sung tài liệu dựa trên catalog nhà xuất bản và tên loại sách

Phân loại sách theo môn loại:

Sách về tin học: cơ sở dữ liệu, mạng máy tính…

Sách về toán: toán cao cấp, hình giải tích… Đánh mã số cho sách

Độc giả cần đăng ký làm thẻ sinh viên bằng cách nộp một hình ảnh và lệ phí làm thẻ Nhân viên cấp thẻ sẽ cung cấp phiếu đăng ký để độc giả điền thông tin cần thiết.

Sau khi hoàn tất, bạn đọc sẽ nhận được một thẻ đọc sách với mã số riêng, tương ứng với mã số độc giả Quy trình mượn sách sẽ được thực hiện dựa trên số thẻ này.

Khi độc giả đến mượn sách, họ cần gửi lại thẻ độc giả tại bàn thủ thư và nhận phiếu yêu cầu để điền thông tin theo mẫu.

Thủ thư dựa vào thông tin từ phiếu yêu cầu sách của độc giả để tìm kiếm và giao sách Khi tìm thấy sách, thủ thư yêu cầu độc giả ký nhận Sau khi nhận lại phiếu yêu cầu có chữ ký, thủ thư sẽ giao sách cho độc giả và giữ lại phiếu yêu cầu kèm theo thẻ đọc sách, sau đó bỏ vào hộp kéo dành cho sinh viên của khối học đó.

Khi độc giả chọn sách để mượn thì căn cứ vào các hộp để tìm sách cần đọc

Thủ thư theo dõi việc mượn sách của độc giả dựa vào ngày mượn ghi trên phiếu yêu cầu và ngày trả sách Nếu độc giả vi phạm các quy định của thư viện, họ sẽ bị xử phạt tùy theo mức độ vi phạm.

Nhi ệ m v ụ c ủ a m ộ t h ệ th ố ng qu ản lý thư việ n

Hệ thống quản lý thư viện có vai trò quan trọng trong việc quản lý tư liệu và hỗ trợ tra cứu Nó cần nắm rõ số lượng sách hiện có và phân loại chúng theo từng loại cụ thể để thuận tiện cho việc mã hóa và tìm kiếm Để phục vụ độc giả, hệ thống phải cung cấp mục lục phân loại sách, giúp việc tìm kiếm trở nên dễ dàng hơn Việc phân loại sách và quản lý độc giả thường là những nhiệm vụ phức tạp nhất trong hệ thống này.

Nhược điể m c ủ a h ệ th ố ng qu ản lý thư việ n trên

Hệ thống hiện tại phụ thuộc nhiều vào giấy tờ, dẫn đến việc bảo quản và tìm kiếm thông tin tốn nhiều thời gian Điều này cũng làm tăng khả năng xảy ra sai sót và gây bất tiện cho người đọc Quản lý độc giả trở nên khó khăn hơn khi số lượng độc giả lớn.

23 kiểm tra thời gian mượn sách, số lượng sách mượn là thủ công, vì vậy rất dễ thất thoát tư liệu.

Hướ ng th ực thi đề tài

Xuất phát từ những hạn chế của hệ thống quản lý thủ công, việc ứng dụng công nghệ thông tin vào quản lý là cần thiết Chương trình sẽ thực hiện các nhiệm vụ quản lý dựa trên các yêu cầu cụ thể.

- Quản lý thiết bị thư viện

Hệ thống này giúp lưu trữ và cập nhật sách một cách dễ dàng với khối lượng lớn, tối ưu hóa thời gian tìm kiếm và thống kê sách, đồng thời hỗ trợ nhiều phương thức tìm kiếm khác nhau.

THIẾ T K Ế CƠ SỞ D Ữ LI Ệ U

B ả ng borrows

Dùng để lưu trữ những thông tin cho mượn sách

STT Tên Field Kiểu dữ liệu

B ả ng amounts

Dùng để lưu trữ thông tin số mã sách với số lượng tương ứng

STT Tên Field Kiểu dữ liệu

B ả ng Authors

Lưu trữ thông tin tác giả của những cuốn sách

STT Tên Field Kiểu dữ liệu

B ả ng books

Dùng để lưu trữ thông tin sách

STT Tên Field Kiểu dữ liệu

B ả ng cheditor_assets

Lưu trữ hình ảnh và nội dung cuốn sách

STT Tên Field Kiểu dữ liệu

B ả ng department

Lưu trữ thông tin từng lĩnh vực của sách

STT Tên Field Kiểu dữ liệu

B ả ng equipment

Lưu trữ thông tin của các thiết bị trong thư viện

STT Tên Field Kiểu dữ liệu

Histories

Lưu trữ thông tin sách cho mượn sau khi trả

STT Tên Field Kiểu dữ liệu

B ả ng historyalls

Lưu trữ thông tin lịch sử khi thủthư thực hiện thao tác

STT Tên Field Kiểu dữ liệu

B ả ng publishes

Lưu trữ thông tin nhà xuất bản của sách

STT Tên Field Kiểu dữ liệu

B ả ng types

Lưu trữ thông tin của từng thể loại sách

STT Tên Field Kiểu dữ liệu

B ả ng users

Lưu trữ thông tin tài khoản của người dùng

STT Tên Field Kiểu dữ liệu

5 Reset_password_sent_at Datetime

8 Current_sign_in_ip Varchar

9 Last_sign_in_ip Varchar

KẾ T H Ợ P ARDUINO VÀ RUBY ON RAILS

Cách n ạ p code qua chip Esp8266

To set up your project, first download the Arduino IDE from the official website for Ubuntu Next, access the provided link to download the code for the ESP8266 chip Finally, upload the code to the chip to complete the process.

K ế t n ố i Ruby on Rails v ớ i Arduino

To integrate the "dino" gem into your project, first add it to your Gemfile and run the bundle command Next, create a file named dino_blink in the /lib directory and include the following code: ```rubyrequire "dino"board = Dino::Board.new(Dino::TxRx.new)led = Dino::Components::Led.new(pin: 4, board: board)led.send(:on)``` This setup initializes the Dino board and turns on the LED connected to pin 4.

=> Vậy là có thể điều khiển đèn bằng cách sử dụng lệnh ruby dino_blink.rb

SƠ ĐỒ L Ắ P M Ạ CH VÀ K Ế T N Ố I V Ớ I CON CHIP ESP8266

C ấ u trúc con chip Esp8266

Mô-đun WiFi hoạt động ở tần số 2.4 GHz và hỗ trợ chuẩn 802.11 b/g/n, với điện áp hoạt động là 3.3V và điện áp vào 5V qua cổng USB Nó có 11 chân I/O, tất cả đều hỗ trợ Interrupt, PWM, I2C và One-wire, ngoại trừ chân D0 Mô-đun này cũng có 1 chân Analog Input với điện áp vào tối đa 3.3V, bộ nhớ Flash 4MB, và giao tiếp qua cáp Micro USB tương đương với cáp sạc điện thoại Ngoài ra, nó hỗ trợ bảo mật WPA/WPA2.

48 i) Tích hợp giao thức TCP/IP j) Lập trình trên các ngôn ngữ: C/C++, Micropython,…

L ắ p r ắp sơ đồ m ạch điệ n

KẾ T LU Ậ N – KI Ế N NGH Ị

Đánh giá mô hình sau khi hoàn thành, đưa ra giải pháp tốt hơn cho tương lai.

PH Ầ N I: TÌM HI Ể U NGÔN NG Ữ RUBY ON RAILS, ARDUINO

1 Khái ni ệ m ruby on rails

Ruby là ngôn ngữ lập trình hướng đối tượng, phổ biến trong việc phát triển ứng dụng web và di động Được sáng tạo bởi một nhà khoa học máy tính người Nhật, Ruby vẫn đang được phát triển và cải tiến liên tục.

Ruby on Rails, hay còn gọi là Rails hoặc ROR, là một framework web được phát triển bằng ngôn ngữ lập trình Ruby Đây là phần mềm mã nguồn mở (Open Source), cho phép người dùng không chỉ sử dụng miễn phí mà còn có thể tham gia vào việc cải thiện và phát triển nó.

Ruby là một ngôn ngữ lập trình kịch bản, cho phép mã lệnh chạy trực tiếp trên máy tính mà không cần biên soạn thành tệp thực thi exe trên Windows hay tệp binary trên Linux Sức mạnh của Ruby nằm ở khả năng linh hoạt và dễ sử dụng.

Ruby là một ngôn ngữ lập trình thuần hướng đối tượng, trong đó mọi thứ đều được xem là đối tượng Ngôn ngữ này kế thừa đầy đủ các ưu điểm của lập trình hướng đối tượng, bao gồm tính linh hoạt cao Người dùng có thể dễ dàng thêm các hàm mới vào Ruby mà không làm ảnh hưởng đến các hàm đã có, giúp việc đọc hiểu mã nguồn trở nên dễ dàng hơn.

Ngôn ngữ Ruby được biết đến với câu nói "The code comments itself", nghĩa là các dòng lệnh trong Ruby tự diễn đạt ý nghĩa và chức năng của chúng Ruby được thiết kế với sự chú trọng vào tính dễ phát triển, cho phép viết ít mã hơn để thực hiện công việc so với các ngôn ngữ khác, điều này tạo ấn tượng mạnh mẽ cho người mới bắt đầu Tuy nhiên, một điểm yếu của Ruby là tốc độ xử lý chậm.

Nhắc đến Ruby thì phải nhắc đến framework của nó chính là ruby on rails (RoR) a Lợi ích khi sử dụng RoR

Rails là một công cụ mạnh mẽ giúp triển khai nhiều tính năng cho ứng dụng web một cách nhanh chóng và hiệu quả Nó cung cấp cấu trúc chuẩn, giúp tối ưu hóa quá trình phát triển.

Rails cung cấp một thư viện gem phong phú, cho phép thay thế hầu hết mọi thứ mà bạn có thể tưởng tượng Tất cả các gem này đều miễn phí và dễ dàng tra cứu tại [RubyGems.org](https://rubygems.org/).

• Chất lượng code: Nhìn chung, mình nhận thấy rằng chất lượng của các phần mềm hỗ trợ Ruby code là cao hơn so với một số ngôn ngữ khác

Cộng đồng Ruby rất lớn và năng động, điều này góp phần cải thiện đáng kể các sản phẩm của Ruby Sự hỗ trợ từ cộng đồng cũng là lý do chính khiến các thư viện Ruby trở nên tuyệt vời Hơn nữa, Ruby là một trong những ngôn ngữ lập trình phổ biến nhất trên GitHub.

Ruby on Rails (RoR) là một ngôn ngữ lập trình gọn gàng, cho phép phát triển ứng dụng nhanh chóng khi kết hợp với các thư viện hỗ trợ.

Tương lai của Ruby on Rails (RoR) có triển vọng sáng sủa khi nó trở thành ngôn ngữ được ưa chuộng trên các nền tảng học lập trình trực tuyến nổi tiếng như Makers Academy và Codecademy Điều này dự báo rằng số lượng lập trình viên tài năng trong cộng đồng Ruby sẽ gia tăng đáng kể trong những năm tới Tuy nhiên, cũng cần lưu ý đến một số nhược điểm của ngôn ngữ này.

Vì nó cũng là một phần cũng ruby nên nó cũng có hạn chế giống nhau:

• Thời gian chạy: Phần lớn những cuộc tranh luận về rail đều có những ý kiến rằng rails chậm Điều này hoàng toàn đúng, so với NodeJS hay

GoLang và Rails có tốc độ chạy tương đối chậm Tuy nhiên, hiệu suất của ứng dụng Rails thường không ảnh hưởng nhiều đến hoạt động kinh doanh Vấn đề thường xuất phát từ thiết kế server và cơ sở dữ liệu.

Tốc độ boot của framework Rails là một vấn đề gây khó chịu, ảnh hưởng đến hiệu suất làm việc do thời gian khởi động lâu, phụ thuộc vào số lượng gem và file Mặc dù sự ra đời của Spring đã cải thiện tốc độ boot, nhưng vẫn còn tiềm năng để tăng tốc độ này hơn nữa.

3 Cấu trúc thư mục của rails

App: Nơi tổ chức các thành phần của ứng dụng, bao gồm thành phần của mô hình mvc, helper, jobs, assets, mails

Thư mục Bin/ chứa các script Rails để khởi động ứng dụng của bạn, đồng thời có thể bao gồm các tập lệnh khác mà bạn sử dụng để thiết lập, cập nhật, triển khai hoặc vận hành ứng dụng.

The Config/ directory contains essential configuration information for the application, including database settings in database.yml, environment configurations for development (development.rb), production (production.rb), and testing (test.rb), as well as query routing defined in routes.rb.

Db/: Lưu trữ thông tin về các đối tượng trong cơ sở dữ liệu, mối quan hệ giữa chúng, và các đoạn script để quản lý các bảng trong database.

Lib/: Chứa các thư viện do bạn định nghĩa

Log/: Chứa các file logs của ứng dụng

Public/: Chứa static file: file ảnh, css, javascript

Test/: Chứa test script của ứng dụng

Tmp/: Rails sử dụng thư mục này để lưu các tệp tạm thời để xử lý trung gian

Vendor/: Thư viện được cung cấp bởi bên thứ 3

Rakefile: File này giúp xây dựng, đóng gói và kiểm tra code rails

Ngày đăng: 20/05/2023, 08:02

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w