Project Description

In this project, we'll be focusing on consuming and working with data from public APIs.

As a vehicle for learning these concepts, we'll be selecting an API from a popular website and working to re-construct a simplified version of the website's existing UI using their own API. For example, you might decide to use the Twitter API to build a basic version of the Twitter feed where users can view and post tweets.

As we build these features, we'll also be working with the OAuth protocol to authenticate our users with the third-party provider, and using various testing techniques to allow us to test against the third-party data.

The project requirements are listed below:

Learning Goals

  • Learn to consume data from third-party APIs
  • Continue to emphasize performance, UI, and overall user experience
  • Continue using TDD to drive all layers of development
  • Coordinate with project stakeholders to produce quality code and product
  • This project will be completed individually over a period of 4 days.

Technical Expectations

You'll work with an instructor to define more explicitly the requirements for your specific application, but the basic requirements for this project include:

  • Use an Omniauth authentication library for authenticating users with the 3rd-party service.
  • Mimic the interface functionality of one online service from the list below.
  • Consume an external API to get real data and interact with a third-party service.
  • Do NOT use a gem to communicate with the external API (Omniauth is OK)

The authoritative project requirements will be created and maintained in collaboration with your client through meetings and your project management tool. This means that the requirements for you could differ significantly from other projects.

Available APIs

To start, you need to select an API to work with. We've selected the following list of applications for their well-documented public APIs, and relatively straightforward UI's.

For each project, we have included a rough summary list of features to include. As with any development project, you should focus on moving iteratively through the most basic features before starting on more complex ones. During the project, the instructors will meet with you to assess progress and determine what features to focus on next.