Github alias | Name |
---|---|
JeeTee0/d064467 | Oskar S. |
medizinmensch | Youri S. |
menno4000 | Max L. |
This Project is made possible by vue-cli, bootstrap, apollo graphql, neo4j and more.
cd backend
yarn install
yarn dev
cd backend/neo4j
docker build . -t sdaf_neo4j
docker run -p 7474:7474 -p 7687:7687 --volume=$HOME/neo4j/data:/data --volume=$HOME/neo4j/logs:/logs --env=NEO4J_dbms_memory_pagecache_size=4G --env NEO4J_AUTH=neo4j/wordpass -d --name sdaf_neo4j sdaf_neo4j
# Create some test data
cd ..
yarn db:seed
Open localhost:7474 for neo4j playground.
cd webapp
yarn install
yarn dev
Login via:
Username: [email protected]
Password: admin123
AFTER LOGIN, YOU HAVE TO RELOAD THE PAGE TO TAKE AFFECT
(bug`)
Deadline is December 18th, 2019
- ✅ Refactor your backend so that all the data is stored inNeo4J.
- ✅ You are allowed to use a query builder like neo4j-graphql-js but at least one of your mutations and queries should access the database directly with Neo4j JS driver and a custom cypher statement.
- ✅ Your objects in the database should be connected in some way. If you have a
relationship like
then this query should return todos and user objects:
(:User)<-[:ASSIGNED]-(:Todo)
query { todos { assignedTo { name } } }
- ✅ Implement a filter (
WHERE
in cypher). - ✅ Implement some ordering (
ORDER BY
in cypher). - ✅ Implement pagination (
SKIP
andLIMIT
in cypher). - ✅ Implement an update mutation that uses
MERGE
. - ✅ Write backend tests for all of the above.
- Request a review from @roschaefer.
- Request a review from sb. else.
If you copy code from other groups, please give credit to them in your commit messages.
Learn how to use graphql-middlewares and start programming with NuxtJS.
Deadline is January 8th, 2020
- ✅ Optional tasks of exercise #3 are now required: Implement a permission layer around your app. Use graphql-shield and graphql-middleware. Here is some inspiration how your test cases could look like: Test cases for a permission layer
- Create a NuxtJS app and write a couple of different page components. Your
page component should have some level of nesting. Like
/nested.vue
,/nested/index.vue
and/nested/_id.vue
. - ✅ Connect your frontend with your backend via apollo-module. So if you update a data object in your frontend, it sends a graphql mutation to the backend.
- Make use of apollo-module's authentication helpers and have at least one page component which requires authentication.
- Refactor your backend and frontend to show something different than just todos and users. Be creative.
- Do a remote pair-programming session. You can choose any pairing partner, either from our course or you can also ask our open-source community.
- Record your pair-programming session and publish it. Choose any software you want. If you don't like being on the web, disable your webcam and save the video as "unlisted". I recommend PeerTube to host the video but there is also this commercial platform called YouTube as an alternative. Send a link to your recorded video to [email protected].
- Write backend and frontend tests. Mock
this.$apollo
in your frontend tests and respond with some mocked data or simulate an error. - Request a review from @roschaefer.
- Request a review from sb. else.
The point of exercise 3. and 4. is to socialize and see how easy it is to find people from around the world who like to program with you and learn with you. Even a recording of a pairing session can be interesting learning material. Think of people who don't have access to public education, e.g. studying at a university like you do.
Also, if you get stuck, people can help out. Often, developers wait for too long before they ask for help. It causes a lot of frustration and this particular situation happened for a team while working on exercise #3. Asking for help in our community chat is quick and usually there is always somebody around who can help out: https://human-connection.org/discord
If you copy code from other groups, please give credit to them in your commit messages.