ReadingBuddies icon indicating copy to clipboard operation
ReadingBuddies copied to clipboard

SPA and REST API demo that aggregates the book reviews of multiple Goodreads users

Reading Buddies (TypeScript Version)

Build Status Dependency Status devDependency Status

Angular/Node.js/Gulp/Redis Example Demonstration

A simple SPA and REST API demo that aggregates the book reviews of multiple Goodreads users.

The project is comprised of an Angular SPA, Express REST API, and Gulp build process.

  +-------------+
  |   Browser   |
  | Angular SPA |
  +------+------+
         |
 +-------+--------+   +-------------+
 | Express Server +---+ Redis Cache |
 +----------------+   +-------------+
         |
 +-------+--------+
 |  Goodreads API |
 +----------------+

Screenshots

Home page screenshot

Config page screenshot

Quick Start

Install and run the dependencies:

  • Install Node.js
  • Install and run Redis, or use the Redis Docker image: docker-compose up -d redis
  • Install other CLI tools: npm install -g bower gulp tsc tsd

Configure the application:

  1. Request a Goodreads API Developer Key
  2. Copy .env.example to .env
  3. Modify .env with correct configuration values

Build and run the application:

  1. Run npm install && bower install && tsd install to install the app dependencies
  2. Run npm run build to build the app JS/CSS bundles and static files folder (./build/)
  3. Run npm start to start the http server
  4. Open browser: http://localhost:8000

To build a Docker image of the app:

  1. Build the app: npm run build
  2. Build the image: docker-compose build web
  3. Run the container: docker-compose up -d web

Contributing

  1. Fork and clone it
  2. Install dependencies: npm install && bower install && tsd install
  3. Create a feature branch: git checkout -b new-feature
  4. Commit changes: git commit -am 'Added a feature'
  5. Run static code analysis and unit tests: npm test
  6. Push to the remote branch: git push origin new-feature
  7. Create a new Pull Request

Build/refresh upon file changes:

  1. Run npm run dev for development mode
  2. Open browser: http://localhost:3000

License

MIT License Copyright © 2014 Christopher Martin