Skip to content

simulacrumus/readshelf

Repository files navigation


Logo

Read Shelf

Find Your Next Favorite Read

About The Project

ReadShelf helps you organize your readings, find new books, save books to your wishlist, leave reviews and read other users' reviews. ReadShelf's simplistic and easy-to-use design provides a great user experience.

ReadSheld is a MERN Stack project. I have developed ReadShelf from scratch to improve my React.js and NodeJS skills. There are still some issues and I will continue to contribute to the project.

Plese visit the deployed version of the project on my website https://emrahkinay.com/apps/readshelf .

(back to top)

Features

  • User authentication via JSON Web Token
  • Google OAuth2 Authorization
  • Email Verification, Resetting Password via Email, etc.
  • API Security (JWT, Blocking Query Injection, Request Limiting, File Upload Limiting)
  • Responsove Web Design

Built With

  • React.js
  • NodeJS
  • Express.js
  • MongoDB Atlas
  • REST API
  • Redux
  • SendGrid
  • Google Books
  • Google OAuth2
  • Material UI

(back to top)

Getting Started

Please follow the instructions below to get started with the Read Shelf project.

Prerequisites

  • NodeJS v14.16.1 or newer version
  • npm npm install npm@latest -g

Installation

ReadShelf project uses Google Books for searchinng and displaying books, Google OAuth2 for authentication, New York Times Bestseller lists for popular books, MongoDB Atlas for storing data and SendGrid for sending emails

  • Get Google Books API Key at https://cloud.google.com
  • Get Google OAuth API Key at https://developers.google.com/identity/protocols/oauth2
  • Get New York Times API Key at https://developer.nytimes.com/apis
  • Get Mongo Atlas URI at https://www.mongodb.com/atlas
  • Get SendGrid API Key at https://sendgrid.com
  • Clone the repo
    git clone https://github.com/simulacrumus/readshelf.git
  • Install NPM packages
    npm install
    cd client
    npm install
  • Enter your keys in .env file
     MONGO_ATLAS_URI=<YOUR MONGO OR MONGO ATLAS URI URI>
     JWT_SECRET=<YOUR JSON WEB TOKEN SECRET STRING>
     GOOGLE_BOOKS_API_KEY=<YOUR GOOGLE BOOKS API KEY>
     GOOGLE_CLIENT_ID=<YOUR GOOGLE CLIENT ID>
     GOOGLE_CLIENT_SECRET=<YOUR GOOGLE CLIENT SECRET>
     SENDGRID_API_KEY=<YOUR SENDGRID API KEY>
     SENDGRID_SENDER_EMAIL_ADDRESS=<YOUR SENDGRID SENDER EMAIL ADDRESS>
     GOOGLE_ANALYTICS_MEASUREMENT_ID=<YOUR GOOGLE ANALYTICS MEASUREMENT ID>
     NYTIMES_API_KEY=<YOUR NEW YOUR TIMES API KEY>
     NYTIMES_API_SECRET=<YOUR NEW YORK TIMES API SECRET>
    
  • Run Node.js Server
    npm start
  • Run React App
    cd client
    npm start

(back to top)

Contact

Emrah Kinay - @emrahkinay

Project Link: https://github.com/simulacrumus/readshelf

Demo Link: https://emrahkinay.com/apps/readshelf

(back to top)

Screenshots

ss-05
ss-04
ss-03
ss-02
ss-01

About

ReadShelf Web Application - Organize Your Books and Reviews

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages