Giter Site home page Giter Site logo

freshpotatoes's Introduction

FreshPotatoes.com

Overview

FreshPotatoes.com is a wiki-based website for films and artists.

The FreshPotatoes team has defined a RESTful API endpoint they want you to build. The endpoint will allow external partners, like Netflix, to access FreshPotato artist and film data.

In this README, you'll find information about:


What To Build

Build a recommendations API endpoint that retrieves top-rated film recommendations. You have been given a suite of failing tests - make them pass.

User Story

"As a developer, who doesn't work for FreshPotatoes, I want to use the FreshPotatoes API to get a list of recommended films related to one film."

Acceptance Criteria

  1. Recommended films must have:
  • The same genre as the parent film
  • A minimum of 5 reviews
  • An average rating greater than 4.0
  • Been released within 15 years, before or after the parent film
  • A sort order based on film id (order by film id)
  1. The application should allow developers to:
  • Paginate by offset
  • Limit the number of returned records
  1. The application should handle for:
  • Client/server failure
  • Missing routes

API Specifications

List Recommendations

Returns a list of top-rated, recommended films related to the matched film.


GET /films/:film_id/recommendations

Parameters

Name Type Description Default Value
limit integer (optional) The desired number of results returned. 10
offset integer (optional) Specifies the first entry to be returned from the collection. 1

Successful Response

{
  "recommendations" : [
    {
      "id": 109,
      "title": "Reservoir Dogs",
      "releaseDate": "09-02-1992",
      "genre": "Action",
      "averageRating": 4.2,
      "reviews": 202
    },
    {
      "id": 102,
      "title": "Jackie Brown",
      "releaseDate": "09-15-1997",
      "genre": "Action",
      "averageRating": 4.1,
      "reviews": 404
    },
    {
      "id": 85,
      "title": "True Romance",
      "releaseDate": "09-25-1993",
      "genre": "Action",
      "averageRating": 4.0,
      "reviews": 165098
    }
  ],
  "meta": {
    "limit": 10,
    "offset": 0
  }
}

Failure Response - Use the test suite for guidance on specific error messages.

{
  "message" : "Return an explicit error here"
}

FreshPotatoes Technologies

Codebase

The FreshPotatoes API service will be separate from their customer-facing web application. In this repo, you'll find the code that will power their API: starter code and tests built with Node, Express, Mocha, SQLite, and Sequelize.

  • Once you’ve cloned, install the node modules: $ npm install
  • Then, run your application: $ npm start
  • To run integration tests, run: $ npm test

Database

The database schema is also provided via entity-relationship diagram. To interact with the database: $ sqlite3 db/database.db.

Third-Party API

The FreshPotatoes database has been developed using film data from a third-party service where fans can write reviews about their favorite movies.

As part of this project, you must use this API to access film review data. The third-party API is documented here.

Relevant Documentation


What To Turn In

The FreshPotatoes tech team will look for:

  • A git repository - Once you've downloaded the codebase, initiate a git repository. As you work, make logical, frequent commits and descriptive commit messages.

  • Production-level code. - As you implement your solution, think about maintainability, extensibility, security, and performance.

  • Consistent code. To the best of your abilities, adhere to the styleguide provided.


How To Submit Your Work

Create a public Dropbox or Google Drive folder with your work and email the folder URL to [email protected]. In the subject line, include your name and the company's name, if applicable.


Licensing

All content is licensed under a CC­BY­NC­SA 4.0 license. All software code is licensed under GNU GPLv3. For commercial use or alternative licensing, please contact [email protected].

freshpotatoes's People

Contributors

alicht avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.