-
Notifications
You must be signed in to change notification settings - Fork 0
Description & context
This section offers a detailed guide to the development of the project. It presents the scope for the functional and non-functional system requirements.
The book recommendation market is led by giants companies like Amazon and Google, whose algorithms favor bestsellers and popular works over lesser-known titles. This leads to a lack of diversity in the recommendations, as the same books are often suggested to readers.
To find more diverse and interesting recommendations, readers often turn to independent bookstores or sites where experts manually pre-select books. However, this method requires time to review the various lists, which can be customized. Additionally, title searches can be complicated due to differences between editions, making book exploration more challenging and less intuitive.
The BookQuest project seeks to overcome these limitations by offering an accessible and intuitive open source book recommendation solution. By allowing users to scan an ISBN, BookQuest simplifies the discovery process by instantly providing detailed book information as well as personalized recommendations that prioritize diversity and exploration of lesser-known titles.
Unlike major platforms, BookQuest does not require a login to access suggestions and relies on the ISBN for recommendations. This eliminates complications associated with different editions, creating a more enriching and inclusive reading experience. Furthermore, if the user chooses to log in, recommendations become even more personalized, based on the user's previous readings and ratings of books, further enhancing the discovery process.
There are two main types of user actors :
- Visitor : A person who visits the site without being logged in. Can search for books and receive recommendations only based on the book searched for.
- User : Visitor with an account and logged in. Can manage his library, add comments and receive personalized recommendations based on his reading preferences.
Since the project had to be completed in a short time frame (3 weeks), we had to focus on certain functionalities. To distinguish these requirements from others, we use "must" for those that are required and "should" for those that are desired.
- Visitors must be able to register with an username and a password.
- Users should be able to recover forgotten passwords by email.
- Users should be able to change their password.
- Stored password must be hashed with Argon2id algorithm.
- Users should be able to delete their account.
- Visitors must be able to scan an ISBN from their phone.
- Visitors must be able to send a photo for ISBN identification.
- Visitors must be able to type an ISBN for search.
- Visitors should be able to type an author or a title for search.
- The system must extract the ISBN from the images using OCR and/or a barcode scanner.
- The website must return an error to the visitor if the ISBN cannot be recognized or is incorrect.
- The website must display detailed information for the book associated to the searched ISBN.
- The website must display a list of books by the same author as the searched book.
- The website should display a list of books from the same series as the searched book.
- The website must display a list of recommended books based on the searched book.
- Users must be able to add the searched book to their readings.
- Users must be able to add the searched book to one of their bookshelf.
- Users should be able to rate the reading of the searched book.
- Users should be able to mark the reading of the searched book as owned.
- Users must be able to mark the reading of the searched book as favorite.
- Users should be able to comment the reading of the searched book.
- Users must be able to access all their readings through a dedicated page.
- Visitors should be able to use the website easily.
- The website should return book information and recommendations in a maximum of 5 seconds.
- All transmissions between the system and the website should be encrypted using HTTPS.
- The website should be responsive and work on mobile devices.
- The website should be built with web accessibility in mind.
- The website should support English and allow for easy addition of other languages in the future.
- The system should periodically check that the book data stored is up to date.
- The system should be scalable and should be able to handle 10 simultaneous users.
We used Figma for both:
-
Mockups: Creating detailed visual representations of our product's interface, including layout, design elements, and user interactions.
-
Design System: Establishing a cohesive and reusable set of UI components, guidelines, and styles to ensure consistency across the product.