Skip to content

Free and open source website, to read / download e-books, made using NodeJs , ExpressJs, MongoDB

License

Notifications You must be signed in to change notification settings

varun-s22/BookHub

Repository files navigation

BookHub

Static Badge Static Badge Static Badge Static Badge Static Badge Static Badge Static Badge Static Badge

BookHub is a free and open-source website, for reading/downloading books. Just create an account and read all the books you would like, for free or download ePubs. We also allow users to post comments (with attachments), to share their opinions on the book.

Image Description

Note: You can check out other screenshots here at SCREENSHOTS.md

Setup and Installation

There are two ways, one can host this locally on their machine

Host via Docker

  • Install Docker on your machine.

You don't require to build the image, since its already published in DockerHub

  • Run the following command
docker run -p 3000:3000 --env-file .env reputation22/bookhub

It requires a .env file, whose format is given below.

Note: Since MongoDB is not synced in this image, you must create a cloud database on Mongo Atlas.

Host without Docker

  • Install NodeJs

  • Install MongoDB

  • Clone this repository by entering the following command on your terminal

  • Create a .env file in the root directory. It should look like this

  API_KEY=< your Google Books API key >
  secret=< your Session secret >
  CLOUD_NAME=< your Cloudinary cloud name >
  CLOUD_API_KEY=< your Cloudinary API key >
  CLOUD_API_SECRET=< your Cloudinary API secret >
  DB_URL=< your mongo atlas URL >

Open the folder, and install the dependencies, by

npm install

Now start the local server on your machine, by

npm start

Visit localhost:3000 on your browser to open the website.

Extra Requirements

You can get a Google Books API Key, from here, and Cloudinary API Key from here.

For the Production environment/building with docker, we use Mongo Atlas database, so make sure to register there, get your own Database URL, and put it in the .env file