Groo is written in PHP 5.1 with Horde 3.1.
The code can be found in the Horde CVS: http://cvs.horde.org/incubator/groo/
You can see Groo running here: http://wanderingbooks.org
++ HIgh-level use cases
At a minimum, Groo should allow a user to:
catalog her books, by typing ISBNs or scanning barcodes
invite friends who will have access to her books
search, tag, comment, recommend and rate books in her collective catalog
ask to borrow a book
approve lending of a book
get e-mail remembering to return a book, or to ask for a book which is overdue
arrange the exchange of books, either setting up meetings or scheduling drops
++ Basic entities
The main entities in the Groo system are Users, Books and Items. Users are basically managed and stored by the Horde infrastructure.
+++ Books x Items
What we call a Book in Groo is not a physical object, but rather a certain edition of a work, such as "PHP in a Nutshell, ISBN: 0596100671". An Item is a particular physical instance or exemplar of a Book, such as my own copy of "PHP in a Nutshell".
So Groo has a public database of Books, and private collections of Items, which are the user's book collections. The collections are implemented as Horde shares.