import Page from '../components/Page'; import withData from '../lib/withData'; import styled from 'styled-components'; const DiagramStyles = styled.div` display: grid; grid-template-columns: repeat(8, 1fr); grid-column-gap: 20px; h1 { grid-column: 1 / -1; grid-row: 1; } ul { margin: 0; padding: 0; list-style: none; li { border-bottom: 1px solid rgba(0, 0, 0, 0.2); } } h2 { text-align: center; margin: 0; background: black; color: white; width: calc(40px + 100%); transform: translateX(-20px); } span.for { font-size: 12px; text-align: center; margin-bottom: 2rem; display: block; } .slat { background: #f7f7f7; padding: 20px; min-height: 500px; grid-column: span 2; grid-row: 4; line-height: 1.7; } .location { grid-column: span 4; background: red; padding: 5px; grid-row: 2; text-align: center; color: white; text-transform: uppercase; } .arrow { font-size: 30px; line-height: 1; transform: translateX(-10px) translateX(-50%); text-align: center; grid-row: 3; margin-bottom: -100%; background: white; height: 40px; } .arrow1 { grid-column: 3; } .arrow2 { grid-column: 5; } .arrow3 { grid-column: 7; } img { width: 100%; height: 125px; object-fit: contain; } .slat2 img { filter: invert(100%); } .slat4 img { mix-blend-mode: multiply; } `; const Diagram = () => (

The Pieces of our Application

Frontend Backend
React.js

React.js

For Building The Interface along with:
React.js

Apollo Client

For Data Management
  • Performing GraphQL Mutations
  • Fetching GraphQL Queries
  • Caching GraphQL Data
  • Managing Local State
  • Error and Loading UI States
  • Apollo-client replaces the need for redux + data fetching libraries
React.js

GraphQL Yoga

An Express GraphQL Server For:
  • Implementing Query and Mutation{' '} Resolvers
  • Custom Server Side Logic
  • Charging Credit Cards
  • Sending Email
  • Performing Authentication
  • Checking Permissions
React.js

Prisma

A GraphQL Database Interface
  • Provides a set of GraphQL CRUD APIs for our (currently MySQL){' '} Database
  • Schema Definition
  • Data Relationships
  • Queried Directly from our Yoga Server
  • Self-hosted or as-a-service
); const DiagramPage = () => ( ); export default withData(DiagramPage);