{"action":"opened","issue":{"url":"https://api.github.com/repos/AppFolioOnboarding/image-sharer-AgentCyrusJr/issues/7","repository_url":"https://api.github.com/repos/AppFolioOnboarding/image-sharer-AgentCyrusJr","labels_url":"https://api.github.com/repos/AppFolioOnboarding/image-sharer-AgentCyrusJr/issues/7/labels{/name}","comments_url":"https://api.github.com/repos/AppFolioOnboarding/image-sharer-AgentCyrusJr/issues/7/comments","events_url":"https://api.github.com/repos/AppFolioOnboarding/image-sharer-AgentCyrusJr/issues/7/events","html_url":"https://github.com/AppFolioOnboarding/image-sharer-AgentCyrusJr/issues/7","id":309058213,"number":7,"title":"Share Image","user":{"login":"pololee","id":3411834,"avatar_url":"https://avatars0.githubusercontent.com/u/3411834?v=4","gravatar_id":"","url":"https://api.github.com/users/pololee","html_url":"https://github.com/pololee","followers_url":"https://api.github.com/users/pololee/followers","following_url":"https://api.github.com/users/pololee/following{/other_user}","gists_url":"https://api.github.com/users/pololee/gists{/gist_id}","starred_url":"https://api.github.com/users/pololee/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pololee/subscriptions","organizations_url":"https://api.github.com/users/pololee/orgs","repos_url":"https://api.github.com/users/pololee/repos","events_url":"https://api.github.com/users/pololee/events{/privacy}","received_events_url":"https://api.github.com/users/pololee/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":{"login":"lsq921224","id":2294091,"avatar_url":"https://avatars2.githubusercontent.com/u/2294091?v=4","gravatar_id":"","url":"https://api.github.com/users/lsq921224","html_url":"https://github.com/lsq921224","followers_url":"https://api.github.com/users/lsq921224/followers","following_url":"https://api.github.com/users/lsq921224/following{/other_user}","gists_url":"https://api.github.com/users/lsq921224/gists{/gist_id}","starred_url":"https://api.github.com/users/lsq921224/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lsq921224/subscriptions","organizations_url":"https://api.github.com/users/lsq921224/orgs","repos_url":"https://api.github.com/users/lsq921224/repos","events_url":"https://api.github.com/users/lsq921224/events{/privacy}","received_events_url":"https://api.github.com/users/lsq921224/received_events","type":"User","site_admin":false},"assignees":[{"login":"lsq921224","id":2294091,"avatar_url":"https://avatars2.githubusercontent.com/u/2294091?v=4","gravatar_id":"","url":"https://api.github.com/users/lsq921224","html_url":"https://github.com/lsq921224","followers_url":"https://api.github.com/users/lsq921224/followers","following_url":"https://api.github.com/users/lsq921224/following{/other_user}","gists_url":"https://api.github.com/users/lsq921224/gists{/gist_id}","starred_url":"https://api.github.com/users/lsq921224/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lsq921224/subscriptions","organizations_url":"https://api.github.com/users/lsq921224/orgs","repos_url":"https://api.github.com/users/lsq921224/repos","events_url":"https://api.github.com/users/lsq921224/events{/privacy}","received_events_url":"https://api.github.com/users/lsq921224/received_events","type":"User","site_admin":false}],"milestone":null,"comments":0,"created_at":"2018-03-27T17:14:45Z","updated_at":"2018-03-27T17:14:45Z","closed_at":null,"author_association":"CONTRIBUTOR","body":"#### As a user I want to share an image with someone via email.\n\n_Assignees_: @HaominZhang, @lsq921224\n\n__Story__:\n\nThis application is called Image Sharer. Sure, you can share images by adding\nthem to our web service, but how will people who do not know about this web\nservice be able to see those images? In phone calls with our customers we have\ndiscovered that many of our users are manually emailing their friends links to\nthe images. That is awesome! We can make things more efficent for our users by\ndirectly supporting sharing images through email.\n\n__Acceptance criteria__:\n- [ ] There is a link to share an image.\n- [ ] After clicking on this link, a bootstrap modal appears with a form to\n  send the email.\n- [ ] The form has fields for the recipient's email and an optional message.\n- [ ] The email we send has an HTML part and a text part.\n- [ ] The email contains the image, the custom message if provided, and a link\n  inviting the recipient to check out our application.\n- [ ] The modal closes and a success message is shown if the email was sent\n  successfully.\n- [ ] The user is alerted of errors if the operation was unsuccessful.\n\n__Note__: This story is large, so it makes sense to break the implementation\ndown into more manageable pieces (a la elephant carpaccio). Please start by\nimplementing a basic sharing feature that uses a new page (not a modal), and\nopen a PR for that. Then, once we've verified the simplified version is\nworking, refactor it to use a modal, and open a second PR for that. The\n[video](https://sites.google.com/a/appfolio.com/eng/new-hire-resources/engineering-academy/ropes/image-sharing-project/basics-of-bootstrap-modals-js-and-ajax)\nprovides some background and code examples that will be really helpful for the\nsecond PR, so it's worth watching (and following along) before you begin that\npart.\n\n__Discussion topics__:\n- [ ] How could we develop the front end and back end separately? (And why\n  might that be a good idea?)\n- [ ] How should we implement a non-CRUD action?\n- [ ] What are the different types of errors we should handle?\n- [ ] What is AJAX? What libraries can help us add AJAX to our Rails app?\n- [ ] How should we go about sending emails from our Rails app?\n- [ ] How could we show a preview of the image being shared in the modal?\n- [ ] What are the implications of allowing users to send emails from our app?\n\n__Reference material__:\n- http://guides.rubyonrails.org/action_mailer_basics.html\n- https://elements.heroku.com/addons/sendgrid\n- https://sendgrid.com/docs/Integrate/Frameworks/rubyonrails.html\n- https://github.com/rails/jquery-ujs/wiki\n- http://v4-alpha.getbootstrap.com/components/modal\n- https://sites.google.com/a/appfolio.com/eng/new-hire-resources/engineering-academy/ropes/image-sharing-project/basics-of-bootstrap-modals-js-and-ajax\n\n__Dependencies__:\n- Image Index\n- Refactor flow tests to use page objects\n"}}
{"actor":{"display_login":"pololee"}}