Skip to content

Full stack web application for managing collections of books. Users can search for books and keep their own collection of favourite books, while administrators can also extend application's database with new books and manage existing books and users.

petruborta/mern-bookshelves

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BOOKSHELVES

Bookshelves above the fold section

Full stack web application for managing collections of books.

Table of contents

Demo

Here is a working live demo: https://my-bookshelves.com/

Technologies

Setup

  • Clone this repository to your local machine

    $ git clone https://github.com/petruborta/mern-bookshelves

  • Go to MongoDB site and create a free account

  • Create a cluster and within this cluster create a database with 2 collections named books and users

  • Add a record to users collection following the user schema from models/User.js

  • Connect the application to cluster by clicking the CONNECT button, selecting Connect your application option and copying the given link

  • In project's main folder create a .env file with the following content and replace YOUR_ATLAS_URI with the link from the previous step, secret with any string you want and YOUR_ID with your user ID from step 4

PORT=5000
ATLAS_URI=YOUR_ATLAS_URI
rootAdminID=YOUR_ID
secretOrKey=secret
  • Also create keys.js file in config folder and add the following code to it
module.exports = {
  ATLAS_URI: process.env.ATLAS_URI,
  rootAdminID: process.env.rootAdminID,
  secretOrKey: process.env.secretOrKey
};
  • Go to Google Cloud Platform, add new project that uses Books API and create credentials to use enabled API

  • Once you've got the credentials, in client folder create a .env file and replace YOUR_GOOGLE_BOOKS_API_KEY with your actual key's value

    REACT_APP_BOOKS_API_KEY=YOUR_GOOGLE_BOOKS_API_KEY

  • Change working directory cd client and run sudo npm install to install all the dependencies

  • Go back to project's main folder cd .. and run sudo npm install to install all the dependencies

  • Use the command npm run dev to see the project live

Status

Project is: in progress - "suggest a book" feature needs to be implemented and then the app can be extended with even more features

Inspiration

Followed this tutorial to implement user authentication via passport and JWTs.

Contact

Created by @petruborta - feel free to contact me!

About

Full stack web application for managing collections of books. Users can search for books and keep their own collection of favourite books, while administrators can also extend application's database with new books and manage existing books and users.

Topics

Resources

Stars

Watchers

Forks