In this project, we developed an application where we automated a Library Management System (LMS). This system will be used to borrow, return and maintain the backend information. The library user arrives at the reception. It is not manned by any person. The RECEPTION PI (RP) provides two options available for logging into the system:
- using console-based system which allows them to type in the user credentials or,
- using a facial recognition system The user registration is required for the first-time user. Upon registration the details are stored in a local database installed on RP. Upon logging in, a success message along with the username is sent from RP (Reception PI) to the MASTER PI (MP) via sockets. The user is now presented with another console-based application where the user can search for book catalogues based on ISBN/Author name/Book name (either by using console-based system or voice search feature) , option for borrowing a book/books, option for returning a book/books (either by typing the ISBN of a book or scanning the QR code), logout. Upon logging out a message is sent via sockets from MP to RP. For library admin: This is a separate website application that runs on MP. It can only be accessed by admin personnel. Admin website makes use of an API to:
- Add books to catalogue
- Remove books
- Generate a data visualisation report for books borrowed (day and week wise) The book database is stored on a cloud environment namely the Google’s GCP IoT platform (Google Cloud Platform).
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.
In our implementation, we use two raspberry pis where one act like a reception and other one acts like a master. You can use you machine with two windows to get the application working.
A step by step series of examples that tell you how to get a development env running
Say what the step will be
Please find the installation.txt file where you will find all the necessary packages to install
Explain how to run the automated tests for this system
You will need to run user.py file in one window and library_menu.py in another window
- Python - programming language
- SQLite - relational database management system
- MySQL - open-source relational database management system
- Flask - Python microframework
- Google Cloud Platform - Google Cloud Platform
- Google Calendar API - Used to add, remove events on a user Google Calendar
- Google Assistant SDK - Used to translate voice to text
- OpenCV - Used to detect object via camera
- Google Data Studio - Used to Generate a data visualisation report
- Mohammed Alotaibi - MohammedAlosaimi
- Dawei Mao - maodawei
- Brad Hill - Bradels
- Farid Farzin - FaridFarzin
- Acknowledgments to COSC2674 - Programming Internet of Things code archives