Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
145 changes: 35 additions & 110 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,141 +1,66 @@
# Welcome to 2021 & our Exercise 5 homework README
# Systems Development and Frameworks - 2020/21

![YayyyYYYyYyyyy](https://octodex.github.com/images/baracktocat.jpg)

## Review for no-js-pls
<table>
<tr>
<td>
Link to review: https://github.com/Systems-Development-and-Frameworks/no-js-pls/pull/7#discussion_r552005187
</td>
</tr>
</table>
## Welcome our Exercise 8 homework README

<p align="center">
<img src="https://i.pinimg.com/originals/bd/37/c1/bd37c1ad61f398d0bcb17acb90009cf0.jpg" alt="homework" width="60%">
<p>

## TEAM
Dirty_thirties is the homework team consisting of
Dirty_thirties is the homework team of
```
Jenny | Nele | Sarah
```
This README is created to share and publish our homework for Systems Development & Frameworks.


## Exercise #5
## Exercise 8

| Deadline | Date |
| -------------------------- | ---------------------- |
| Review due date (optional) | 16.12.2020 - 14:00 |
| Final Due date. | 06.01.2021 - 14:00 |
| Extended | **10.01.2021** |


## Objectives

:star: For choosing a scenario and writing installation instructions in `README.md`.

:star: For explaining *WHY* you have chosen the scenario in the `README.md`.

:star: For not committing sensitive secrets (e.g. API keys) unencrypted to the
repository.

:star: :star: Data created in mutations are persisted and your queries
and mutations still work as expected.

:star: :star: Your software tests are free of side effects.

:star: Your database is never left in an invalid state.

:star: You deny the client to call mutations and queries of your subschema
directly.
| **Final Due date** | **03.02.2021 - 14:00** |

:star: For requesting a review and reviewing another team's PR.

All objectives must be implemented according to the [instructions](#instructions).

## choosing of a scenario
*--->>> Remote GraphQL API*
### GOAL

#### Why ?
We choosed the architecture of the Remote GraphQL API.
There are some reasons for this decision:
- we didn´t want to choose a local Neo4J DB architecture because of the accessibility and workability for all team members
- we thought a local DB could bring some problems with deferred processing of the task by different team members
- With remote GraphQL API´s we have more experiences
- Remote GraphQL API architecture has some advantages:
- Increase in performance: the number of requests required and the amount of data transferred can be reduced. This is a great advantage for the mobile sector.
- The client can request several resources at the same time and receives all the necessary data with just one request.
- There is only one end point. The client decides which data is required and only receives this.
- remote availability instead of local architecture
- and to be honest: it was introduced to be the easier option
In this exercise we practice how to implement a design specification given in the form of an image or document. You do not necessarily have to extend exercise 1-7 (this is optional, see [Optional Objectives](#optional-objectives)). Make it clear in your Pull Requests how we can build and test your solution.

Eventhough Neo4J has many advantages aswell, just one of our 3 team members has experiences with Neo4J. So we decided democratically against the local Neo4J DB for the Remote GraphQL API archticture.
The goal is to implement a simplified [Holy Grail layout](https://en.wikipedia.org/wiki/Holy_grail_(web_design)) with a header, content and footer section. Header and content must be responsive. It is advised to make use of [media queries](https://developer.mozilla.org/en-US/docs/Web/CSS/Media_Queries/Using_media_queries) for responsiveness and [CSS grids](https://developer.mozilla.org/de/docs/Web/CSS/CSS_Grid_Layout) for the layout.

## Installation instructions

Go in folder design
```
To install the dependencies via npm:
```
$ npm install
```
Run Linter
serve with hot reload in dev mode
```
$ npm run lint
$ npm dev
```
Test Linter
build for production and launch server:
```
$ npm run test
npm run build
```
Run Backend
npm run generate
```
$ npm run dev
npm run start
```

### Steps

- Create an account on [GraphCMS](https://graphcms.com/)
- Create a `Post` Model and add the the fields
- Add a Field of Type `Single Line Text`
- Add `Title` as Display Name
- Check `Use as Title field`
- Make the filed `Required`
- Add a Field of Type `Refernce`:
- Reference to Person Model (Will be added laters)
- Add a Field of Type `Refernce`:
- Reference to Vote Model (Will be added laters)
- Create a `Person` Model and add the fields
- Add a Field of Type `Single Line Text`
- Add `Name` as Display Name
- Check `Use as Title field`
- Make the filed `Required`
- Add a Field of Type `Single Line Text`
- Add `Email` as Display Name
- Check `Use as Title field`
- Make the filed `Required`
- Set field as `unique`
- Check `Match a specific pattern` and choose Email whith Flag `Case insensitive`
- Add a Field of Type `Single Line Text`
- Add `Password` as Display Name
- Make the filed `Required`
- Add a Field of Type `Refernce`:
- Reference to Vote Model Person Model (Will be added laters)
- Create a `Vote` Model and add the fields
- Add a Field of Type `Number`
- Add `Value` as Display Name
- Make the filed `Required`
- Limit input Range between -1 and 1
- Add a Field of Type `Refernce`:
- Reference to `Person` Model
- Configure the Relation cardinality between `Votes`and `Person` to `Many-to-one` ( Check: Allow multiple `Votes` per `Person`)
- Set the display name in the `Configure refrence` Tab to `Voted by`
- Set the display name in the `Configure reverse filed` Tab to `Votes`
- NOTE: The inverse relationship will be atted to the `Person` Model automatically
- Add a Field of Type `Refernce`:
- Reference to `Post` Model
- Configure the Relation cardinality between `Votes`and `Post` to `Many-to-one` ( Check: Allow multiple `Votes` per `Post`)
- Set the display name in the `Configure refrence` Tab to `Post`
- Set the display name in the `Configure reverse filed` Tab to `Votes`
- NOTE: The inverse relationship will be atted to the `Person` Model automatically


... YAYYYY almost done ... :stuck_out_tongue_closed_eyes:
![YayyyYYYyYyyyy](https://media4.giphy.com/media/fsQbx1hX7hPBBpIM5b/giphy.gif)
## Objectives

:star: For a header and it's responsiveness (direct links vs. hamburger menu)

:star: For a content section and it's content items

:star: For a responsive content section (3-column vs 1-column layout)

:star: For responsive content items (1-column vs. 2-column layout)

:star: For a footer

All objectives must be implemented according to the [instructions](#instructions).


---
... YAYYYY last exercise ... :stuck_out_tongue_closed_eyes:
13 changes: 13 additions & 0 deletions design/.editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# editorconfig.org
root = true

[*]
indent_style = space
indent_size = 2
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true

[*.md]
trim_trailing_whitespace = false
20 changes: 20 additions & 0 deletions design/.eslintrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
module.exports = {
root: true,
env: {
browser: true,
node: true,
},
parserOptions: {
parser: 'babel-eslint',
},
extends: [
'@nuxtjs',
'prettier',
'prettier/vue',
'plugin:prettier/recommended',
'plugin:nuxt/recommended',
],
plugins: ['prettier'],
// add your custom rules here
rules: {},
}
90 changes: 90 additions & 0 deletions design/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
# Created by .ignore support plugin (hsz.mobi)
### Node template
# Logs
/logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*

# Runtime data
pids
*.pid
*.seed
*.pid.lock

# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov

# Coverage directory used by tools like istanbul
coverage

# nyc test coverage
.nyc_output

# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
.grunt

# Bower dependency directory (https://bower.io/)
bower_components

# node-waf configuration
.lock-wscript

# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release

# Dependency directories
node_modules/
jspm_packages/

# TypeScript v1 declaration files
typings/

# Optional npm cache directory
.npm

# Optional eslint cache
.eslintcache

# Optional REPL history
.node_repl_history

# Output of 'npm pack'
*.tgz

# Yarn Integrity file
.yarn-integrity

# dotenv environment variables file
.env

# parcel-bundler cache (https://parceljs.org/)
.cache

# next.js build output
.next

# nuxt.js build output
.nuxt

# Nuxt generate
dist

# vuepress build output
.vuepress/dist

# Serverless directories
.serverless

# IDE / Editor
.idea

# Service worker
sw.*

# macOS
.DS_Store

# Vim swap files
*.swp
3 changes: 3 additions & 0 deletions design/.jshintrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"esversion": 9
}
4 changes: 4 additions & 0 deletions design/.prettierrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"semi": false,
"singleQuote": true
}
20 changes: 20 additions & 0 deletions design/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# design

## Build Setup

```bash
# install dependencies
$ yarn install

# serve with hot reload at localhost:3000
$ yarn dev

# build for production and launch server
$ yarn build
$ yarn start

# generate static project
$ yarn generate
```

For detailed explanation on how things work, check out [Nuxt.js docs](https://nuxtjs.org).
7 changes: 7 additions & 0 deletions design/assets/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# ASSETS

**This directory is not required, you can delete it if you don't want to use it.**

This directory contains your un-compiled assets such as LESS, SASS, or JavaScript.

More information about the usage of this directory in [the documentation](https://nuxtjs.org/guide/assets#webpacked).
7 changes: 7 additions & 0 deletions design/components/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# COMPONENTS

**This directory is not required, you can delete it if you don't want to use it.**

The components directory contains your Vue.js Components.

_Nuxt.js doesn't supercharge these components._

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

You could have done us a favour and rebased this change out of the diff 😉

33 changes: 33 additions & 0 deletions design/components/SDCard.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
<template>
<div class="flex flex-row px-2 lg:flex-col">

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

You could have used semantic HTML here. E.g. <article>
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/article

<div class="flex mb-0 mr-8 lg:flex-col lg:items-center lg:mr-0 lg:mb-4">
<div class="w-24 h-24 bg-gray-800 rounded-full"></div>
</div>
<div>
<div class="flex flex-row mb-3 lg:flex-col lg:items-center lg:space-y-3">
<h3 class="font-bold uppercase">{{ title }}</h3>
</div>
<p class="mb-3">
Lorem, ipsum dolor sit amet consectetur adipisicing elit. Tenetur
aperiam officiis rerum assumenda obcaecati culpa quaerat optio.
</p>
<nuxt-link
to="#"
class="inline-block px-3 py-1 font-semibold text-white uppercase bg-gray-800 border-2 border-gray-800 hover:bg-transparent hover:text-gray-800"
>
MORE
</nuxt-link>
</div>
</div>
</template>
<script>
export default {
name: 'SDCard',
props: {
title: {
type: String,
required: true,
},
},
}
</script>
Loading