Giter Site home page Giter Site logo

overture-stack / website Goto Github PK

View Code? Open in Web Editor NEW
1.0 26.0 2.0 65.99 MB

Overture.bio website, based on Gatsby static site generator

License: GNU Affero General Public License v3.0

JavaScript 70.16% SCSS 29.84%
hacktoberfest gatsby overture genomics genomic-data-science genomic-data

website's Introduction

Overture.bio

Additional READMEs

Installation

  • Node 16 NPM 8
  • Gatsby CLI: npm install -g [email protected]
  • Netlify CLI: npm install -g netlify-cli
  • npm install
  • Setup Netlify deployment: netlify link and choose 'Use current git remote origin'.

Troubleshooting

Overture.bio requires NPM v^8.3.0, to ensure all dependencies are installed correctly

# If you need to update your NPM version first, use the following command:
  npm i -g npm

Local development

npm start

Deployment

Check your QA builds locally! (See Environments)

  • Deploy to a Netlify draft URL for QA: npm run deploy
  • Deploy to https://overture.bio: Merge a PR into the main branch.

Environments

Gatsby has two environments: development (runs a dev server with hot reloading) and production (creates a static build in the ~/public folder).

Gatsby development and production builds are significantly different, so consider running npm run qa (prod build) occasionally to check for issues, and before deploying to QA.

Local environments

  • Development
    • Feature flags ON
    • Command: npm run dev
    • Secrets and settings file: .env.development
  • QA (check your build before creating a Netlify link for QA)
    • Feature flags ON
    • Command: npm run qa
    • Secrets file: .env.production (overridden by netlify.toml) (ignored by git)
    • Settings file: netlify.toml, branch-deploy context
  • Production (check your build before deploying to https://overture.bio)
    • Feature flags OFF
    • Command: npm run prod
    • Secrets file: .env.production (overridden by netlify.toml) (ignored by git)
    • Settings file: netlify.toml, production & deploy-preview contexts

Netlify contexts

These environments only apply when deploying to Netlify. The non-secret settings are stored in netlify.toml.

  • production: The live site at https://overture.bio, deployed automatically by Netlify when a PR is merged into the main branch.
  • deploy-preview: Netlify deploys that are automatically generated when there is a PR created/updated on the main branch.
  • branch-deploy: Other branches and PRs, deployed manually.

Feature flags & environment variables

  • Feature flags in Gatsby must be environment variables.
  • Environment variables accessed in client-side code must be prefixed with GATSBY_.
  • Example: Show something in development and hide it in production:
    • FLAG="true" in .env.development and Netlify branch-deploy context in netlify.toml.
    • FLAG="false" in Netlify production and deploy-preview contexts in netlify.toml.

Links

website's People

Contributors

alekspejovic avatar alex-wilmer avatar andricdu avatar b-f-chan avatar blabadi avatar cheapsteak avatar ciaranschutte avatar daniel-cy-lu avatar fgerthoffert avatar hlminh2000 avatar jephuff avatar joneubank avatar justincorrigible avatar kcullion avatar mitchellshiell avatar rosibaj avatar rtisma avatar samrichca avatar teesloane avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

website's Issues

slackin broken

Current implementation of slackin is broken. Needs a new approach or refactor to get going again.

Designs: case study, DMS page, credits page

Extra designs to do:

  • Case study updates: add ICGC ARGO, VirusSeq, update HCMI screenshots: implementation summed up here: #173
  • Acknowledgement page for Canarie and remove logo on landing page. Add credits link in footer?
  • Design a product page for DMS and work in callouts to it from the homepage, product landing page, footer, megamenu

Deployment Tasks for Doc Site

These deployment tasks need to be done prior to doc site deployment on Mar 31:

  1. Algolia search indexing:
    1. Check that this runs when the site is built/deployed on Netlify
    2. Check that Algolia keys are added in Netlify
  2. Feature flag removal
    1. Docs template
    2. Docs landing page
    3. Navbar (megamenu)
    4. Layout - remove feature flag around , keep isDocs condition
    5. Env.example & netlify.toml
    6. Footer menu

Gatsby v5: investigation

  • Investigate updating major dependencies
    • Gatsby 5
    • React & React-DOM 18
    • Node 18
    • Other dependencies
  • What upgrades are involved?
  • What are the breaking changes?
  • Are all of our dependencies compatible & still actively maintained? Do we need to replace any of them?
  • What's the level of effort?

Create reusable components

Overture.bio has a lot of code duplication:

  • buttons: especially Github buttons and the pink chevron links
  • pages: the Products subpages could be a reusable template made of reusable components rather than hard-coded HTML

Refactoring into reusable components would be helpful for code readability & maintenance.

Update All Doc Site Links

Update all missing doc site links prior to deployment on Mar 31:

Add version to footer

Detailed Description

Add version to footer so we can visibly see at glance which version of site is in prod

Possible Implementation

grab version from package.json and put it in footer

Move Sapien Section to Top of OncoJS Page on Overture Website

Move the Sapien section in the OncoJS page on the Overture website to the top, before Lolliplot

This is to make Sapien more prominent

Maintain the alternating white/black backgrounds for each section, starting with white (so now Sapein will be white, followed by Lolliplot gray, etc)

image.png

Overture Project progress bar graphic

Design + image production for a vertical and horizontal progress bar - one to go on the Overture project template and one to go on the github readme section.

Documentation: Page jumping when clicking on links

If you click on a link from the content section (like "submitted data" from here: https://604be8b3648d6c08d09ccbd3--overture.netlify.app/documentation/song/installation/configuration/schema/

there's a weird page jump, as if the left sidebar isn't loading or caching.

This happens also if you click on an external link and use the browser back button, like clicking on JSON Schema link here: https://604be8b3648d6c08d09ccbd3--overture.netlify.app/documentation/song/user-guide/schema/

Feature Request: API Documenation from Swagger in Docs Site

Generally good documenation sites have an api guide.

We have swagger docs for our API's that look and function great: https://song.rdpc-qa.cancercollaboratory.org/swagger-ui.htmlm but these are all custom deployments and not publically available.

We need to make this style of API documentation available. For each piece of software,

  • Have an API section of the documentation
  • Read/translate a copy of the Swagger JSON to explore the API similar to swagger. The JSON can be generated outside of a deployment to be used by the documentation portion of the website.
  • When we want to highlight a specific request, have a module to view the enspoin/response, similar to:
    https://stripe.com/docs/api/customers/retrieve
    image

Investigate Solution for Gatsby Pre-Fetch/Hard Refresh Issue

Internal links are currently standard HTML links which results in a hard refresh every time you switch pages. Also we can’t maintain the state of the left-hand navigation on Docs pages when you navigate between pages.

They were Gatsby/React links, but in some cases these links sent us to a blank page (i.e. when clicking on the megamenu or search results). This is a new issue likely stemming from adding significantly more content to the site. So I made them into HTML links as a hotfix.

Gatsby normally pre-fetches pages linked to the current page, but it can’t do that with the megamenu or search results because they’re hidden from view by default. It can also pre-fetch when you hover over a link, but we’re probably running into a timing issue now due to the larger amount of data. It can’t pre-fetch fast enough so it loads a blank page.

Netlify link where this is happening: https://60647eb7469043007cabd856--overture.netlify.app/documentation/song/installation/installation/

I also got error 310 on another attempt.
https://reactjs.org/docs/error-decoder.html/?invariant=300
https://reactjs.org/docs/error-decoder.html/?invariant=310

gatsbyjs/gatsby#4779
gatsbyjs/gatsby#24398

Potential solutions, all of these need investigation:

  • Force a refresh (the official Gatsby site does this)
  • Enhance server side rendering
  • Add a loader of some sort, when the app tries to update the route, wait for the data to fetch

Add colour variables to SVGs

SVGs on Overture.bio (i.e. in the Icon component) currently have hard-coded colour hex codes. Using CSS variables to define the colours (with a fallback for Edge) would ensure better visual consistency and reduce the level of effort for future maintenance.

Investigate accessibility

Determine scope of work and technical approach for making Overture.bio compliant with WCAG AA guidelines.

[UI] Case Study page: add new projects, style fix, make case studies linkable

Goal

Michelle has asked us to add VirusSeq to the overture.bio case studies page so she can tweet about it. While we're in there let's do some other updates:

Ask Kim for the folder of new screenshots.

Add new projects

Content is a WIP but will be updated in: https://zpl.io/a3J7yQN

Update existing project

  • Update HCMI with new screenshots
  • Minor content change:
    Third gallery bullet point, change to Entry, validation, and bulk upload of clinical and genomic data as well as an editable data dictionary.
    image

Styling fix

  • Fix the styling for the gallery - the text is illegible (check out the zeplin link for the styles).
    For the hover state you can change the font to color: #0b75a2;
    image

Add ids in the url

  • Michelle wants to tweet about the VirusSeq case study - so we'll need to add an id to the url. i.e. add anchors down the page so each project can be linked to externally. Also, when the user clicks on the logos in the case study nav bar, these urls should reflect what they clicked.
    So the anchors would be:
  • ICGC-ARGO
  • Virusseq
  • Kids-First
  • ICGC-25K
  • GDC
  • Cancer-Genome-Collaboratory
  • HCMI
    image

design overture maintenance page

when a server needs to be brought down for service, we need to redirect the user to an error or maintenance page that returns a 503 Service Unavailable.

The purpose of this task is just to design the look and put the correct text

Accessibility

Placeholder for accessibility epic.


Known accessibility issues based on Ontario.ca's How to make websites accessible

(incomplete)

Level A

  • Images: make sure images have alt attributes or other text alternatives
    • Add alt prop to Icon component, and add alt text to non-decorative icons.
    • Check other images
  • "Success Criterion 1.3.1 Info and relationships" & "Success Criterion 4.1.2 Name, role, value": Use ARIA attributes and semantic HTML
  • "Success Criterion 1.3.2 Meaningful sequence ": Make sure keyboard tab order & reading order (i.e. for screenreaders) is left to right, top to bottom.
  • "Success Criterion 2.1.1 Keyboard" & "Success Criterion 2.4.3 Focus order": menus need to be changed to use keyboard input and have proper tab order.
  • "Success Criterion 2.4.1 Bypass blocks": Add a "skip to main content" link, use ARIA landmarks to identify regions of a page (sidebars, menus, footer, header, etc).
  • "Success Criterion 2.4.2 Page titled": Page titles on overture.bio (i.e. at the top of the browser window) currently don't reflect their page contents.
  • "Success Criterion 2.4.4 Link purpose (in context)": Make sure link destinations are clear from context
  • "Success Criterion 3.2.2 On input" & "Guideline 3.3: Input assistance ": The search input may be failing these criteria.
  • To my knowledge, there's no video, audio, or gifs on this site.

Level AA

  • "Success Criterion 1.4.3 Contrast (Minimum)": We opened a ticket for this already.
  • "Success Criterion 1.4.4 Resize text": I believe this is handled by making the site responsive. When I increase my text size, the page gets re-arranged into a mobile layout as the text gets larger.
  • "Success Criterion 2.4.5 Multiple ways": We should add a sitemap.xml and a sitemap page, since we don't have site-wide search and sitemaps are useful for multiple things (Docs search, Google indexing, etc).
  • "Success Criterion 2.4.6 Headings and labels": Make sure things are labelled correctly.
  • "Success Criterion 2.4.7 Focus visible": Focus is hidden or hard to see across the site right now.
  • "Success Criterion 3.2.4 Consistent identification": Ensure things are identified consistently across the site. Should be covered by meeting other criteria listed in this issue.
  • "Success Criterion 3.3.3 Error suggestion": Search errors i.e. 0 results.

General

Problem areas:

  • Search
  • Navigation
  • Images
  • Semantic HTML & ARIA attributes
  • Colour contrast

The Ontario.ca link may not be sufficient for addressing these issues in a React/Gatsby application. Need to do more investigation on implementation details: how to make an accessible search input in React, how to make a sitemap in Gatsby, etc.

Clicking on a tab should trigger a scroll position change, which then triggers the waypoint to activate

Sorry to have to have you clean up after me

Currently the onSelect for the tabs directly sets the active tab
Waypoints also set the active tab

This results in confusing behaviour. After clicking a tab, the content changes, but the scroll position does not, so scrolling somewhere would cause the user to activate a tab that doesn't make sense

Switching the onSelect for tabs to scroll to the corresponding Waypoint element for that tab would solve this problem

When a dedicated component page does not exist on Overture.bio, redirect to the Github repo

Adding a small icon to indicate the user will be redirected to GitHub.

Enrolment => https://github.com/overture-stack/enrolment
Usage => https://github.com/CancerCollaboratory/billing
Billing => https://github.com/CancerCollaboratory/billing
Score => https://github.com/overture-stack/score
Jupyter => https://github.com/overture-stack/Jupyter
OncoJS => https://github.com/oncojs
Ego => https://github.com/overture-stack/ego
Persona => https://github.com/overture-stack/persona

Those updates should be done in the middle sections
screen shot 2018-01-11 at 3 17 05 pm

And the footer:
screen shot 2018-01-11 at 3 17 36 pm

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.