Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Time - Alex #41

Open
wants to merge 14 commits into
base: master
Choose a base branch
from
Open

Time - Alex #41

wants to merge 14 commits into from

Conversation

codesrobertson
Copy link

@codesrobertson codesrobertson commented May 26, 2020

Media Ranker

Congratulations! You're submitting your assignment!

Comprehension Questions

Question Answer
Describe a custom model method you wrote. If I had written a custom model method, it would have been the requested spotlight method, or a method to display only ten media per medium on the homepage. (I set up the groundwork for this project, but encountered unexpected constraints this week that hindered progress beyond that point. Please feel free to Slack me if you have any questions or concerns.)
Describe how you approached testing that model method. What edge cases did you come up with? While I haven't made a spotlight method yet, some edge cases I might have used to test one would have included: output when the database is empty, output for when none of the media has votes, output when there's a tie for the "spotlight" media, output when all media has the same number of votes.
What are session and flash? What is the difference between them? Session and Flash are workarounds for the stateless constraints of HTTP requests, each allowing data to be persisted across different time spans. Session persists over the lifecycle of the browser; whereas Flash only persists through the lifecycle of one request.
What was one thing that you gained more clarity on through this assignment? I gained more clarity around flash messages in this project. I also solidified my understanding of database migrations. Under improved circumstances, I could how I would gain greater clarity from further practice with testing, validations, and Bootstrap, as well.
What is the Heroku URL of your deployed application? N/A at this time.

Assignment Submission: Media Ranker

Congratulations! You're submitting your assignment. Please reflect on the assignment with these questions.

Reflection

Prompt Response
What was a custom model method you wrote? What was it responsible for doing?
Describe how you approached testing that model method. What edge cases did you come up with?
What are session and flash? What is the difference between them?
What was one thing that you gained more clarity on through this assignment?
What is the Heroku URL of your deployed application?

@CheezItMan
Copy link

Media Ranker

Functional Requirements: Manual Testing

Criteria yes/no
Before logging in --
1. On index page, there are at most 10 pieces of media on three lists, and a Media Spotlight ⚠ It doesn't look like you got here.
2. Can go into a work's show page ✔️
3. Verify unable to vote on a work, and get a flash message ⚠ It doesn't look like you got here.
4. Can edit this work successfully, and get a flash message ✔️, you can edit a work, but no flash notice
5. Can go to "View all media" page and see three lists of works, sorted by vote ⚠ It doesn't look like you got here.
6. Verify unable to create a new work when the form is empty, and details about the validation errors are visible to the user through a flash message ⚠ It doesn't look like you got here.
7. Can create a new work successfully. Note the URL for this work's show page ✔️
8. Can delete this work successfully ✔️
9. Going back to the URL of this deleted work's show page produces a 404 or some redirect behavior (and does not try to produce a broken view) ⚠ It gives a 404, but uses a head.
10. Verify that the "View all users" page lists no users ⚠ It doesn't look like you got here.
Log in --
11. Logging in with a valid name changes the UI to "Logged in as" and "Logout" buttons ⚠ It doesn't look like you got here.
12. Your username is listed in "View all users" page ⚠ It doesn't look like you got here.
13. Verify that number of votes determines the Media Spotlight ⚠ It doesn't look like you got here.
14. Voting on several different pieces of media affects the "Votes" tables shown in the work's show page and the user's show page ⚠ It doesn't look like you got here.
15. Voting on the same work twice produces an error and flash message, and there is no extra vote ⚠ It doesn't look like you got here.
Log out --
16. Logging out showed a flash message and changed the UI ⚠ It doesn't look like you got here.
17. Logging in as a new user creates a new user ⚠ It doesn't look like you got here.
18. Logging in as an already existing user has a specific flash message ⚠ It doesn't look like you got here.

Major Learning Goals/Code Review

Criteria yes/no
1. Sees the full development cycle including deployment, and the app is deployed to Heroku ⚠ It's not deployed
2. Practices full-stack development and fulfilling story requirements: the styling, look, and feel of the app is similar to the original Media Ranker ⚠ It doesn't look like you got here.
3. Practices git with at least 25 small commits and meaningful commit messages ⚠ Only a few commits relative to the size of the project.

Previous Rails learning, Building Complex Model Logic, DRYing up Rails Code

Criteria yes/no
4. Routes file uses resources for works ✔️
5. Routes file shows intention in limiting routes for voting, log-in functionality, and users ✔️
6. The homepage view, all media view, and new works view use semantic HTML ⚠ Very basic html so far
7. The homepage view, all media view, and new works view use partials when appropriate ⚠ Not much in the use of partials
8. The model for media (likely named work.rb) has_many votes ✔️
9. The model for media has methods to describe business logic, specifically for top ten and top media, possibly also for getting works by some category ⚠ Not done
10. Some controller, likely the ApplicationController, has a controller filter for finding a logged in user ⚠ Not done
11. Some controller, likely the WorksController, has a controller filter for finding a work ⚠ Not done
12. The WorksController uses strong params ✔️
13. The WorksController's code style is clean, and focused on working with requests, responses, params, session, flash ⚠ Mostly clean, but with missing requirements so far.

Testing Rails Apps

Criteria yes/no
14. There are valid fixtures files used for users, votes, and works ⚠ No tests
15. User model has tests with sections on validations (valid and invalid) and relationships (has votes) ⚠ No tests
16. Vote model has tests with sections on validations (valid and invalid) and relationships (belongs to a user, belongs to a vote) ⚠ No tests
17. Work model has tests with sections on validations (valid and invalid) and relationships (has votes) ⚠ No tests
18. Work model has tests with a section on all business logic methods in the model, including their edge cases ⚠ No tests

Overall Feedback

Overall Feedback Criteria yes/no
Red (Not at Standard) 0-10 in Code Review or 0-11 in Functional Reqs, or assignment is breaking/doesn’t run with less than 5 minutes of debugging, or the instructor judges that this project needs special attention As is this doesn't really approach the requirements of MediaRanker.

Code Style Bonus Awards

Summary

I'm glad you got this submitted, but it's far from feature complete. You're missing testing, and the entire upvote functionality as well as session and validations. If you push further commits up I'll be happy to look at them and give you updated feedback.

@@ -0,0 +1,3 @@
require "test_helper"

describe HomepageController do

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing an end.

@@ -0,0 +1,4 @@
class Vote < ApplicationRecord

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You should also include a validation to ensure the combination of user_id and work_id are unique.

Suggested change
class Vote < ApplicationRecord
class Vote < ApplicationRecord
validates :work_id, uniqueness: { scope: :user_id,
message: "You can only vote for a work once" }

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants