Project for CS 340: Software Engineering
LiteLib is a personal library application that allows users to keep track of media they own. The users will be able to scan barcodes and allow students to check out books from a personal library. This project would use simple client/server architecture, with a database to store media and users and use an API to get media information from the internet.
The motivation for this project is to recreate a free version of a web library application for educational purposes which lets educators and/or students maintain an online record of books, media, e-books, CDs, etc. Similar software is charging about $9/month for this service which is an expensive price to pay.
We tried to re-create this concept in this semester-long project and added functions like adding and checking out books through barcode scanning, editing user and book information, setting checkout limits, downloading the database as an Excel file as well and uploading data through an Excel sheet. The requirements for the project were set pretty clearly since the initial planning so there were no big surprises along the way expectation-wise. Some parts of the project took longer than the others like setting up the barcode scanner but overall, we were able to come up with more clear issues as we worked on the current ones and were able to meet the deadlines promptly. I believe our overall goals with this project have been achieved which include being able to retrieve book data through barcode scanning and being able to manage and edit the database.
The system was designed with teachers and students in mind, emphasizing simplicity, data ownership, and zero subscription cost. Comparable tools often charge monthly fees, whereas LiteLib remains fully open source and self-hostable, giving users complete control over their data and deployment environment.
Quick book entry using ISBN lookup
Basic, Advanced, and Admin permissions
Book checkout and return tracking
CSV and Excel file support
Works on desktop and mobile devices
PWA and Electron desktop apps
LiteLib uses a classic client-server architecture. The backend is implemented in Node.js with Express and serves dynamic pages using EJS templates. Persistent data storage is handled via SQLite, chosen for its simplicity and ease of deployment in educational environments.
The frontend is built with HTML, CSS, and JavaScript and styled using Bootstrap 5 to ensure responsiveness across desktop and mobile devices. The application can be installed as a Progressive Web App (PWA) or packaged as a native desktop application for Windows, macOS, and Linux using Electron.