Skip to content

AdrianGlanowski/BookShop

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

BookShop app

A hobby CRUD project to explore modern web development using Spring Boot, React, and PostgreSQL. Users can browse and search a large collection of books by title, author, publisher, and rating.

Database

Data was sourced from Kaggle: Goodreads Books Dataset and imported into PostgreSQL.

  • Database name: books-library
  • Table name: books
    • id (primary key) (integer)
    • title (text)
    • authors (text)
    • average_rating (real)
    • isbn (varchar(10))
    • isbn_13 (varchar(13))
    • language_code (varchar(5))
    • num_pages (integer)
    • ratings_count (integer)
    • text_review_count (integer)
    • publication_date (date)
    • publisher (text)

Backend

The backend is built using Spring Boot and exposes a REST API:

Base URL: http://localhost:8080/api/v1/books

Query Parameters:

  • title — search by book title
  • author — search by author name
  • publisher — search by publisher name
  • rating — returns books with rating >= specified value
  • page — pagination (100 results per page, 0-indexed)

Search for string parameters is implemented based on "contains" relation.

Example: http://localhost:8080/api/v1/books?author=Rowling&rating=4&page=0

Frontend

The frontend is built with React. Features:

  • Search books by title
  • Pagination/load more results (work in progress)
  • Placeholder images for books (dataset doesn’t provide images)

Screenshots: main_page.png search_function.png

Running app

To start backend, go into backend directory and type mvnw.cmd spring-boot:run (for windows, for other OS use equivalent command). App will open on port 8080.

To start frontend, go into frontend directory and type npm start. App will open on port 3000.

About

Book shop CRUD fullstack app with SpringBoot backend and React Frontend

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors