DEV Community

Cover image for How I made an Online E-book store and reader
Akbar Ali
Akbar Ali

Posted on • Updated on

How I made an Online E-book store and reader

Introduction

First of all, I am a full stack web developer working as a freelancer. I have done many projects with Django for many of my clients, but recently I thought about initiating a startup. Many ideas came up among my friends and we decided to start working on some of them.

One of the ideas was to build an online e-book store for monthly subscription. I didn't think about any copy-right issues and competitors. We found some pdfs of famous books and I just started developing. Yeah, I am the one and only developer among my friends. I have to develop it myself. They ask me about the updates everyday.

Problems to solve

I have seen many e-book readers like Kindle, Google books, Wattpad and so on. But I always wondered about how they manage to deliver each page to users without any chance to steal their book. I tried inspecting many web apps and found no loopholes. At last, Made an API to request each page of the book to server and return page as base64 image.

But still the problem exists. The users can download the image of the page. Surfed around the internet. I found some other guys who asks the same questions - "How to protect images from being downloaded?"

Some of them said to disable right clicking and downloading using JavaScript. Others said to provide image as a background URL. And many of them said to print it in canvas. Still, an advanced user can download the image easily. Putting watermark on them was another solution. But it's about reading. Watermark affects reading.

This problem still exists and I am seeking for the answer currently.

The Logo

I got the name Publiso from some random business name generator online. So, the logo should describe P and a book. Searched google "logo of a book with letter P". I copied one of the logo found there. But eventually it turned out a piece of shit. Inspired from Youtube I made a rounded rectangle with the theme color gradient and put a bookmark icon in the center. That looks good.

Publiso logo

The Web App

We all learn CRUD functionalities when we research about backend development. So, making a book store wasn't a great challenge. The main steps in the development were:

  • Books

  • Authors

  • Categories

  • Authors

Book objects have their Review object and they related with Categories and Authors. Every user has Follow, Library, BookRead objects. Users can follow authors, read books when the page will be stored for another opening. They can add books to their library. Books can be listed according to Categories, Authors.
I also implemented a search functionality.

Payment

At last, applied on Razorpay, bought domain and vps deployed project as publiso.in. Somehow, publiso.com was a premium domain which costs around 2 Lakhs Indian Rupees. I developed subscription system on deployment. Every user has to pay 99 Indian Rupees to get a 30 days subscription. That's mandatory to read any book.

Better luck next time

I was happy completing this project and waited for users to register here. Even spent 650 Rupees in google ads which resulted 144 clicks and nothing. No-one made an account and no penny credited to our account.

I realized that all books we have are available around the internet for free. So, there is no meaning to sell them for money. It's better to deliver them free and people will enjoy it.

Removed all subscription and payments stuff. Made it totally free.

Github

I published the project on GitHub and you guys are welcome to test the code.

Source code

Leave your feedbacks as comments.
Can we develop this into a big project ?
Anyone interested to contribute ?

Buy Me A Coffee

Top comments (2)

Collapse
 
napestershine profile image
napestershine

I am interested.

Collapse
 
pulimoodan profile image
Akbar Ali

Well, your bio doesn't tell me much. I got into your Github profile and realized that you are also working on some book store project. It's interesting. I think you can contribute something here. Any idea to interact ? Discord, Twitter or anything else?