Experimental project

This is a sandbox project, which contains experimental code for developer use only.

Description

With the module BiDiCo we want create a widespread shared library. Once installed the module, everyone can register to the website and share her/his books to other BiDiCo registered users. Other users see your books and ask you to borrow it, then the owner of the book and borrower can keep in touch directly on the site and agree to meet each other in order to exchange the book. Once the reader have finished the book borrower and follower agree to meet each other again and the owner can set the state of the book as available for another lending. At registration time users insert their address (the city they live is enough), so the borrower can choose the book she/he is looking for from the nearest owner.

Conceived within the Condiviviamo Project developed at the University of Milano-Bicocca and supervised by Federico Cabitza, PhD. http://www.condiviviamo.net

Dependencies

Required dependencies

prepopulate
privatemsg
geolocation field

Optional dependencies

There are some other drupal modules are not necessary for BiDiCo to works, but thay can be useful. For example consider to install modules that implement rating on books or feedback on users. Something like these:

Fivestar
Rate

BiDiCo installation

  1. Install and enable BiDiCo dependencies listed above.
  2. Clone git repository of BiDiCo into your file system giving the command git clone --branch 7.x-1.x http://git.drupal.org/sandbox/jepperpi/2501675.git bidico. You must have git installed, alternatively you can download the zip file below and upload it to your drupal site.
  3. Upload bidico folder to your drupal site. Path for modules usually is
    <root_drupal_folder>/sites/all/modules
  4. Enable bidico module.

Now you have your BiDiCo site. You should do some other simple step in order to make it usable by end users.

Change user permissions

By default only administrator can insert new books. You have to change user permissions in order to let authenticated users to insert their books: go to admin/people/permissions, find permissions about node of type book (start with 'Book:') and check authenticated user column.

If you want to allow users to exchange messages directly on your site, in the same page, you have to set permission also for `privatemsg`

In a default drupal installation, registered user can't perform a search on the site. To allow user search, enable Use search for authenticated users.

Another permission to set, is the rule that allows registered users to see the address of the other users. This is important because it allows user to choose the nearest book. Check the permission View user profiles and it's done.

User instructions

Insert books

Once the user has completed registration, he can click on the link Add new book in the navigation menu. Then she/he can insert the title of the book she/he wants to insert (or the ISBN, or the author), the system searches the book on google (thanks to google book api) and shows to the user main results of the search. When user finds her/his book, clicks on the link 'This is my book', then she/he can edit default properties of the book and select the state of the book. A book on BiDiCo can be in one of the following states:

  • Available: the book is available and it can be lended. At first insertion, typically it is in this state.
  • Reserved: an user wants to borrow this book. An owner can approve or deny a reservation; if she/he approves then the state of the book become borrowed, if she/he denies, the book become available again.
  • Borrowed: the book is borrowed. Once the book returns to owner, she/he have to set the state of the book as available.

If the user doesn't find her/his book in that returned by the system, she/he can click on Add a book without correspondence (below the table with search result) and insert title and the other properties of the book she/he wants to insert.

Find books to borrow

Registered users can search the books inserted into BiDiCo by typing the title (or ISBN or author) of the book she/he would borrow into drupal default search form. In the search result, she/he can click on the username of the book owner and see his/her address. Once the user find the book she/he would borrow, she/he clicks Reserve this book then the book become 'reserved'.

Search by proximity

User can find books to borrow by clicking on Search a Book and then choosing Search by Proximity.
Here user can choose if he want to look for books around the current position or the one kept in his profile.

Approve or deny reservation

The owner of the book can approve or deny a reservation by accessing the link Transitions in navigation menu. From the same page owner and borrower can contact each other by clicking on the link with the username of the borrower or the owner.

Books return

When owner and borrower meet each other, they agree on the day of the return. Once the owner has the book again, she/he has to edit the book state and set it to 'available'.

Sandbox
You can try to play with BiDiCo here. You can register a new user or use these credentials:
Username: stefano
password: test

AttachmentSize
BiDiCo11.24 KB

Project information