In a small community of 30-50 users, we want to manage borrowing of items from a central pool. The usual use case would be to borrow and return items by scanning them with one's own mobile on a meetup. As everything is based on trust, every user should be able to enter items they borrowed and returned. To add new items to the pool, QR codes would be attached to each item which are then scanned and entered into the system.
Mobile app to use the system (at least Android)
QR/bar code scanner can be used to identify (check in / check out) an item
Web client would be useful as well
Custom attributes in addition to the usual title, author etc.
Offline transactions: check in / check out of items while not connected to the system, will be carried out when connection is available again
You should have a look at Drupal, and use either of the below contributed modules and/or distributions for managing reservations, for something that is not a room (or a variation of that). These modules all have a stable release for Drupal version 7 (quotes are from their project pages):
... provides a simple and easy way to reserve items which can be created by the administrator. Examples for it's usage can be hotel rooms, boats, cars, airplanes, basically anything you can think of which can be reserved by one individual.
The module provides the possibility to create reservations for other users (dependend on the permissions), and provides also restrictions in the maximum number of reservations a user can make and a maximum time a reservation can be made in advance.
There is NO support for payment, booking and what ever one could imagine beyond the pure and simple reservation, and it is also NOT intended to create more than this simple functionality.
... can extend any content type into a list of unique reservable items (like studios) or buckets of interchangeable items (like DV cameras). We followed the approach used by Organic Groups, Feed API, and Scheduler and added MERCI's configuration to the Edit tab of those content types.
This comparison contains some other modules (not mentioned in my answer here) that might be worth considering also, e.g. in case of requirements that are slightly different (as compared to those in the question here).