Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Initial working prototype of CWA (client web app) #2

Open
9 of 13 tasks
victorkane opened this issue Aug 30, 2018 · 1 comment
Open
9 of 13 tasks

Initial working prototype of CWA (client web app) #2

victorkane opened this issue Aug 30, 2018 · 1 comment
Assignees

Comments

@victorkane
Copy link
Contributor

victorkane commented Aug 30, 2018

Content modeling

Alternative 1: "Hard-coded" fully functional prototype instead of a time-consuming mock-up

One first make a hard-coded content driven prototype, with prototype level content placed in the Vuex store in order to then properly hydrate pages and components. This, in place of a mock-up, which is just a waste of time when we can so quickly prototype with Nuxt.js/Vue.js/Vuetify.js

Once this is done, the content model can be abstracted out of the fully functional prototype using UML design tools, in function of the requirements, stakeholder needs and marketing hypotheses in function of the current business model. Then the SCS and CMS implement the content model, and replace the hard coded hydration of components and pages in the Vuex store (app state).

Alternative 2: Create a scaffolded CWA without content, perform content model design, then implement and test the content model completely in the CMS and SCS

When there is a high degree of familiarity with the application domain, the content modeling may be done via design tools (i.e. UML diagrams), and content modeling can proceed directly with the CMS and SCS first.

This is what we have chosen to do here.

Initial version of CWA (following Alternative 2)

The basic objectives of the DurableDrupal Content Migration Rescue website are to:

  • Explain the goals and the characteristics of the content migration rescue process
  • Thoroughly document the building of the DDCMR website itself.
  • Thoroughly document the initial case study (the migration of Drupal 6 based AWebFactory.com to a full stack JavaScript decoupled architecture).
  • In addition to the case studies, include articles, books, and a blog in order to share resources.

CWA Tasks:

  • Scaffold a Nuxt.js standard Universal App with Vuetify.js Material Design Component Framework.
  • Layout and styling
  • Scaffold the URI routable (though non-Gutenberg) "pages".
    • Home
    • What? Why?
    • Case studies
    • The books
    • The blog
    • Steps you can take (towards your own goals as well as to support and give back to the project)
  • Upsert content to the SCS with the CMS, hydrate CWA pages and components from the SCS (see below)
  • As required during this implementation (according to whether a hard-coded prototype will be created or not) set up the Vuex Store (application wide state) with prototype content (hard-coded) in order to reactively hydrate the components.
  • Populate these routable display units as required with reusable components and hydrate app-wide.
  • Complete initial content
    - [ ] Initial case study: AWebFactory.com
    - [ ] AWebFactory.com: Step one

Once these tasks are completed, a staging instance can be set up, after which we will be able to proceed to deployment.

@victorkane victorkane self-assigned this Aug 31, 2018
victorkane added a commit that referenced this issue Aug 31, 2018
…sal App with Vuetify.js Material Design Component Framework
victorkane added a commit that referenced this issue Aug 31, 2018
victorkane added a commit that referenced this issue Aug 31, 2018
@victorkane
Copy link
Contributor Author

victorkane commented Sep 2, 2018

Initial top-level and sub-level upsert, hydration and rendering

Upsert content to the SCS with the CMS, hydrate CWA pages and components from the SCS and render

  • Now that the initial, "hard-coded" prototype is completed, we have a "live universe" out of which we can safely abstract the content model without murdering real needs. Abstract the content model in diagram mode based on AWebFactory building blocks (see Initial Implementation of SCS (structured content server) #1 for link to diagrams)
    • Base content attributes
    • Domain content attributes (motivated by the business domain of this app)
    • App content types
  • Build the SCS models and API
  • Upload sample content with the CMS tailored to the SCS models and API
    • gray-matter based "Jekyll" style yaml for basic content types
    • straight up yaml for container content types
  • Add support for markdown content files, configure
  • For each top level content page (see atomic commits below)
    - scs
    - model and api
    - api can perform necessary select or population filtering for minimum set of data
    - cms
    - make sure initial content has been published
    - make sure each content item has the appropriate tags
    - cwa
    - implement server-side loading in vuex store (nuxtServerInit)
    - set up top level hydration from store
    - rendering
    - set up properly routed dynamic sub-pages

Steps to set up dynamic sub-pages

  • Create a subdir (usually _slug)
  • In the file _slug/index.vue
    • Grab the item from the SCS API on the basis of the slug param
    • Render the attributes or else send the grabbed content item to a component as prop
    • Add a "back" button

victorkane added a commit that referenced this issue Sep 3, 2018
…native 2, with design (uml) and direct imeplementation of scs and cms before continuing further with the cwa
victorkane added a commit that referenced this issue Sep 13, 2018
victorkane added a commit that referenced this issue Sep 18, 2018
victorkane added a commit that referenced this issue Sep 18, 2018
…, top level page section hydration of associated article and list of case studies, rendering of associated article
victorkane added a commit that referenced this issue Sep 18, 2018
…luding immediate individual detailed case-study sub-pages
victorkane added a commit that referenced this issue Sep 30, 2018
…udy with links, together with sub-level full article rendering for these articles
victorkane added a commit that referenced this issue Oct 16, 2018
…evel page section hydration of associated article and list of books, rendering of associated books tagged article plus list of books including correct routing paths
victorkane added a commit that referenced this issue Oct 29, 2018
victorkane added a commit that referenced this issue Oct 29, 2018
victorkane added a commit that referenced this issue Oct 29, 2018
victorkane added a commit that referenced this issue Oct 31, 2018
blog posts can be loaded in descending order by date of publication in
store query
victorkane added a commit that referenced this issue Oct 31, 2018
… store

hydration, plus sub-page full detail hydration and rendering based on slug link
victorkane added a commit that referenced this issue Nov 4, 2018
listing with article on left hand site, author teaser on right with link
to full blog, article, etc. author page
victorkane added a commit that referenced this issue Nov 4, 2018
… 45-75 characters per body line for blog post listings.
victorkane added a commit that referenced this issue Nov 4, 2018
… 45-75 characters per body line for blog post detail full page
victorkane added a commit that referenced this issue Nov 4, 2018
…or for all blog posts, instead of multiple authors on a per article basis
victorkane added a commit that referenced this issue Nov 5, 2018
victorkane added a commit that referenced this issue Nov 9, 2018
…tion of steps you can take articles and their upsert to scs, vuex store server side hydration of step articles and step topic taglist, top level (non-children) section hydration and rendering in expansion panel according to step tag keys. Taglist support involves scs (articles by step vocabname aggregation) and cwa work on listing section level
victorkane added a commit that referenced this issue Nov 11, 2018
…can take listing by category section page.
victorkane added a commit that referenced this issue Nov 11, 2018
victorkane added a commit that referenced this issue Nov 12, 2018
victorkane added a commit that referenced this issue Nov 23, 2018
…e planned content. Also remove an unused environment variable from the home page file.
victorkane added a commit that referenced this issue Nov 29, 2018
… the top level the published guides/case studies with the store's `loadedCaseStudies` instead of querying from the back end on both pages with Nuxt.js AsyncData server-side function. Search for hard-coded items functionally.
victorkane added a commit that referenced this issue Nov 29, 2018
…e the top level the published guides/case studies with the store's `loadedCaseStudies` instead of querying from the back end on both pages with Nuxt.js AsyncData server-side function. In steps-you-can-take search for hard-coded items functionally.
victorkane added a commit that referenced this issue Nov 29, 2018
…se Studies you can follow step-by-step right now row
victorkane added a commit that referenced this issue Nov 29, 2018
…n guides you can follow blocks, depending on value of metaData.published boolean
victorkane added a commit that referenced this issue Nov 29, 2018
…on steps, depending on value of metaData.published boolean
victorkane added a commit that referenced this issue Nov 30, 2018
victorkane added a commit that referenced this issue Dec 4, 2018
…non-published to listing of steps (full case studies detail component)
victorkane added a commit that referenced this issue Dec 4, 2018
…ickable on listing on right according to published attribute
victorkane added a commit that referenced this issue Dec 7, 2018
victorkane added a commit that referenced this issue Dec 14, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant