This is a general post that is more about a project that I am working on. What is it, did you ask? Well, stay tuned to find out. If you want you can check out the project here.
What is the Project ?
A little bit of a back story here. So, I was searching the web the other day for a platform to keep my e-books organised. What I had in mind was something like Amazon Kindle. But, you know the deal it needs me to buy books and more importantly it is a closed-source service. I wanted a self-hosted, reliable interface.
What did I find out ?
Then, after many Brave Searches later, I found out that there is a project called BookStack, which let's you self-host I library. So, that's it post over. Bye.
Unless there is a catch, and it is the fact that it is for creating and storing information in a wiki like format. So, you can make a book but not upload a book. Once again, we were back to searching.
What next ?
Now, since I cannot find a solution that meets my needs, I (in a traditional developer fashion) decided to go ahead and create one. I was convinced that I know Python and Django, so why not just test my skills with a fun little project.
The Checklist:
- 1. Back-end for managing the database and files - Django
- 2. Front-end for the UI part of the website - Bootstrap
- 3 Reader for E-book (.epub) files. - Epub.js Reader
- 4. A good admin interface for Django - Django Jazzmin
Let's get coding...
I started by creating a Django Project and started to develop the web app. Finalising the models etc. which took around 3-4 hours. Now, we go designing. I know the design isn't very good but I couldn't think of anything at the time. After testing them as a static website, I got to converting it into a Jinja Template.
Next Day...
I decided to look up a library that I could use to display the E-Book and I found Epub.js but couldn't get it to work with Django then I tried its Reader, which worked fantastically.
Third Day...
I looked up a beautiful admin interface for Django and used it to improve the looks of the Django Admin Interface. And Voila, everything was done in 2.5 or so days.
Fourth Day...
Now, I got to writing a README file this projects repository. Which you can see here.
Learning
I, undoubtedly, learnt a lot while bringing this project together. And, I hope you would too by looking and analysing the code for yourself.
Contributing
You can just send along a pull request to contribute to the code.
