Coverage Status Build Status GitHub release


Logo

Grup ES : Bookshelter

An awesome web application to book and manage your favourite books.
View Demo · Report Bug . Request Feature . API Documentation

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Contact
  6. Acknowledgements

About The Project

This is the project that has been done for the Software Engineering subject of the Computer Engineering degree at the University of Barcelona. This project has been developed following the different methodologies seen in class.

This website is based on the sale of books online in which users can search among a large number of books and can buy those they like the most. We also want this page to allow users to manage the books in the most comfortable way possible. For this, each user has their own library where the purchased books are added. In addition, they can also add books to their wish list to be able to acquire them in the near future.

We also want anyone responsible for maintaining the page to work in the best possible way. For that we want the administrator to have all the information about how the book sale is going on this page. The admin can also add the new titles available on the market, edit the information of an already added book, remove a book from the user's view, etc.

The page will also be the place where users can comment on the books and rate them so that it can be useful to other users in the community.

Built With

Bookshelter web is divided in two parts: Frontend and Backend.

In the Backend part, the programming language used is Python 3.6. We have designed an API to manage all requests and data. So we used a popular light framework called Flask.

In the Frontend part, we have used web-oriented programming languages like HTML and Javascript. To make it easier, we've used Vue.js to design the user interface. If we talk about Bookshelter's web design and appeareance, we have used Bootstrap along with BootstrapVue.

Getting Started

This project is build using PyCharm and Atom but these are not an actual requirement for running the project. You can just execute this project on localhost. In order to do that you will have to meet all the requirements described in this section and follow the instructions described in usage.

Prerequisites

Installation

Once you have an enviroment of python 3.6 running with pip installed. You can simply run the following command to install all the dependencies:

pip install -r deploy/requirements.txt

If you want to be able to test and avaluate metrics like coverage you will need to install also the requirements for testing. Run the following command:

pip install -r requirements_test.txt

Once you have node.js running you can use npm to install all the dependencies. Just run the following command:

npm run install

Usage

As previously explained, the project is oriented to sell books where both users and administrators will mainly use the application through a web interface. However, there is a public API that would allow any user to create programs to interact with the database.

We will briefly explain how to use some of the features the product has.

First, on entering the main website locally or through our main demo, we are welcomed with:

portada

On clicking on any book, we can see more details about it.

libro

We can also search a specific book, through a basic search or click the three dots near the search button, to do an advance search.

search

Furthermore, when logged in, you can access at any point your library through clicking your profile name on the top left and selecting the option Biblioteca.

biblioteca

In case you logged in an admin account, you should be able to access the webpage of stock, through a similar procedure as before, but selecting the option Stock.

stock

For the usage of the public API, please refer to the API Documentation.

Roadmap

See the open issues for a list of proposed features (and known issues).

Contact

Acknowledgements