|
| 1 | + |
| 2 | +# Exercise \#5 |
| 3 | + |
| 4 | +Learn how to use graphql-middlewares and start programming with NuxtJS. |
| 5 | + |
| 6 | +**Deadline is January 8th, 2020** |
| 7 | + |
| 8 | +1. Optional tasks of exercise #3 are now required: Implement a permission |
| 9 | + layer around your app. Use [graphql-shield](https://github.com/maticzav/graphql-shield) |
| 10 | + and [graphql-middleware](https://github.com/prisma-labs/graphql-middleware). |
| 11 | + Here is some inspiration how your test cases could look like: |
| 12 | +  |
| 13 | +2. Create a NuxtJS app and write a couple of different page components. Your |
| 14 | + page component should have some level of nesting. Like `/nested.vue`, |
| 15 | + `/nested/index.vue` and `/nested/_id.vue`. |
| 16 | +3. Connect your frontend with your backend via [apollo-module](https://github.com/nuxt-community/apollo-module). |
| 17 | + So if you update a data object in your frontend, it sends a graphql mutation |
| 18 | + to the backend. |
| 19 | +4. Make use of apollo-module's [authentication helpers](https://github.com/nuxt-community/apollo-module#authentication) |
| 20 | + and have at least one page component which requires authentication. |
| 21 | +5. Refactor your backend and frontend to show something different than just |
| 22 | + todos and users. Be creative. |
| 23 | +6. Do a remote pair-programming session. You can choose any pairing partner, |
| 24 | + either from our course or you can also ask our open-source community. |
| 25 | +7. Record your pair-programming session and publish it. Choose any software you |
| 26 | + want. If you don't like being on the web, disable your webcam and save the |
| 27 | + video as "unlisted". I recommend [PeerTube](https://joinpeertube.org/) to |
| 28 | + host the video but there is also this commercial platform called YouTube as |
| 29 | + an alternative. Send a link to your recorded video to [email protected]. |
| 30 | +8. Write backend and frontend tests. Mock `this.$apollo` in your frontend tests |
| 31 | + and respond with some mocked data or simulate an error. |
| 32 | +9. Request a review from @roschaefer. |
| 33 | +10. Request a review from sb. else. |
| 34 | + |
| 35 | +### Teaching goal |
| 36 | + |
| 37 | +The point of exercise 3. and 4. is to socialize and see how easy it is to find |
| 38 | +people from around the world who like to program with you and learn with you. |
| 39 | +Even a recording of a pairing session can be interesting learning material. |
| 40 | +Think of people who don't have access to public education, e.g. studying at a |
| 41 | +university like you do. |
| 42 | + |
| 43 | +Also, if you get stuck, people can help out. Often, developers wait for too long |
| 44 | +before they ask for help. It causes a lot of frustration and this particular |
| 45 | +situation happened for a team while working on exercise \#3. Asking for help in |
| 46 | +our community chat is quick and usually there is always somebody around who can |
| 47 | +help out: https://human-connection.org/discord |
| 48 | + |
| 49 | + |
| 50 | +If you copy code from other groups, please give credit to them in your commit |
| 51 | +messages. |
0 commit comments