OSU Winter 2024 Hackathon Project
This application allows a user to track books they've read, add books they'd like to read, and has several features to help the user discover new books they might be interested in.
The first feature we wanted to provide to the user is the ability to log books that they've read in the past, and to create a list of books that they'd like to read in the future.
The user can log books they've read by entering the title and author, along with some personal information from the user (rating of the book, date they started reading it, and date they finished the book). The logged book is then stored in a database that keeps track of the user's reading history.
The database mentioned above is also used to display two bookshelves to the user:
My Library: bookshelf of books that the user has read
To-Read List: bookshelf of books that the user would like to read (interaction with this list discussed in the next section)
Each time a user adds a book to either list, they will see it show up in the corresponding bookshelf.
The second feature we wanted to provide to the user is the ability to discover new books that they might be interested in. The Reading Corner provides this in two ways: searching based on keywords, and searching based on author and category.
The user can type in any keyword, and after clicking the "Search" button will be displayed up to 6 books related books that we think they might find interesting. For each of these books, the user is shown the title, author, cover, and a brief description of the book. If the user is interested in reading the book, they can click the "Add Book" button, which will then add it to their To-Read List and bookshelf.
A user search for "baseball novel" gives these results:
In this section, the user can search an author and category and will be shown up to 6 books that match. Like the previous section, the user is shown information about each book and has the ability to add it to their To-Read list and bookshelf.
A search for "Stephen King" books in the category "Thriller" returns these results to the user:
The app uses React.js on the front end and a combination of Flask, MongoDB, and calls to the Google Books API on the back end.
In order to use The Reading Corner, follow these steps:
- Clone the Github repository to a folder on your local machine.
- Open the folder containing the app in a terminal window and do the following:
To get into the backend folder:
cd backend
To start the server:
python3 server.py
- Open a new terminal in the folder containing the app and run the following:
To get into the frontend folder:
cd frontend
To install dependencies:
npm i
To start the app:
npm start