Skip to content

oneexists/Bookshelf

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bookshelf Application

Add your books to your bookshelf, tracking when books were read, and collect all your notes from each book. Provides a single location for keeping track of reading and note taking.

Links

Technologies

Back-End

Front-End

Process Analysis

  • Handle Authentication and Authorization Exceptions:

  • Create authentication hook:

  • Add a Spring Data REST Projection to display author information within book query to simplify and reduce API queries

    "language": "English",
    "bookId": 1,
    "title": "War and Peace",
    "author": {
      "authorId": 1,
      "name": "Leo Tolstoy"
    },
    "pages": 1296
    
  • Utilize React design patterns

  • Add styling using React styled-components and CSS Modules

  • Parse reading log dates from JSON string values in JavaScript for date formatting

    • date appeared to be one day off due to time zone resolution while creating a new Date in JavaScript
    • used a regular expression as suggested here to convert dates from YYYY-MM-DD to YYYY/MM/DD before creating a new Date to for date formatting
    • example of parsing and formatting date:
      new Date("2022-12-13".replace(/-/g, '/')).toLocaleDateString()
  • Simplify AppUserDetails implementation by extending Spring Security User

  • Create Docker build script

  • Remove arrow function from delete button to prevent excess re-rendering

Target Process

  • Provide reading statistics (yearly and overall)
    • total books and pages read
    • books and pages read by language
  • Add quotes to books
  • Add notes to books
    • optionally tag note with topics

Resources