|
| 1 | +import java.util.ArrayList; |
| 2 | + |
| 3 | +/** |
| 4 | + * Implement this interface to allow your code to be integrated with our web site. |
| 5 | + * |
| 6 | + * <p>When users first visit the recommender website, our code will call the method <code> |
| 7 | + * getItemsToRate()</code> to get a list of movies to display on the web page for users to rate. |
| 8 | + * |
| 9 | + * <p>When a user submits their ratings, our code will call the method <code> |
| 10 | + * printRecommendationsFor</code> to get your recommendations based on the user's ratings. The ID |
| 11 | + * given to this method is for a new Rater that we have already added to the RaterDatabase with |
| 12 | + * ratings for the movies returned by the first method. Whatever is printed from that method will be |
| 13 | + * displayed on the web page: HTML, plain text, or debugging information. |
| 14 | + */ |
| 15 | +public interface Recommender { |
| 16 | + /** |
| 17 | + * This method returns a list of movie IDs that will be used to look up the movies in the |
| 18 | + * MovieDatabase and present them to users to rate. |
| 19 | + * |
| 20 | + * <p>The movies returned in the list will be displayed on a web page, so the number you choose |
| 21 | + * may affect how long the page takes to load and how willing users are to rate the movies. For |
| 22 | + * example, 10-20 should be fine, 50 or more would be too many. |
| 23 | + * |
| 24 | + * <p>There are no restrictions on the method you use to generate this list of movies: the most |
| 25 | + * recent movies, movies from a specific genre, randomly chosen movies, or simply your favorite |
| 26 | + * movies. |
| 27 | + * |
| 28 | + * <p>The ratings for these movies will make the profile for a new Rater that will be used to |
| 29 | + * compare to for finding recommendations. |
| 30 | + */ |
| 31 | + ArrayList<String> getItemsToRate(); |
| 32 | + |
| 33 | + /** |
| 34 | + * This method returns nothing, but prints out an HTML table of the movies recommended for the |
| 35 | + * given rater. |
| 36 | + * |
| 37 | + * <p>The HTML printed will be displayed on a web page, so the number you choose to display may |
| 38 | + * affect how long the page takes to load. For example, you may want to limit the number printed |
| 39 | + * to only the top 20-50 movies recommended or to movies not rater by the given rater. |
| 40 | + * |
| 41 | + * <p>You may also include CSS styling for your table using the <style> tag before you print |
| 42 | + * the table. There are no restrictions on which movies you print, what order you print them in, |
| 43 | + * or what information you include about each movie. |
| 44 | + * |
| 45 | + * @param webRaterID the ID of a new Rater that has been already added to the RaterDatabase with |
| 46 | + * ratings for the movies returned by the method getItemsToRate |
| 47 | + */ |
| 48 | + void printRecommendationsFor(String webRaterID); |
| 49 | +} |
0 commit comments