Skip to content

asterbot/Book-Explorer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


Book Explorer

Discover, track and share books!

A full-stack web app with personalized recommendations, reading analytics, and book clubs

Supabase PostgresSQL React Python

Table of Contents
  1. Book Explorer
  2. Setup Instructions
  3. Features Implemented
  4. Screenshots
  5. Contributors

Setup instructions

DB access

The database is hosted on Supabase via PostgresSQL.
To set up the database, you will first need to create a blank database on Supabase and enter your API credentials in .env in the root of the repository.
It will have the following format:

user=...
password=...
host=...
port=...
dbname=...

Then, set up a virtual environment in the backend

cd backend
python -m venv venv/
source venv/bin/activate
pip install -r requirements.txt 

If you want to initialize the database, run ./setup.sh in the root directory after setting up the virtual environment.

This is the script that initializes the database schemas and loads sample data into them.

Then you should be able to run any SQL query with python runSQL.py [name-of-sql-file].sql and see the output on the terminal.

Running locally

To run the app locally, do the following after the DB setup has been done:

Backend

cd backend
source venv/bin/activate # if you are using a virtual env
python backend.py # use python3 instead if you have an older python version installed

This command starts the Flask development server with API endpoints

Frontend

cd frontend
npm install
npm run dev

Features Implemented

The application supports the following features (linked to SQL queries in queries/milestone3/):

Basic Features

  • Search for books by title (R6)
  • Add books to a wishlist (R7)
  • View common books between two users (R8)
  • View top 5 highest-rated books (R9)
  • View top 5 most wishlisted books (R10)

Fancy Features

  • Tag-Based Book Recommendations (R11): Suggests books based on tags you frequently use, by finding other readers with similar preferences.
  • Finding Book Clubs Based on Genre (R12): Recommends book clubs that align with your reading history.
  • Book Completion Rate (R13): Displays how many readers finish a book after starting it—useful for picking engaging reads.
  • Concurrent Club Join Limit (R14): Trigger to ensure fairness when multiple users try to join the last available slot in a book club.
  • Reading Streak (R15): Tracks consecutive reading days to keep you motivated.

Screenshots

Home page:
Screenshot from 2025-08-19 14-26-10

Recommendations page:
Screenshot from 2025-08-19 14-26-29

Profile page:
Screenshot from 2025-08-19 14-26-41

Tech stack

  • Frontend: React with TypeScript
  • Backend: Python (Flask REST API, Psycopg2 for PostgreSQL integration)
  • Database: PostgreSQL (hosted on Supabase)

Contributors

Name GitHub
Arjun asterbot
Skylar Skylarrji
Serena xuserena12
Gary garysu92
Thanh lvthanh03

About

An app to explore books!

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •