Library mangement program for the CFL Open Library
Centre For Learning (CFL) is a school near Bangalore, India, which has this thing called the Open Library. Basically, anyone can come in and borrow books (the librarian makes accounts for all the students, staff and guests) and enter their borrowings in the library's computer. To make sure that the book is actually coming back, users have to enter the book's accession number, which will be written inside the book. The idea is that everyone takes responsibility for the books, instead of having one librarian doing all the managing.
The program currently being used for the library management is called Merlin, and it is being used in several schools as well as CFL.
Now, the Merlin application code is very old and buggy, so I've been asked to make a new one. But, since this is the first proper program I'm making, the end result may be a program that's very new and buggy.
I'm putting this program on GitHub in the hope that other people may decide to help and improve the code. And maybe if it gets enough attention more people will start setting up Open Libraries...
The old software was called "Merlin", hence I decided to name the new one after my dog, Growlin.
Right now I'm planning to make two interfaces for Growlin: one is the user's interface where they manage their borrowings, and the other is the admin interface where the librarian can add new books, etc. Later, I also hope to implement plugin functionality so that different libraries can enable/disable different plugins as required.
The project is going to be developed as a Flask webapp, with the peewee ORM for managing the database. For developing, the database is going to be SQLite, but in the actual one it'll be replaced with MySQL or something. The Flask project is in the growlinflask
folder, in case we need the rest of the space for other files.
To set up the project, cd
to to the growlinflask
directory, and then install dependencies:
pip install -r requirements.txt
To set up the database and generate the test data, you can type the following in a Python console (opened in the growlinflask
directory):
>>> import models
>>> models.create_test_data()
Once everything is installed, you can run the server using:
python growlin.py
A development server will be started, which you can access by pointing your browser to localhost:5000
.
Growlin also includes files from the following libraries for convenience. For licensing details, please check the respective repo/website.
- Fontawesome (http://fontawesome.io)
- Materialize (http://materializecss.com)