---
# System prepended metadata

title: Project report week 1

---

# Project report week 1
Team: Book friending bot
Members: Alla Chepurova, Tihonov Nikita

### Project proposal
The project we decided to choose is the one we found among the proposals - *Tinder Bot*. The field of recommendation systems seems interesting to us, it would be nice to investigate what is going on in this there, have some practice in it as it is industry-oriented. Moreover, one student in our team had an idea of implementing a book-specific dating app since the hackathon in 2019 but did not have appropriate skills for fulfilling this. So, the time has come.

Firstly we wanted to do a music-specific dating app but found that Tinder already has integration with Spotify, so this could be less interesting in our opinion. The remaining areas of interest on which we would like to match people were books and movies. We decided to stop on the last one. 

### Target audience
Our project will be good for use for lovers of book with different genres and authors. Lately it is very difficult to find a reading person who could keep the conversation going and the situations becomes worse with time. And we do not even consider specific genres of books, whose connoisseur are even harder to meet. Our project will try to solve this issue by recommending an appropriate interlocutors for different book lovers to fill their time with meaningful and productive conversations.

### Main ideas

- More about *friending rather than dating*.
- Matching are based on the features of the books users love that create a possibility to find new friends who indeed could keep a conversation with book-loving user
- Age, sex and polical agnostic matching.
- Implementing matching engine with a simple api to make it independent from the way it will be used by customers (web, telegram bot, desktop, etc.).
- For the MVP we decided to implement a telegram bot. Several reasons for that: it would be convinient for the first customers to start using our matching engine without downloading any auxilary app instead they could have conversation directly in the messager (successful example: dating bot from Дайвинчик), secondly it would be convinient for demo presentation with Innopolis student.

### Analogs in the market

We conduct a small research on web-sites and applications based on similar idea and tried to reveal their drawbacks and differences with our concept:

- https://apps.apple.com/app/id1472538465 - actually good one, but the core idea is different. It is based on books exchanges and swiping people by the covers of their favorite books instead of recommed users with similar book taste.
- https://www.booklovers.dating (we even created a fake profile to investigate what is going on there). This one is actually good one too, but it pursues a different goal. It is more about *dating* rather than finding an appropriate interlocutors. It could be seen from a very big registration form, which requires users to add info about their appearance and even sexual orientation, policial views and geolocation. 

![](https://i.imgur.com/0T4E75M.jpg)

![0.4](https://i.imgur.com/thrNz1V.png)

- https://play.google.com/store/apps/details?id=booklovers.dating.booklovers&hl=en_IN&gl=US actually does not work, the rating is bad.

- *We did not find any similar applications in Russian at all*


### MVP architecture
The detailes of architectures we managed to discuss so far: 
- We decided to use document-based database, e. g. MongoDB for storing unnormed data. There should be 3 tables:

1) books 

| book_id | book_title | author | genres | description |
| -------- | -------- | --------|  -------- | -------- | 

2) vectorized_books

| book_id | book_vector|
| -------- | -------- |

3) users

| user_id | favorite_books_ids | matched_users | tg_alias 
| -------- | -------- | --------|  -------- |

| user_id | favorite_books_ids | matched_users | age | gender | name  | city |
| -------- | -------- | --------|  -------- | -------- | -------- | -------- |


### Dataset for recommedations

We decided to scrap LitRes Russian library and check [permissions of litres for user agents](https://www.litres.ru/robots.txt):
![](https://i.imgur.com/EM7IKRC.png)

For the MVP we will scrap the top books based on their popularity on the litres.ru.

In case of absence of user's favorite book he/she will be allowed to add information about it, fileds of which correspond to the table named *book* in our dataframe. 