International Social Network for Readers
How a passion for reading can inspire you to create a successful business? This is a story of Byzans — an international social network for readers
Mobile client: Flutter (Dart)
Back-end: Django (Python)
Environment: EC2 (Ubuntu), RDS (PostgreSQL), ElastiCache (Redis)
Using the product, you can search for new books, save them, discuss literature, and communicate with fellow bookworms.
Byzans combines the strengths of two major competitors — the Amino literature section and the Goodreads platform. Amino is a network of communities dedicated to a wide range of topics including literature. The second serves as a social cataloging portal for readers. Byzans was the first App to match cataloging with book discussions. The idea belongs to the French product owner and LANARS’ client Simon Gauchet.
Byzans was planned as a tool for passionate readers. With the help of this product they can search for new books using ISBN, author’s name, or book titles, save them to various lists, discuss literature, and chat with soulmates.
Smooth design, easy-to-navigate interface, useful social media aspect — Byzans ensures convenient usage and comfortable communication with fellow book lovers. Discover more features of the application in the advantages section.
Users can find a particular book in the database by scanning its ISBN using the camera of their smartphones. Scanning is possible in QR scanning mode.
In the section of News Feed, the application shows users which books their friends have recently added to their bookshelf, as well as lets you know if the status of the books they have already saved has changed.
There are several communication modes within the Byzans app. The three chatrooms are for real-time group chat. The type of chat users get in depends on their reading stage. They automatically fall into one of the categories: Want to Read, Currently read, Read. The forum provides relaxed communication with a large number of people — this is the community section dedicated to books and authors. Users can visit all three chatrooms to communicate with readers who have indicated other reading stages.
Top 50 is a statistics section, in which information is constantly updated. The section shows the most popular clubs on books that have “read”, “want to read” or “currently reading” statuses.
There are several large open resource sites on the Internet where you can find the name of a book, information about the author and publisher, as well as view the original cover of the book. Amazon Books and Google Books API are among them. The problem is they have request restrictions, can duplicate results, and are virtually impossible to synchronize.
We standardized the method of receiving and pre-processing data from third-party servers and created an algorithm that automatically generates an internal database.
A book search may not give any results at all or may show you the same book several times. There are reasons for this. For example, most books have been reprinted. It is also important to understand that the same book can be published in different languages, and its title in different translations may differ.
Our team has created an algorithm that eliminates unnecessary results from the search section by comparing titles with each other.
To compile a user’s book list, we needed visual material that reflected the saved books on user screens. To do this, we needed a database of high-quality images that would contain book covers presented in the same style.
LANARS’ programmers have implemented standards for the selection of visual content found on the Internet.
To find information about a book using its title, ISBN code, or author’s name, Byzans has to send a request to many library servers, bookselling sites, and electronic registers. In the test version of the product, such a search could take from 20 seconds to several minutes. To speed up the process, we needed to invent a data caching algorithm.
We’ve started the background development of our book database based on Amazon Redis caching.
While developing the product architecture, it became clear that the app needed its database of books. But how to implement the idea without spending hundreds of years manually adding information about the millions of books that have been written by humanity?
All the results that our search engine returns in response to user requests are compared with existing items in our database; if Byzans discovers a new book, it adds it to the database.