Last Modified 2006-08-21 by Jan Schneider

About Groo

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
    • ask to borrow a book
    • approve lending of a book

After the basics are done, we also want our user to be able to:

  • search, tag, comment, recommend and rate books in her collective catalog
    • 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 vs. 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". Eventually Items will also refer to DVDs, LPs, CDs.

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.