Đồ án thực tập tốt nghiệp công nghệ thông tin tìm hiểu framework ruby on rails arduino và xây dựng ứng dụng quản lý thư viện

Đồ án thực tập tốt nghiệp CNTT khám phá framework Ruby on Rails, Arduino và xây dựng ứng dụng quản lý thư viện hiệu quả, chuyên nghiệp.

Chuyên ngành

Công nghệ thông tin

Người đăng

Ẩn danh

Thể loại

đồ án tốt nghiệp

2020

68
2
0

Phí lưu trữ

30 Point

Mục lục chi tiết

LỜI NÓI ĐẦU

PHẦN MỞ ĐẦU

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

1.1. Ruby on rails

2. PHẦN II: PHÂN TÍCH THIẾT KẾ ỨNG DỤNG QUẢN LÝ THƯ VIỆN

2. CHƯƠNG 1: GIỚI THIỆU TỔNG QUAN VỀ THƯ VIỆN

1.1. Tổng quan về thư viện

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

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

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

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

3. CHƯƠNG 2: THIẾT KẾ HỆ THỐNG QUẢN LÝ THƯ VIỆN

2.1. Tác nhân

2.2. Biểu đồ phân cấp chức năng

2.3. Biểu đồ luồng dữ liệu

2.4. Biểu đồ chức năng quản trị

4. CHƯƠNG 3: THIẾT KẾ CƠ SỞ DỮ LIỆU

5. CHƯƠNG 4: KẾT HỢP ARDUINO VÀ RUBY ON RAILS

6. CHƯƠNG 5: SƠ ĐỒ LẮP MẠCH VÀ KẾT NỐI VỚI CON CHIP ESP8266

7. CHƯƠNG 6: THIẾT KẾ GIAO DIỆN WEBSITE

8. CHƯƠNG 7: KẾT LUẬN – KIẾN NGHỊ

Tóm tắt

I. Đồ án tốt nghiệp CNTT

Đồ án tốt nghiệp là một phần quan trọng trong chương trình đào tạo của công nghệ thông tin. Đề tài 'Tìm hiểu Ruby on Rails, Arduino và xây dựng ứng dụng quản lý thư viện' tập trung vào việc áp dụng các công nghệ hiện đại để giải quyết bài toán thực tế. Ruby on RailsArduino được chọn làm công cụ chính để phát triển hệ thống. Mục tiêu của đồ án là tạo ra một phần mềm quản lý thư viện hiệu quả, giúp quản lý sách và thiết bị một cách tự động hóa.

1.1. Mục tiêu và phạm vi

Đồ án nhằm xây dựng một hệ thống quản lý thư viện cho trường Đại học Giao Thông Vận Tải TP.HCM. Hệ thống sẽ quản lý việc mượn trả sách, quản lý thiết bị trong thư viện, và cung cấp thông tin sách cho sinh viên. Phạm vi nghiên cứu bao gồm việc tìm hiểu Ruby on Rails, Arduino, và các công cụ liên quan như SQLite3, GitHub, và Arduino IDE.

1.2. Phương pháp nghiên cứu

Phương pháp nghiên cứu bao gồm việc khảo sát hoạt động của thư viện hiện tại, tìm hiểu các công cụ lập trình, và thực hiện demo hệ thống trên localhost. Đồ án cũng sử dụng các phương pháp phân tích và thiết kế hệ thống để đảm bảo tính khả thi và hiệu quả.

II. Tìm hiểu Ruby on Rails và Arduino

Ruby on Rails là một framework lập trình web mạnh mẽ, được viết bằng ngôn ngữ Ruby. Nó cung cấp các công cụ và thư viện giúp phát triển ứng dụng web nhanh chóng. Arduino là một nền tảng mã nguồn mở phần cứng và phần mềm, được sử dụng để xây dựng các ứng dụng tương tác với môi trường. Sự kết hợp giữa hai công nghệ này mang lại nhiều tiềm năng trong việc phát triển hệ thống quản lý thư viện.

2.1. Ruby on Rails

Ruby on Rails là một framework lập trình web được sử dụng rộng rãi nhờ tính đơn giản và hiệu quả. Nó cung cấp cấu trúc MVC (Model-View-Controller) giúp phân tách logic và giao diện người dùng. Rails cũng hỗ trợ nhiều thư viện (gem) giúp tăng tốc độ phát triển ứng dụng. Tuy nhiên, nhược điểm của Rails là tốc độ xử lý chậm so với một số ngôn ngữ khác như NodeJS.

2.2. Arduino

Arduino là một nền tảng mã nguồn mở, được sử dụng để xây dựng các ứng dụng tương tác với môi trường thông qua các cảm biến và cơ cấu chấp hành. Arduino có thể kết nối với các thiết bị điện tử khác, tạo ra các hệ thống tự động hóa. Trong đồ án này, Arduino được sử dụng để quản lý các thiết bị trong thư viện như đèn, quạt, và hệ thống an ninh.

III. Xây dựng ứng dụng quản lý thư viện

Ứng dụng quản lý thư viện được xây dựng dựa trên Ruby on RailsArduino. Hệ thống bao gồm các chức năng chính như quản lý sách, quản lý độc giả, và quản lý thiết bị. Ứng dụng cũng tích hợp IoT để điều khiển các thiết bị trong thư viện một cách tự động. Cơ sở dữ liệu được thiết kế để lưu trữ thông tin sách, độc giả, và lịch sử mượn trả.

3.1. Thiết kế hệ thống

Hệ thống được thiết kế với ba tác nhân chính: độc giả, thủ thư, và admin. Mỗi tác nhân có quyền truy cập và chức năng riêng. Độc giả có thể xem và mượn sách, thủ thư quản lý việc mượn trả, và admin quản lý toàn bộ hệ thống. Biểu đồ luồng dữ liệu được sử dụng để mô tả cách thức hoạt động của hệ thống.

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

Cơ sở dữ liệu được thiết kế để lưu trữ thông tin về sách, độc giả, và lịch sử mượn trả. Các bảng dữ liệu được liên kết với nhau thông qua các khóa chính và khóa ngoại. SQLite3 được sử dụng làm hệ quản trị cơ sở dữ liệu do tính đơn giản và dễ sử dụng.

IV. Kết hợp Arduino và Ruby on Rails

Việc kết hợp ArduinoRuby on Rails là một điểm nhấn quan trọng trong đồ án. Arduino được sử dụng để điều khiển các thiết bị trong thư viện, trong khi Rails quản lý dữ liệu và giao diện người dùng. Sự kết hợp này tạo ra một hệ thống quản lý thư viện hoàn chỉnh, tự động hóa nhiều quy trình thủ công.

4.1. Kết nối Arduino với Rails

Arduino được kết nối với Ruby on Rails thông qua chip ESP8266, cho phép giao tiếp giữa phần cứng và phần mềm. Rails gửi các lệnh điều khiển đến Arduino để thực hiện các tác vụ như bật/tắt đèn, quạt, và các thiết bị khác. Quá trình này được thực hiện thông qua các API được xây dựng trên Rails.

4.2. Sơ đồ lắp mạch

Sơ đồ lắp mạch được thiết kế để kết nối các thiết bị điện tử với chip ESP8266. Các thiết bị như đèn, quạt, và cảm biến được kết nối với Arduino thông qua các chân I/O. Sơ đồ này đảm bảo hệ thống hoạt động ổn định và an toàn.

V. Kết luận và kiến nghị

Đồ án đã thành công trong việc xây dựng một hệ thống quản lý thư viện sử dụng Ruby on RailsArduino. Hệ thống không chỉ quản lý sách và độc giả mà còn tự động hóa việc điều khiển các thiết bị trong thư viện. Tuy nhiên, vẫn còn một số hạn chế như tốc độ xử lý của Rails và độ phức tạp khi kết nối phần cứng. Các kiến nghị cải tiến bao gồm tối ưu hóa hiệu suất và mở rộng chức năng hệ thống.

5.1. Đánh giá kết quả

Hệ thống đã đáp ứng được các yêu cầu cơ bản của một phần mềm quản lý thư viện. Việc tích hợp IoT thông qua Arduino mang lại tính tự động hóa cao, giúp giảm thiểu công sức quản lý thủ công. Tuy nhiên, tốc độ xử lý của Rails cần được cải thiện để hệ thống hoạt động hiệu quả hơn.

5.2. Hướng phát triển

Trong tương lai, hệ thống có thể được mở rộng bằng cách tích hợp thêm các tính năng như quản lý tài liệu điện tử, hỗ trợ đa ngôn ngữ, và tối ưu hóa giao diện người dùng. Việc sử dụng các công nghệ mới như AImachine learning cũng có thể được xem xét để nâng cao hiệu quả quản lý.

12/02/2025

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

Chương 1: Giới thiệu tổng quan về thư viện. Ở chương này chúng ta sẽ giới thiệu sơ qua thư viện, mô tả hoạt động quản lý thư viện, quản lý sách và độc giả … Chương 2: Thiết kế hệ thống thư viện. 8 Chúng ta cần có kế hoạch để hệ thống hệ thống quản lý thư viện hợp lý nhất, phân tích hệ thống từ nhiều phía để mang lại sự hợp lý và thống nhất cho hệ thống. Chương này sẽ phân tích yêu cầu đề bài, thiết kế hệ thống trên cơ sở lý thuyết từ đó giúp chúng ta có cái nhìn tổng quát hơn về hệ thống.

Chương 3: Thiết kế cơ sở dữ liệu. Dự trên kết quả phân tích ở chương II, thì hệ cơ sở dữ liệu lập ra để lưu trữ các thông tin cần thiết cho việc thiết kế hệ thống và cho chúng ta thấy rõ mối quan hệ cơ sở dữ liệu được lập ra. Chương 4: Kết hợp ardunio và Ruby on Rails Ardunio và Ruby on Rails có thể kết hợp với nhau được hay không ? Vậy làm sao có thể kết hợp chúng và bằng cách nào ? Chương 5: Sơ đồ lắp mạch điện kết nối với con chip Esp8266 Cách lắp ráp từ các chân con chip với các thiết bị điện tử như thế nào ? Chương 6: Thiết kế giao diện quản lý thư viện. Áp dụng kiến thức cơ bản và các sơ đồ phần tích, chương 6 là công đoạn thiết kế dự án thực tế.

Chương 7: 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. 9 PHẦN I: TÌM HIỂU NGÔN NGỮ RUBY ON RAILS, ARDUINO I. Ruby on rails.

Khái niệm ruby on rails. Ruby là một ngôn ngữ lập trình hướng đối tượng được sử dụng để tạo ra các ứng dụng bằng web và di động. Nó được tạo ra bởi nhà khoa học máy tính người Nhật và vẫn tiếp tục phát triển cho đến nay.Tại sao nên dùng Ruby? Ruby on rails, hay viết tắt là rails hay ROR là một web Framework được viết bẳng ngôn ngưc lập trình ruby. Ruby on rails ucngx là phần mềm mở (Open source).

Do dó, nó không chỉ miễn phí để sử dụng, bạn cụng có thể tham gia cải thiện nó. Ruby là ngôn ngữ lập trình kịch bản bởi mã lệnh của Ruby có thể chạy trực tiếp bởi máy tính mà không cần phải biên soạn thành một tệp thực thi tệp tin .exe trên Windows hay tệp tin binary trên Linux. Điểm mạnh của ruby a. Sức mạnh Ruby được viết thuần hướng đối tượng, vì thế, mọi thứ trong Ruby đều là đối tượng.

Tất cả những mặt mạnh của ngôn ngữ hướng đối tượng, Ruby đều kết thừa hoàn toàn, bao gồm cả sự linh động của chính ngôn ngữ. Ta có thể thêm những function khác vào Ruby mà không hề ảnh hưởng tới những function đã có. Đọc hiểu dễ dàng 10 Ngôn ngữ Ruby được gọi là ngôn ngữ mà “The code comments itself”. Có nghĩa là bản thân các dòng lệnh trong Ruby đã nói lên ý nghĩa và công việc của nó.

Ngắn gon Được viết với sự focus chủ yếu vào tính dễ phát triển, nên ruby cần ít code để thực hiện một công việc hơn so với các ngôn ngữ khác. Chính vì điều này, khi mới tiếp xúc với Ruby, chúng ta sẽ cảm thấy nó rất ấn tượng. Điểu yếu của ruby: 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 • Công cụ: Rails cung cấp cho ta công cụ tuyệt vời giúp chúng ta triển khải được nhiều tính năng hơn mà lại tốn ít thời gian hơn.

Nó cung cấp cho ta một cấu trúc chuẩn cho ứng dụng web. • Thư viện: Rails cung cấp cho ta gem, thứ có thẻ thay thế hầu hết cho mọi thứ mà bạn có thể nghĩ ra được. Hơn nữa, tất cả gem đều có thể sử dụng một cách hoàn toàn miền phí và có thể dễ dàng tra cứu tại https://rubygems. • 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: Cộng đồng ruby rất lớn. Mình tin rằng điều này giúp cải thiện những sản phẩm của ruby rất nhiều và đây cũng là một lý do mà thư viện của ruby lại tuyệt vời như vậy. ruby cũng là một trong số những ngôn ngữ lập trình phổ biến nhất trên github. 11 • Hiệu suất: RoR là một ngôn ngữ gọn gàng, khi mà sử dụng kết hợp cùng các thư viện hỗ trợ, RoR cho phép bạn phất triển một cách khá là nhanh chóng.

• Tương lai: RoR có thể được xem là một ngôn ngữ được lựa chọn trong các trang học lập trình trực tuyến phổ biến như: makers academy, codecademy. Điều này có nghĩa là số lượng lập trình viên tài giỏi tham gia vào cộng đồng ruby sẽ tăng lên trong các năm tới. Nhược điểm 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, rails có tộc độ chạy khá chậm.

Mặc dù trong thực tế, hiệu suất của ứng dụng rails rất khó làm chậm lại việc kinh doanh, Vấn đề thường nằm ở việc thiết kế server, thậm chí là cả cơ sỡ dữ liệu. • Tốc độ boof: Vấn đề chính gây khó chịu khi làm việc với rails là tốc độ boot của Rails framework. Phụ thuộc vào số lượng gem và file, chúng ta có thể mất một khoảng thời gian kha khá để khởi động, điều này có thể ảnh hưởng trực tiếp tới hiệu suất làm việc. Với việc spring ra đời, tốc độ boot đã được cải thiện nhưng có vẻ nó vẫn còn có thể nhanh hơn nữa.

Cấu trúc thư mục của rails 12 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. Bin/: Chứa Rails Script để khỏi động ứng dụng của bạn và có thể chứa các các tập lệnh khác mà bạn sử dụng để setup, update, deploy hoặc chạy ứng dụng của mình. Config/:Chứa các thông tin config cho ứng dụng, như cấu hình database(database.yml), cấu hình môi trường (development,rb,yml,production, rb test,rb) hay điều hướng truy vấn (routes.rb) Db/: Lưu trữ các thông tin về các đối tượng của CSDL, mối quan hệ giữa các đối tượng, các đoạn script để quản lý các đối tượng (table) trong database. Lib/: Chứa các thư viện do bạn định nghĩa 13 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.lock : Các file này cho phép bạn chỉ định dependency nào cần thiết cho ứng dụng Rails của bạn.

Những file này được sử dụng bởi Bundler Ruby.jon: Tệp này cho phép bạn chỉ định npm dependency nào cần thiết cho ứng dụng rails của bạn. File này được sử dụng bởi Yarm 4. Cài đặt ruby • Bật terminal hoặc tôt hợp phím ctrl+alt+T • Cài đặt đầu tiên cần làm là thêm các dependencies cho ruby on rails o curl -sL https://deb.x | sudo -E bash – o curl -sS https://dl.com/debian/pubkey.gpg | sudo apt-key add – o echo "deb https://dl.com/debian/ stable main" | sudo tee /etc/apt/sources.list • Cài đặt các package cần thiết của ubuntu o sudo apt-get update o sudo apt-get install git-core curl zlib1g-dev build-essential libssl- dev ibreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev 14 libxslt1-dev libcurl4-openssl-dev software-properties-common libffi-dev nodejs yarn • Cài đặt ryby thông qua rbenv (hoặc rvm) o cd ~/ o git clone https://github.com/rbenv/rbenv.rbenv o echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc o echo 'eval "$(rbenv init -)"' >> ~/.bashrc o exec $SHELL o git clone https://github.com/rbenv/ruby-build.rbenv/plugins/ruby- build o echo 'export PATH="$HOME/.rbenv/plugins/ruby- build/bin:$PATH"' >> o ~/.bashrc o exec $SHELL o rbenv install 2.1 • Sau khi chạy xong kiểm tra xem có cài đặt ruby chưa bằng lệnh: ruby –v • Cuối cùng các bạn cài đặt Bundler o gem install bundler • Cài đặt ruby on rails o gem install rails -v 5.0 o rbenv rehash 15 • Kiểm tra rails đã được cài đặt thành công chưa bằng lênh rails -v • Cài dbeaver theo link: https://qiita.com/shaching/items/697e9d42584fe06b4579 • Cài git: o sudo apt update o sudo apt install git o git --version II. Khái niệm Là một nền tảng mã nguồn mở phần cứng và phần mềm.

Phần cứng Arduino (các board mạch vi xử lý) được sinh ra tại thị trấn Ivrea ở Ý, nhằm xây dựng các ứng dụng tương tác với nhau hoặc với môi trường được thuận lợi hơn. Phần cứng bao gồm một board mạch nguồn mở được thiết kế trên nền tảng vi xử lý AVR Atmel 8bit, hoặc ARM Atmel 32-bit. Những Model hiện tại được trang bị gồm 1 cổng giao tiếp USB, 6 chân đầu vào analog, 14 chân I/O kỹ thuật số tương thích với nhiều board mở rộng khác nhau. Được giới thiệu vào năm 2005, Những nhà thiết kế của Arduino cố gắng mang đến một phương thức dễ dàng, không tốn kém cho những người yêu thích, sinh viên và giới chuyên nghiệp để tạo ra những thiết bị có khả năng tương tác với 16 môi trường thông qua các cảm biến và các cơ cấu chấp hành.

Những ví dụ phổ biến cho những người yêu thích mới bắt đầu bao gồm các robot đơn giản, điều khiển nhiệt độ và phát hiện chuyển động. Đi cùng với nó là một môi trường phát triển tích hợp (IDE) chạy trên các máy tính cá nhân thông thường và cho phép người dùng viết các chương trình cho Aduino bằng ngôn ngữ C hoặc C++. Ứng dụng của Arduino vào trong đời sống • Làm Robot. Arduino có khả năng đọc các thiết bị cảm biến, điều khiển động cơ,… nên nó thường được dùng để làm bộ xử lý trung tâm của rất nhiều loại robot.

• Game tương tác: Arduino có thể được sử dụng để tương tác với Joystick, màn hình,… khi chơi các game như Tetrix, phá gach, Mario… • Máy bay không người lái. • Điều khiển đèn tín hiệu giao thông, làm hiệu ứng đèn Led nhấp nháy trên các biển quảng cáo… • Điều khiển các thiết bị cảm biến ánh sáng, âm thanh. • Làm máy in 3D • Làm đàn bằng ánh sáng • Làm lò nướng bánh biết tweet để báo cho bạn khi bánh chín. Arduino còn rất nhiều ứng dụng hữu ích khác tùy vào sự sáng tạo của người dùng.

Khả năng kết nối • Arduino có thể hoạt động độc lập. • Arduino có thể kết nối với một máy tính. Máy tính của bạn được phép truy cập dữ liệu cảm biến từ thế giới bên ngoài và cung cấp thông tin phản hồi. • Các Arduino có thể kết nối với nhau.

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

Đồ án tốt nghiệp CNTT: Tìm hiểu Ruby on Rails, Arduino và xây dựng ứng dụng quản lý thư viện là một bài viết chuyên sâu về việc kết hợp hai công nghệ nổi bật là Ruby on Rails và Arduino để phát triển một ứng dụng quản lý thư viện hiệu quả. Bài viết không chỉ giới thiệu về cách thức hoạt động của Ruby on Rails trong việc xây dựng ứng dụng web mà còn khám phá tiềm năng của Arduino trong việc quản lý thiết bị phần cứng. Điều này mang lại cái nhìn toàn diện về việc tích hợp phần mềm và phần cứng trong một dự án thực tế. Độc giả sẽ học được cách thiết kế hệ thống, quản lý cơ sở dữ liệu, và tối ưu hóa quy trình làm việc, từ đó áp dụng vào các dự án tương tự trong tương lai.

Nếu bạn quan tâm đến các ứng dụng IoT và điều khiển thiết bị thông minh, hãy khám phá thêm về Hệ thống giám sát điều khiển thiết bị điện qua ứng dụng Android để hiểu rõ hơn về cách tích hợp công nghệ vào quản lý thiết bị. Bên cạnh đó, bài viết Thiết kế hệ thống điều khiển thiết bị từ xa qua Internet bằng smartphone cũng cung cấp những góc nhìn thú vị về việc sử dụng smartphone để điều khiển các thiết bị từ xa. Cuối cùng, nếu bạn muốn tìm hiểu sâu hơn về công nghệ IoT, Thiết kế vòng tay đo nhịp tim sử dụng IoT là một tài liệu không thể bỏ qua.