Giter Site home page Giter Site logo

hobbes-detroit's People

Contributors

austingreen avatar benaiah avatar charisewalraven avatar dbertella avatar ekoeryanto avatar erquhart avatar floydnoel avatar flppv avatar futuregerald avatar gl2748 avatar hennessyevan avatar kalinchernev avatar krisaoe avatar kyleamathews avatar lucasvocos avatar marcobiedermann avatar missmatsuko avatar neo avatar omrllm avatar phillc avatar rdela avatar renovate-bot avatar renovate[bot] avatar sakit0 avatar sam-hobbes avatar spences10 avatar talves avatar terrierscript avatar tmikeschu avatar zoltanveres avatar

hobbes-detroit's Issues

Footer component.

Footer component per figma design.
Client login, triggers login panel to open.
Other links, navigate user to relevant pages as generated by the CMS.
Screen Shot 2019-08-20 at 5 40 22 PM

Add SVG field to Project.

Each project should have an 'main SVG' file-field type that accepts only an SVG image. It's used to represent the project on the front page 'work index' grid.

Create Test content.

In the CMS create Projects so that front end development can happen using real data. Ideally once these projects are created, they can live on a branch that can be pulled in whenever a new feature is being developed, giving a stable and consistent set of Projects to develop against.

  • Featured project.
  • Protected project.
  • Regular Project.

Ensure all CMS fields are generic file upload fields.

All media fields within the Netlify CMS config.yml definition should be agnostic of the file type being uploaded. With #26, we will instead discover what type a file is at Build time, with that data being available for the front end, and allowing it to decide how they are to be rendered.

Project Index Grid

Render a grid of Projects.

  • Render the project's main image - a URL that references an SVG hosted by uploadcare.
  • background to the SVG is the color of the project's primary color field.
  • Protected projects have a 'padlock' icon.
  • Project Title displays under the svg.

Uploadcare transformer plugin for gatsby.

Write a plugin that looks for Uploadcare URLs in markdown files generated by the CMS, and fetches the metadata for the files / assets that these URLs refer to. The plugin should save this metadata as GraphQL nodes at build time. This will let the front end know how to render the asset at the uploadcare URL, e.g. 'Is this a url for an image? A JSON file? an SVG?.'

Hobbes Logo component.

Screen Shot 2019-08-20 at 4 35 21 PM

Screen Shot 2019-08-20 at 4 42 07 PM

Render the hobbes logo SVG to the page. At a push expose some of the SVG attributes as props, so that the SVG can be rendered at different sizes, different fills and different strokes.

Icon component

Sizes: small, medium, large

Color: primary, secondary, tertiary, ...

variant: solid, outline

Front page hero Carousel component.

Given an array of Uploadcare Urls, referring to bodymovin .json files, Display a carousel of these animations.
Carousel should have a forward and back control, and a counter to indicate which slide number is currently being viewed. Clicking on the slide should navigate the user to project page for that slide.

  • Forward and back controls.
  • Current slide number, and total slide count display.
  • Current slide's project title display.
  • Click to navigate to Project page.
  • On Click front page background color should become the 'projectColor' color of the currently displayed featured project.

Screen Shot 2019-08-20 at 4 31 11 PM

Studio Info Component.

Display the relevant info from the CMS, including:

  • Studio Title.
  • Studio Blurb.
  • Studio contact, address, tel, email.
  • Social media links.

Screen Shot 2019-08-20 at 5 37 50 PM

Nav Bar component.

Render a nav bar that triggers a scroll to relevant anchortag on the front page, or navigates the user to the front page.

  • When Nav appears on front page Scroll to Studio section.
  • When Nav appears on front page Scroll to Work / Project index section.
  • When Nav appears on Project page, clicking Studio will scroll to the bottom of the current project page.
  • When Nav appears on Project page, clicking Work will navigate to the front page #Work index anchor tag.
  • Nav Bar is a fixed-position element that remains in the upper right of the screen as the user scrolls.

Project gallery component.

  • Display an array of media items('Slides') in a 'carousel' with forward and back navigation.
  • Next slide visible to the right hand side.

Write a source plugin for uploadcare nodes.

The netlify CMS is configured to manage assets through the service, 'uploadcare'. These uploads appear in the markdown that is parsed by gatsby as URLs. We will need to know about what assets are behind these URLS, so we need to fetch info about these assets at build time, this will let us know how to render the asset at a given url.
To do this write a gatsby source plugin, that parses extant nodes for uploadcare urls, and then queries the uploadcare api for the UUID in the URL, we should store the response as a gatsby-node that can be queried by graphql.

Add storybook

Figure out low effort way to turn stories into tests

Ideally - Project Should handle empty modules from CMS so that the build succeeds when no modules are added to a project.

2:47:47 PM: error #95313 TypeError: Cannot read property 'map' of null
2:47:47 PM: Building static HTML failed for path "/project/google_clocks/"
2:47:47 PM: See our docs page for more info on this error: https://gatsby.dev/debug-html
2:47:47 PM:   497 |       {helmet || ""}
2:47:47 PM:   498 |       <ModulesContainer>
2:47:47 PM: > 499 |         {modules.map((module, i) => (
2:47:47 PM:       |                  ^
2:47:47 PM:   500 |           <CMSModule
2:47:47 PM:   501 |             {...module}
2:47:47 PM:   502 |             key={
2:47:47 PM: 
2:47:47 PM:   WebpackError: TypeError: Cannot read property 'map' of null
2:47:47 PM:   
2:47:47 PM:   - index.tsx:499 Project
2:47:47 PM:     src/components/Project/index.tsx:499:18
2:47:47 PM:   
2:47:47 PM: 
2:47:47 PM: npm
2:47:47 PM:  ERR! code ELIFECYCLE

Create Auth flow for users to confirm their accounts, create passwords and reset passwords.

When a user clicks on a link in an email, to either confirm their email address and create a password, or to reset a password. We need to make sure the correct form is presented to them when they navigate to the site. And that netlify handles the form submission correctly. I think there has been a regression in the implementation of the netlify identity widget that we're using:
Basic Wrapper: https://github.com/sw-yx/gatsby-plugin-netlify-identity
and
https://github.com/sw-yx/react-netlify-identity-widget

It might be the case of simply checking for

const identity = useIdentityContext()

And if identity is present, but there is no username, or some other indication that this is not a fully fledged user, show the netlify modal, and letting that do the password creation and reset link.
e.g.

import IdentityModal, { useIdentityContext } from "react-netlify-identity-widget"
const identity = useIdentityContext()
...
{identity && IdentityModal}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.