/book-trader

A web app built from the ground up that allows authenticated users to post books with the Google Books API, search and sort the user book library by category, and propose trades to other users. HTML/CSS, Javascript, React, React Router, Node, Express, Mongoose, MongoDB, OAuth, REST APIs, Webpack, Babel

Primary LanguageJavaScript

Chart The Stock Market

Overview

A textbook trading app that allows students to search for books with the Google Books API and add them to their collection. Users can browse, search, and sort the student library and propose trades with other students. In app notification let's users know when a trade has been proposed. Trades can be accepted, declined, and canceled. Users can edit their personal settings and mark books as available / unavailable and view pending trades. Authentication done with JWTs and a hash / salt based encryption strategy.

A demo version of the app is located at https://book-trader.herokuapp.com/

Install

The following must be installed to run the project:

  • Node
  • NPM
  • MongoDB

And to install the application dependencies:

$ npm install

Run

To access the Google Books API, go to the Google Developer Console at https://console.developers.google.com/

Search for the Google Books API and then click Enable. Under Credentials, copy the API key and save as GOOGLE_KEY environment variable.

Create a secret key for the JWT_SECRET environment variable. This can be done with Node from the command line using the crypto library:

node -e "console.log(require('crypto').randomBytes(32).toString('hex'));"

Start up a local MongoDB instance or enter a database URI in the MONGO_URI environment variable.

To start the app:

$ npm run start

Navigate to

http://localhost:3000

Test

To run the test suite, type the command:

$ npm test

Stack

Front-End
HTML5 / CSS3
Javascript
React
React Router
Babel
Webpack
Back-End
Node.js
Express
MongoDB
Mongoose
Redis

License

MIT License