Technical Overview¶
In the next few lines is a description about some technical details on the implementation of the project, namely used technologies and algorithms. This is intended for future developers.
BookSharing Website¶
The website was developed using Ruby on Rails. This allows us to deploy a user friendly website in a few steps while offering support
for integrating new platforms.
- The project has its own database, located inside the folder "db" and already includes some users for testing purposes.
- For each page (view) there is a file describing it programmaticaly and for each class there is a controller;
- Each controller has its own way to manage the requests:
- Html requests are routed to the code inside the block format.html {...};
- Json requests are routed through code inside the block format.json {...};
- Any code outside both blocks is executed equally for both formats;
Android¶
- The android application relies on both activities and fragments to show the information gathered from the server.
- The main activity enclosures a fragment with three perspectives: the book list, the search view and the new book menu.
- The first one corresponds to a list retrieved from the server on the app startup;
- The second one is responsible for launching the search activity;
- When searching by ISBN code or registering a book, the user is allowed to scan barcodes via the camera in the smartphone. This functionality is provided by the >Xing Library for 1D / 2D image processing. In this case, an intent integrator was created to include in the app such functionality.
- The third one is used to register a new book.
- The user can be authenticated in order to have access to more functions, namely:
- Register a new book;
- Rate an existing book;
- Access his personal area.
- On both personal area and book page, there is an image view associated:
- The image is loaded to that view through a system of background task on temporary cache, so that the system doesn't lock down when fetching large image files;
- This system is composed by several classes, all of them included in the project.
Aditional considerations¶
- Due to system limitations, namely the low quality and diversity of the smartphone cameras, when registering a new book, the user can't
add an image for the book cover. That image is replaced by one default image link that will be fetched from the server, although the user can always change the book cover in the website.