Bối cảnh và vấn đề nghiên cứu
Đồ án thực tập tốt nghiệp với đề tài "Tìm hiểu framework Ruby on Rails, Arduino và xây dựng ứng dụng quản lý thư viện" được thực hiện bởi sinh viên Nguyễn Quang Lĩnh và Bùi Đức Lộc dưới sự hướng dẫn của giảng viên Trần Đức Doanh, thuộc Khoa Công nghệ Thông tin – Trường Đại học Giao thông Vận tải Thành phố Hồ Chí Minh (năm 2020).
Bối cảnh thực tiễn được tác giả nêu rõ xuất phát từ sự bùng nổ của công nghệ thông tin và xu hướng ứng dụng phần mềm mã nguồn mở nhằm tin học hóa quy trình quản trị tại các tổ chức, đơn vị giáo dục. Tại thời điểm nghiên cứu, hoạt động quản trị tại thư viện trường Đại học Giao thông Vận tải TP.HCM chủ yếu vận hành theo phương thức truyền thống, phụ thuộc nhiều vào sổ sách, phiếu giấy và thao tác thủ công của nhân viên thư viện. Phương thức này bộc lộ nhiều điểm nghẽn: tốn thời gian truy tìm, bảo quản tài liệu; dễ phát sinh sai sót; gây bất tiện cho độc giả; đồng thời công tác giám sát thời gian mượn trả và kiểm kê tài liệu khi lượng bạn đọc gia tăng rất dễ dẫn đến thất thoát. Bên cạnh đó, việc giám sát và vận hành các thiết bị điện trong không gian thư viện (như đèn chiếu sáng, quạt máy) chưa được tích hợp vào hệ thống quản lý tập trung.
Mục tiêu nghiên cứu của đề tài gồm:
- Xây dựng phần mềm hỗ trợ quản lý việc mượn và trả sách trực tuyến (online), giúp rút ngắn khoảng cách tương tác giữa sinh viên và thư viện.
- Xây dựng mô hình kết nối phần cứng cho phép theo dõi và điều khiển các thiết bị điện trong không gian thư viện.
Nhiệm vụ nghiên cứu cụ thể được phân định theo ba nội dung:
- Khảo sát và tìm hiểu thực tế hoạt động quản lý thư viện tại cơ sở đào tạo.
- Nghiên cứu cơ chế vận hành của các công cụ phát triển phần mềm và phần cứng, bao gồm framework Ruby on Rails, dòng lệnh terminal trên hệ điều hành Linux (Ubuntu), hệ quản trị cơ sở dữ liệu SQLite3, và môi trường lập trình Arduino IDE.
- Cài đặt, tích hợp và chạy thử nghiệm (demo) toàn bộ hệ thống trên môi trường máy chủ cục bộ (localhost).
Đối tượng và phạm vi nghiên cứu:
- Đối tượng nghiên cứu: Nghiệp vụ quản lý thư viện trường Đại học Giao thông Vận tải TP.HCM; các công nghệ phần mềm (Ruby on Rails, SQLite3, gem dino, DBeaver, Git) và linh kiện phần cứng (vi điều khiển ESP8266, board Arduino, relay 3V, transistor, bóng đèn, quạt điện).
- Phạm vi không gian và chức năng: Xây dựng hệ thống web gồm ba phân hệ độc lập: trang dành cho sinh viên (độc giả), trang dành cho thủ thư và trang dành cho quản trị viên (admin); kết hợp mạch điều khiển bật/tắt thiết bị ngoại vi.
- Phạm vi thời gian và triển khai: Giới hạn nghiên cứu được thực hiện trong thời gian thực tập tốt nghiệp năm 2020, dừng lại ở mức độ triển khai thử nghiệm trên localhost và mạch mẫu phần cứng.
Cơ sở lý thuyết và phương pháp
Cơ sở lý thuyết của đồ án dựa trên hai trụ cột công nghệ chính: mô hình kiến trúc ứng dụng web hướng đối tượng thông qua Ruby on Rails và nền tảng vi điều khiển tương tác vật lý thông qua Arduino cùng vi điều khiển ESP8266.
Về phía ứng dụng web, tác giả tìm hiểu ngôn ngữ Ruby – ngôn ngữ kịch bản thuần hướng đối tượng do nhà khoa học máy tính người Nhật Bản phát triển – và web framework mã nguồn mở Ruby on Rails (RoR). Nghiên cứu phân tích cấu trúc chuẩn của ứng dụng RoR dựa trên mô hình MVC (Model - View - Controller), cơ chế quản lý thư viện mở rộng qua RubyGems (gem), công cụ quản lý gói phụ thuộc Bundler, Yarn, và cơ chế tăng tốc khởi động ứng dụng Spring. Tác giả cũng chỉ ra các đặc tính vận hành của Rails như tính ngắn gọn, khả năng tự mô tả của mã lệnh, đồng thời nhận diện điểm hạn chế về tốc độ thực thi so với NodeJS hay GoLang và thời gian khởi động (boot time) của framework.
Về phía phần cứng và điều khiển, đồ án tiếp cận nền tảng mã nguồn mở Arduino (ra đời năm 2005 tại Ivrea, Ý) với cấu trúc vi xử lý AVR Atmel 8-bit hoặc ARM Atmel 32-bit, cung cấp các cổng vào/ra (I/O) kỹ thuật số và tương tự (analog). Đồng thời, tác giả nghiên cứu module Wi-Fi ESP8266 hoạt động ở dải tần 2.4 GHz (chuẩn 802.11 b/g/n), tích hợp ngăn xếp giao thức TCP/IP, bộ nhớ Flash 4MB, điện áp hoạt động 3.3V và hỗ trợ nạp chương trình qua cổng Micro USB bằng ngôn ngữ C/C++ hoặc MicroPython.
Phương pháp nghiên cứu thực tế bao gồm:
- Phương pháp khảo sát hiện trạng: Trực tiếp tìm hiểu quy trình nhập sách, phân loại sách theo môn loại (tin học, toán học), quy trình đăng ký cấp thẻ bạn đọc và mượn trả tài liệu tại Thư viện trường Đại học Giao thông Vận tải TP.HCM.
- Phương pháp phân tích và thiết kế hệ thống: Sử dụng các mô hình kỹ thuật phần mềm bao gồm biểu đồ phân cấp chức năng, biểu đồ luồng dữ liệu (DFD), biểu đồ chức năng chi tiết cho từng tác nhân, biểu đồ hoạt động (activity diagram) và biểu đồ lớp (class diagram).
- Phương pháp thực nghiệm kỹ thuật: Cài đặt môi trường máy chủ trên nền hệ điều hành Ubuntu Linux, thiết lập cơ sở dữ liệu SQLite3, viết mã nguồn ứng dụng web bằng Ruby on Rails 5.0, tích hợp gem "dino", lắp ráp sơ đồ mạch điện kết nối chip ESP8266 với relay điều khiển tải điện áp cao (bóng đèn).
Nguồn dữ liệu của đề tài gồm dữ liệu nghiệp vụ khảo sát trực tiếp từ các biểu mẫu thẻ độc giả, phiếu mượn sách thực tế của thư viện nhà trường và hệ thống tài liệu kỹ thuật trực tuyến từ kho lưu trữ mã nguồn mở GitHub, trang rubygems.org, tài liệu cài đặt Arduino IDE.
Thiết kế và triển khai hệ thống
Hệ thống được thiết kế theo cấu trúc phân tầng kết hợp giữa phần mềm quản lý trên máy tính và mạch điều khiển vật lý.
1. Kiến trúc phân quyền và xử lý dữ liệu
Hệ thống phần mềm phân định quyền hạn rõ ràng cho 3 nhóm tác nhân tương tác:
- Độc giả (Sinh viên): Có quyền tra cứu thông tin sách theo chuyên mục/lĩnh vực, xem chi tiết sách, thêm sách vào giỏ mượn, gửi yêu cầu mượn sách trực tuyến, theo dõi lịch sử mượn trả và gửi phản hồi đánh giá. Độc giả tuyệt đối không có quyền can thiệp vào các tác vụ chỉnh sửa hay xóa bỏ dữ liệu kho sách.
- Thủ thư: Thực hiện các nghiệp vụ xét duyệt yêu cầu mượn sách của sinh viên dựa trên mã sách, quản lý danh mục sách (thêm, cập nhật, xóa thông tin sách, năm xuất bản, tác giả, hình ảnh), theo dõi lịch sử bạn đọc (mã độc giả, ngày mượn, ngày trả), khóa hoặc mở khóa tài khoản vi phạm quy định, trả lời phản hồi độc giả và điều khiển bật/tắt thiết bị điện trong thư viện.
- Quản trị viên (Admin): Chịu trách nhiệm quản lý đăng nhập/đăng xuất hệ thống, khởi tạo tài khoản cho thủ thư và độc giả, phân quyền tài khoản toàn trang, giám sát nhật ký thao tác lịch sử của thủ thư và sử dụng chức năng trò chuyện (chat) để tương tác giải đáp thắc mắc.
2. Thiết kế cơ sở dữ liệu
Cơ sở dữ liệu của ứng dụng được xây dựng trên hệ quản trị SQLite3, gồm 12 bảng lưu trữ thông tin với các trường dữ liệu và khóa liên kết cụ thể:
| STT |
Tên bảng |
Chức năng lưu trữ dữ liệu |
Các trường dữ liệu chính |
| 1 |
users |
Tài khoản và thông tin người dùng |
id, email, Encrupted_password, Reset_password_token, Sign_in_count, Admin, Name, Code, Tel, Add, Disable |
| 2 |
books |
Thông tin tài liệu, sách trong thư viện |
id, Name, Publishyear, Author_id, Created_at, Update_at, Image, Amount |
| 3 |
borrows |
Thông tin giao dịch mượn sách |
id, Note, Book_id, User_id, allow, Staff_id_pay, Staff_id_borrows, Created_at, Updated_at |
| 4 |
amounts |
Quản lý mã số cá biệt và số lượng từng cuốn |
id, code, Book_id, Active, User_id, Created_at, Update_at |
| 5 |
Histories |
Nhật ký mượn trả sách sau khi hoàn tất |
id, Staff_id, Borrow_id, User_id, Book_id, Amount_id, Borrow_time, Pay_time, Status, Staff_id_pay, Staff_id_borrow |
| 6 |
historyalls |
Nhật ký ghi nhận các thao tác của thủ thư |
id, Active, Value_old, Value_new, Staff_id, Field_name, Created_at, Update_at |
| 7 |
Authors |
Thông tin tác giả sách |
id, Name, Website, Note, Created_at, Update_at |
| 8 |
publishes |
Thông tin nhà xuất bản |
id, Name, Address, Email, Represent, Created_at, Update_at |
| 9 |
department |
Thông tin lĩnh vực/khoa chuyên môn của sách |
id, Name, Created_at, Updated_at |
| 10 |
types |
Thể loại phân loại chi tiết của sách |
id, Name, Department_id, Created_at, Update_at |
| 11 |
equipment |
Trạng thái và hẹn giờ thiết bị điện |
id, Equiqment_name, Active, Timer, Timeout, Created_at, Update_at |
| 12 |
cheditor_assets |
Quản lý tệp tin đa phương tiện và nội dung |
id, Data_file_name, Data_content_type, Data_file_size, Type, Created_at, Update_at |
3. Tích hợp phần cứng và điều khiển thiết bị
Cơ chế kết nối giữa ứng dụng Ruby on Rails và phần cứng được thiết lập thông qua gem dino. Mã lệnh kiểm thử điều khiển thiết bị ngoại vi được đặt trong thư mục /lib/dino_blink.rb với cấu trúc:
require "dino"
board = Dino::Board.new(Dino::TxRx.new)
led = Dino::Components::Led.send(:on)
Về mặt phần cứng, mạch điều khiển sử dụng vi điều khiển ESP8266 nhận lệnh điều khiển. Các chân I/O của ESP8266 được kết nối tới cực điều khiển của Transistor nhằm kích hoạt Relay 3V. Relay đóng vai trò công tắc đóng/ngắt mạch cấp nguồn 220V cho bóng đèn hoặc quạt điện của phòng thư viện, bảo đảm cách ly an toàn giữa mạch điều khiển logic điện áp thấp và tải công suất.
Nội dung chính theo từng chương
Phần I: Tìm hiểu ngôn ngữ Ruby on Rails, Arduino
Phần này hệ thống hóa các kiến thức cơ bản về hai nền tảng công nghệ sử dụng trong đồ án:
- Ruby on Rails: Trình bày định nghĩa ngôn ngữ Ruby, tính chất thuần hướng đối tượng, cú pháp tự mô tả mã nguồn, ưu điểm phát triển ứng dụng nhanh nhờ hệ thống thư viện gem phong phú. Phân tích các thành phần cấu trúc thư mục của một dự án Rails chuẩn:
app/ (chứa MVC, assets, helpers), bin/ (tập lệnh khởi động), config/ (cấu hình môi trường và định tuyến routes.rb), db/ (chứa lược đồ và di chuyển dữ liệu), lib/, log/, public/, test/, tmp/, vendor/, tập tin quản lý thư viện Rakefile, Gemfile.lock. Tác giả ghi lại quy trình cài đặt chi tiết trên môi trường Linux Ubuntu: cài các gói phụ thuộc hệ thống qua apt-get (git-core, curl, build-essential, libsqlite3-dev, nodejs, yarn), cài đặt Ruby 2.1 thông qua trình quản lý phiên bản rbenv và ruby-build, cài Bundler và cài đặt Rails phiên bản 5.0.
- Khái niệm Arduino: Tóm lược lịch sử hình thành phần cứng Arduino tại Ý, thông số kỹ thuật chung về vi điều khiển 8-bit/32-bit, các tập chân I/O số và tương tự, môi trường phát triển Arduino IDE hỗ trợ C/C++. Điểm qua các ứng dụng thực tế của nền tảng như điều khiển robot, cảm biến ánh sáng, âm thanh, thiết bị bay, hệ thống khóa cửa và điều khiển đèn từ xa.
Chương 1: Giới thiệu tổng quan về thư viện
Chương 1 phân tích hiện trạng cơ cấu tổ chức và quy trình hoạt động nghiệp vụ tại Thư viện trường Đại học Giao thông Vận tải TP.HCM:
- Cơ cấu tổ chức: Gồm Ban quản lý thư viện (điều hành chung), Phòng nghiệp vụ (lập kế hoạch bổ sung, thanh lý sách) và Thủ thư (tiếp nhận mã sách, phân loại, phục vụ độc giả).
- Quy trình nghiệp vụ thủ công: Mô tả chi tiết quy trình nhập sách (phân loại theo môn loại như tin học, toán cao cấp và đánh mã); quy trình cấp thẻ bạn đọc (sinh viên nộp ảnh, xuất trình thẻ sinh viên, đóng lệ phí, điền phiếu đăng ký và được cấp mã thẻ trùng số hồ sơ); quy trình mượn trả tài liệu (độc giả gửi thẻ đọc tại bàn thủ thư, ghi thông tin vào phiếu yêu cầu; thủ thư lấy sách từ giá, yêu cầu độc giả ký nhận, sau đó kẹp phiếu yêu cầu cùng thẻ đọc xếp vào hộc kéo theo dõi hạn trả).
- Nhiệm vụ và nhược điểm: Xác định các hạn chế cốt lõi của việc quản lý bằng giấy tờ và đề xuất định hướng tin học hóa để quản lý tập trung kho sách, độc giả, mượn trả và thiết bị.
Chương 2: Thiết kế hệ thống quản lý thư viện
Chương 2 mô hình hóa hệ thống bằng các công cụ kỹ thuật phần mềm:
- Xác định 3 tác nhân chính tương tác với hệ thống: Độc giả, Thủ thư, Quản trị viên (Admin).
- Xây dựng biểu đồ phân cấp chức năng riêng biệt cho từng trang giao diện (Trang quản trị, Trang độc giả, Trang thủ thư).
- Thiết lập biểu đồ luồng dữ liệu (DFD) thể hiện sự phân định quyền hạn: độc giả chỉ có quyền tra cứu và yêu cầu dữ liệu mượn sách mà không thể chỉnh sửa cơ sở dữ liệu.
- Xây dựng biểu đồ chức năng chi tiết: biểu đồ quản trị (quản lý lịch sử thao tác thủ thư, tương tác giải đáp qua chat, quản lý phiên đăng nhập hệ thống); biểu đồ độc giả (đăng nhập, xem chi tiết sách, quản lý giỏ mượn sách, tìm kiếm, gửi phản hồi); biểu đồ thủ thư (phê duyệt đơn mượn theo mã, thêm/xóa sách, xem lịch sử mượn theo mã độc giả và ngày trả, khóa/mở tài khoản độc giả, điều khiển thiết bị đèn/quạt/điều hòa, trả lời phản hồi).
- Thiết kế biểu đồ hoạt động (Activity Diagram) cho các tác vụ: Độc giả đăng nhập, thêm/xóa sách khỏi giỏ hàng; Thủ thư đăng nhập, đăng ký, thêm sách, xóa sách và phê duyệt sách.
- Thiết kế biểu đồ lớp (Class Diagram) đặc tả cấu trúc các đối tượng và mối liên kết logic trong hệ thống.
Chương 3: Thiết kế cơ sở dữ liệu
Chương 3 trình bày chi tiết cấu trúc lược đồ dữ liệu của 12 bảng trong cơ sở dữ liệu quan hệ SQLite3. Tác giả định nghĩa rõ kiểu dữ liệu (Integer, Varchar, Datetime, Boolean) cho từng thuộc tính của các thực thể nghiệp vụ: bảng quản lý giao dịch mượn (borrows), số lượng và mã vạch cuốn sách (amounts), thông tin tác giả (Authors), thông tin đầu sách (books), tập tin hình ảnh (cheditor_assets), chuyên ngành quản lý (department), danh mục và trạng thái thiết bị ngoại vi (equipment), lịch sử mượn trả của bạn đọc (Histories), lịch sử nhật ký chỉnh sửa của thủ thư (historyalls), nhà xuất bản (publishes), thể loại chi tiết (types) và tài khoản xác thực người dùng (users).
Chương 4: Kết hợp Arduino và Ruby on Rails
Chương 4 mô tả phương pháp thiết lập giao tiếp phần mềm - phần cứng:
- Quy trình cài đặt môi trường nạp chương trình: Tải và cấu hình Arduino IDE trên nền Ubuntu Linux.
- Tải gói mã nguồn nạp cho chip ESP8266 qua liên kết lưu trữ đám mây và thực hiện tải lên (upload) chương trình điều khiển cho chip.
- Cấu hình ứng dụng web Rails để điều khiển mạch: Khai báo gem
dino trong tập tin Gemfile, thực thi lệnh bundle để cài đặt thư viện phụ thuộc, và tạo tập lệnh kiểm thử /lib/dino_blink.rb khởi tạo kết nối thông qua lớp Dino::Board và Dino::TxRx để bật trạng thái linh kiện LED.
Chương 5: Sơ đồ lắp mạch và kết nối với con chip ESP8266
Chương 5 cung cấp thông số kỹ thuật chi tiết của vi điều khiển ESP8266:
- Chuẩn Wi-Fi: 2.4 GHz hỗ trợ 802.11 b/g/n; điện áp hoạt động danh định 3.3V; điện áp cấp nguồn đầu vào 5V qua cổng Micro USB.
- Giao tiếp ngoại vi: Gồm 11 chân I/O số (đều hỗ trợ Interrupt/PWM/I2C/One-wire, ngoại trừ chân D0); 1 chân Analog Input nhận dải điện áp tối đa 3.3V; bộ nhớ Flash dung lượng 4MB; hỗ trợ chuẩn bảo mật mạng không dây WPA/WPA2; tích hợp sẵn ngăn xếp mạng TCP/IP.
- Sơ đồ mạch điện: Mô tả cách bố trí liên kết giữa các chân tín hiệu của ESP8266 với linh kiện bán dẫn Transistor đóng vai trò đệm dòng điều khiển cuộn hút của Relay 3V, từ đó đóng ngắt mạch điện cấp tải cho bóng đèn chiếu sáng dân dụng.
Chương 6: Thiết kế giao diện website
Chương 6 tổng kết các tính năng thực tế đã lập trình hoàn thiện trên giao diện web:
- Nhóm chức năng Độc giả: Cho phép người dùng đăng nhập tài khoản có sẵn, đăng xuất; tìm kiếm đầu sách; xem thông tin chi tiết hoặc phân loại sách theo nhóm/lĩnh vực; đưa sách vào giỏ hàng cá nhân, tùy biến số lượng hoặc xóa bỏ khỏi giỏ; gửi yêu cầu mượn trực tuyến; xem lại lịch sử các đợt mượn sách cá nhân.
- Nhóm chức năng Thủ thư: Đăng ký tài khoản mới cho sinh viên, đăng nhập/đăng xuất; tạo mới thông tin sách vào kho dữ liệu; tiếp nhận và phê duyệt yêu cầu mượn sách theo mã số; tra cứu lịch sử mượn trả của sinh viên; điều khiển thiết bị điện trực tiếp từ giao diện trang quản trị.
- Nhóm chức năng Quản trị viên (Admin): Đăng nhập/đăng xuất; cấp tài khoản cho thủ thư và người dùng; quản lý trạng thái tài khoản trên toàn trang; giám sát dữ liệu nhật ký ghi lại các thao tác thay đổi cơ sở dữ liệu của thủ thư.
Chương 7: Kết luận – Kiến nghị
Chương này đánh giá tổng quát mô hình hệ thống sau khi hoàn thành thiết kế, nhận xét về khả năng đáp ứng yêu cầu quản lý thực tế và nêu các định hướng nâng cấp, hoàn thiện ứng dụng trong tương lai.
Kết quả và đóng góp
Về kết quả kỹ thuật, đồ án đã triển khai thành công mô hình tích hợp gồm:
- Thiết lập hoàn chỉnh cơ sở dữ liệu gồm 12 bảng thực thể trên SQLite3, đáp ứng lưu trữ đầy đủ dữ liệu người dùng, đầu sách, phân loại, lịch sử mượn trả, nhật ký thao tác và danh mục thiết bị.
- Xây dựng phần mềm quản lý thư viện bằng Ruby on Rails phiên bản 5.0 trên hệ điều hành Ubuntu Linux, phân chia độc lập 3 giao diện chức năng tương ứng với 3 tác nhân: Quản trị viên, Thủ thư và Độc giả.
- Tích hợp thành công thư viện
dino với ứng dụng web, cho phép gửi tín hiệu điều khiển từ mã lệnh Ruby đến vi điều khiển ESP8266 qua kết nối mạng/cổng giao tiếp để đóng ngắt rơ-le điều khiển thiết bị ngoại vi.
Về đóng góp giải pháp nghiệp vụ:
- Số hóa quy trình quản lý mượn trả sách: Chuyển đổi toàn bộ thao tác thủ công (ghi thẻ giấy, lưu phiếu vào hộc tủ) sang quy trình xét duyệt trực tuyến, cho phép sinh viên chủ động chọn sách qua giỏ hàng và giúp thủ thư kiểm soát ngày mượn, ngày hẹn trả chính xác trên hệ thống.
- Đề xuất giải pháp quản lý tiện ích phòng đọc: Tích hợp chức năng điều khiển thiết bị điện (đèn chiếu sáng, quạt máy) trực tiếp trên trang quản trị của thư viện, hướng tới việc tiết kiệm năng lượng và hỗ trợ thủ thư vận hành phòng đọc an toàn, thuận tiện.
Hạn chế và hướng nghiên cứu tiếp
Hạn chế của đồ án:
- Toàn bộ hệ thống phần mềm mới chỉ dừng lại ở việc chạy thử nghiệm và kiểm chứng chức năng trên môi trường máy chủ cục bộ (localhost), chưa được triển khai thực tế trên máy chủ Internet hoặc mạng nội bộ trường học.
- Ứng dụng sử dụng cơ sở dữ liệu mặc định SQLite3, phù hợp cho quy mô thử nghiệm nhỏ nhưng chưa tối ưu cho các hệ thống có lượng truy cập đồng thời lớn.
- Mô hình điều khiển thiết bị phần cứng dừng lại ở việc kiểm thử điều khiển bật/tắt thiết bị đơn lẻ thông qua lệnh điều khiển cơ bản, chưa phát triển các thuật toán hẹn giờ tự động phức tạp trên mạch thực tế.
Hướng nghiên cứu và phát triển tiếp:
- Triển khai ứng dụng lên môi trường máy chủ thực tế (production server) có IP tĩnh hoặc tên miền để phục vụ sinh viên và cán bộ quản lý toàn trường.
- Tối ưu hóa cấu trúc cơ sở dữ liệu và nâng cấp lên các hệ quản trị dữ liệu mạnh mẽ hơn (như PostgreSQL hay MySQL) nhằm tăng cường tốc độ truy vấn khi số lượng bạn đọc và đầu sách tăng cao.
- Mở rộng chức năng tự động hóa điều khiển thiết bị: Lập trình lịch trình tự động bật/tắt thiết bị theo khung giờ mở cửa của thư viện và tích hợp thêm các cảm biến môi trường.
Giá trị tham khảo
Đồ án có giá trị tham khảo thực tế cho:
- Sinh viên chuyên ngành Công nghệ Thông tin, Kỹ thuật Phần mềm hoặc Hệ thống Thông tin: Đồ án là tài liệu tham khảo trực quan về quy trình xây dựng ứng dụng web với framework Ruby on Rails 5.0 trên môi trường Linux Ubuntu từ bước cấu hình gói cài đặt (
rbenv, bundler, yarn) đến thiết kế kiến trúc MVC.
- Người nghiên cứu các hệ thống IoT và nhúng cơ bản: Cung cấp phương pháp mẫu trong việc tích hợp web service viết bằng Ruby với phần cứng vi điều khiển (ESP8266/Arduino) thông qua gem
dino.
- Người làm đề tài tin học hóa quản lý thư viện trường học: Cung cấp tài liệu phân tích chi tiết về quy trình nghiệp vụ thủ công đặc thù, hệ thống biểu đồ UML (phân cấp chức năng, DFD, biểu đồ hoạt động, biểu đồ lớp) và cấu trúc 12 bảng cơ sở dữ liệu chuẩn hóa cho nghiệp vụ quản lý tài liệu và độc giả.
Câu hỏi thường gặp
Hệ thống phân chia quyền hạn người dùng thành những vai trò nào và quyền của từng vai trò ra sao?
Hệ thống thiết lập 3 trang giao diện tương ứng với 3 vai trò: Độc giả (chỉ có quyền tra cứu sách, quản lý giỏ mượn, gửi yêu cầu mượn, xem lịch sử cá nhân và gửi phản hồi; không được can thiệp kho dữ liệu); Thủ thư (phê duyệt mượn sách theo mã, nhập/xóa thông tin sách, theo dõi lịch sử bạn đọc, khóa/mở tài khoản vi phạm, điều khiển thiết bị điện); Quản trị viên (quản lý đăng nhập, cấp tài khoản cho thủ thư và độc giả, phân quyền toàn trang, giám sát nhật ký thao tác historyalls của thủ thư).
Ứng dụng Ruby on Rails kết nối và điều khiển vi điều khiển phần cứng thông qua cơ chế nào?
Ứng dụng sử dụng thư viện gem dino khai báo trong Gemfile. Tác giả thiết lập tập lệnh kiểm thử tại /lib/dino_blink.rb, khởi tạo đối tượng kết nối Dino::Board.new(Dino::TxRx.new) để gửi tín hiệu điều khiển từ nền tảng Rails sang vi điều khiển ESP8266 nhằm bật/tắt tải điện thông qua cơ cấu rơ-le.
Quy trình mượn sách thủ công trước khi có phần mềm có nhược điểm gì theo khảo sát của nhóm tác giả?
Quy trình thủ công yêu cầu độc giả nộp thẻ đọc tại bàn, viết phiếu yêu cầu bằng tay; thủ thư tìm sách, cho độc giả ký nhận rồi kẹp phiếu cùng thẻ lưu vào hộc kéo riêng. Quy trình này phụ thuộc hoàn toàn vào giấy tờ nên tốn nhiều thời gian tra cứu, dễ xảy ra nhầm lẫn, gây bất tiện cho bạn đọc và khó khăn trong việc theo dõi thời hạn trả đối với số lượng sinh viên lớn, dẫn tới nguy cơ thất thoát tài liệu.
Vi điều khiển ESP8266 sử dụng trong đồ án có những thông số phần cứng cụ thể nào?
Theo văn bản, chip ESP8266 hỗ trợ Wi-Fi tần số 2.4 GHz chuẩn 802.11 b/g/n; điện áp hoạt động danh định 3.3V, nhận nguồn vào 5V qua cổng Micro USB; trang bị 11 chân I/O số (hỗ trợ Interrupt, PWM, I2C, One-wire, trừ chân D0); 1 chân Analog Input (điện áp vào tối đa 3.3V); bộ nhớ Flash 4MB; hỗ trợ chuẩn mã hóa bảo mật WPA/WPA2 và tích hợp sẵn ngăn xếp giao thức mạng TCP/IP.
Cơ sở dữ liệu của hệ thống lưu trữ các bảng nào để phục vụ công tác theo dõi mượn trả và kiểm soát hoạt động của nhân viên?
Hệ thống sử dụng bảng borrows để lưu thông tin yêu cầu mượn đang xử lý (gồm mã sách, mã người dùng, trạng thái phê duyệt, mã nhân viên cho mượn và nhân viên nhận trả); bảng Histories để lưu trữ lịch sử mượn trả đã hoàn tất (ghi nhận thời gian mượn, thời gian trả, mã số sách cá biệt, mã nhân viên xử lý); và bảng historyalls lưu trữ nhật ký thao tác của thủ thư khi chỉnh sửa dữ liệu (gồm giá trị cũ, giá trị mới, tên trường dữ liệu và mã nhân viên thực hiện).
Kết luận
Đồ án tốt nghiệp của sinh viên Nguyễn Quang Lĩnh và Bùi Đức Lộc đã giải quyết trọn vẹn bài toán tin học hóa công tác quản lý thư viện tại trường Đại học Giao thông Vận tải TP.HCM thông qua việc kết hợp nền tảng web Ruby on Rails và mạch vi điều khiển ESP8266. Hệ thống được khảo sát nghiệp vụ thực tế, xây dựng hoàn chỉnh từ mô hình phân tích chức năng, thiết kế cơ sở dữ liệu 12 bảng đến triển khai giao diện độc lập cho ba nhóm đối tượng người dùng. Mặc dù còn giới hạn trong phạm vi thử nghiệm trên máy chủ cục bộ, đề tài đã chứng minh tính khả thi của việc tích hợp phần mềm mã nguồn mở với phần cứng nhúng để tự động hóa cả nghiệp vụ thư viện lẫn công tác quản trị thiết bị điện trong thực tế.