A place for you to explore books with your friends!
This project was made for a Tech-With-Tim CodeJam, by the Programming Addicts.
Booksplore is a website where you can enjoy, and explore the world of books - with your friends, and in the comfort of your browser! It offers a safe online environment for you to engross yourself in the world of books with your friends.
BookSplore is a social platform, as well as a site dedicated to books, in accordance with our tagline - Explore the world of books, with your friends
. So BookSplore offers you the following delights -
Please note that we use the Google Books API to obtain some information about books and to allow users to read them, so these features alone may not be available for all books. Needless to say, every other feature would be available regardless of the book, as they are completely implemented by us.
To get started, head over to our website - booksplore.milind.lol. Once you register yourself, you will be redirected to your dashboard.
To explore our collection of books, ratings, reviews, and users, head over to the Explore page, and search for a book, or user you want to view! When searching for books, you can search by name, by subject, and by its ISBN - International Standard Book Number.
Once you provide your search query, BookSplore will fetch data from the Google Books API, and our own databases for a wide collection of books, and users. You can browse these, at your leisure!
This project was written in Python3
, and primarily, Javascript
for the frontend.
The backend made use of FastAPI
, which is a fast, asynchronous API framework for Python, and Postgres
for the database. Asyncpg
was used to establish connections to the database.
The frontend was written with a popular javascript framework - Vue.js
We used the Google API for books to obtain data about books published by authors.
To locally run BookSplore, first fork, and clone this git repository to your machine.
Setting up the frontend is very easy -
cd
into the frontend
directory.npm install
to install the packages required.npm run serve
to build the project, and move it into the required directory. If you are on Windows, you will need to run this in git bash.cd
into the backend
directory.pip install -r requirements.txt
to install the dependency modules..env
file in the same directory as the example.env
and copy the format as shown in the example file.SECRET_KEY
for JWT tokens.DB_URI
in the .env
APIs & Services
section and click on + Add Credentials
and create an Oauth Client IDWeb Application
for Application type and add the following entries:http://127.0.0.1:8000
for Authorized JavaScript origins
and http://127.0.0.1:8000/api/auth
for Authorized redirect URIs
Create
GOOGLE_CLIENT_ID
and GOOGLE_CLIENT_SECRET
in the .env
+ Add Credentials
and click on API key
to create an API key for Google Books API. Make sure you enable the Google Books API from the Google API libraries. Fill out the GOOGLE_API_KEY
in the .env
file.uvicorn main:app
. If all steps were followed correctly and dependencies were installed, it will start the FastAPI server and initialize all the tables for you in the database.To contribute to BookSplore, first fork this repository, clone it, and switch to another branch which describes your contribution.
Once you finish your changes, make sure to lint the files with a linter like prettier, or black. Then push your changes, and open a Pull Request!
Please read this short, yet important passage. By using our website, registering for an account, you agree to these guidelines.