{"action":"opened","issue":{"url":"https://api.github.com/repos/MorneTer/pwp-capstones/issues/7","repository_url":"https://api.github.com/repos/MorneTer/pwp-capstones","labels_url":"https://api.github.com/repos/MorneTer/pwp-capstones/issues/7/labels{/name}","comments_url":"https://api.github.com/repos/MorneTer/pwp-capstones/issues/7/comments","events_url":"https://api.github.com/repos/MorneTer/pwp-capstones/issues/7/events","html_url":"https://github.com/MorneTer/pwp-capstones/issues/7","id":359299206,"node_id":"MDU6SXNzdWUzNTkyOTkyMDY=","number":7,"title":"Summary","user":{"login":"jmcrey","id":16808761,"node_id":"MDQ6VXNlcjE2ODA4NzYx","avatar_url":"https://avatars2.githubusercontent.com/u/16808761?v=4","gravatar_id":"","url":"https://api.github.com/users/jmcrey","html_url":"https://github.com/jmcrey","followers_url":"https://api.github.com/users/jmcrey/followers","following_url":"https://api.github.com/users/jmcrey/following{/other_user}","gists_url":"https://api.github.com/users/jmcrey/gists{/gist_id}","starred_url":"https://api.github.com/users/jmcrey/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jmcrey/subscriptions","organizations_url":"https://api.github.com/users/jmcrey/orgs","repos_url":"https://api.github.com/users/jmcrey/repos","events_url":"https://api.github.com/users/jmcrey/events{/privacy}","received_events_url":"https://api.github.com/users/jmcrey/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2018-09-12T03:13:06Z","updated_at":"2018-09-12T03:13:06Z","closed_at":null,"author_association":"NONE","body":" ## Rubric Score\r\n \r\n### Criteria 1: Valid Python Code\r\n* _Score Level:_ 4 (Exceeds Expectations)\r\n* _Comment(s):_ Code runs without any errors.\r\n \r\n### Criteria 2: Implementation of Project Requirements\r\n* _Score Level:_ 4 (Exceeds Expectations)\r\n* _Comment(s):_ Code produces the suite of functions and classes required of it and calls them in an appropriate order. Furthermore, the code following Python's best practices, the code is well formatted, and is very cleverly implemented. Great job!\r\n \r\n### Criteria 3: Software Architecture\r\n* _Score Level:_ 4 (Exceeds Expectations)\r\n* _Comment(s):_ Code is separated into distinct classes and functions, each of which are invoked for their own purposes. Furthermore, the code under `TomeRater` produces a set of functions that further expand upon other functions, thereby allowing for code-reuse. Nice job!\r\n \r\n### Criteria 4: Uses Python Language Features\r\n* _Score Level:_ 4 (Exceeds Expectations)\r\n* _Comment(s):_ Code uses language features appropriately. If a task can be solved with a Python language feature, it is. Some highlights to this are the use of `lambda` throughout the last `get_n_most*` functions in the `TomeRater` class. Also, the use of `sum` and `len` in the `get_average_rating` under the `Book` class was absolutely sublime. The one exception is that we could have used the `get` function to help us in the `add_book_to_user` function (covered [here](https://github.com/MorneTer/pwp-capstones/issues/5)); however, this was just a small oversight. The rest of the code was absolutely gorgeous. \r\n \r\n### Overall Score: 16/16\r\n\r\nThis was a great project! My one piece of advice is to look into using universally acceptable child-class implementation syntax (covered [here](https://github.com/MorneTer/pwp-capstones/issues/4)) and to check out more built-in functions for dictionaries (notably, the `get` function). \r\n\r\nOtherwise, this project was very well implemented, followed Python's best practices, used spacing expertly and had descriptive variable names. Nice job!\r\n"}}
{"actor":{"display_login":"jmcrey"}}