Giter VIP home page Giter VIP logo

omui's Introduction

OpenMined Web Monorepo

Welcome to the OpenMined web monorepo, the home of all of OpenMined's many websites. Below are some basic instructions for getting this repository running on your machine.

Support

If you're looking for support about the courses, please go the Courses Discussion Board. If you've found a bug, or have a suggestion for an improvement to the Courses site, or any of our websites, please file an issue here.

Contributing

We are currently only accepting bug fixes from our community at the moment. If you're interested in working on these sites regularly as part of a team, please DM @Patrick Cason on Slack with your resume and qualifications.

Local Setup

  1. Make sure that you have Node, NPM, and Yarn installed on your machine.

  2. Install NX, our monorepo management framework.

  3. From this point forward, you will run all commands in the root folder. Start by running yarn install to install all dependencies.

  4. Run one of the below commands, depending on what you're trying to do... note that the third word in the command corresponds to the app in question. For instance, yarn start courses will run the courses app, located at apps/courses.

Courses

The OpenMined Courses website where we host our educational material. The site is a React.js web application, running on a Firebase backend, Jest for testing, Cypress for end-to-end testing, and using Sanity.io as the content management system (CMS).

  • yarn start courses - Runs the courses site with hot reloading for development purposes.

  • yarn lint courses - Runs the linter for the courses site

  • yarn test courses - Runs the test suite for the courses site

  • yarn build courses - Builds the courses site

  • yarn build courses --prod - Builds a production version of the courses site

  • yarn analyze courses - Analyzes the file sizes and distribution of a built version of the courses site

Courses E2E Testing

The OpenMined Courses website uses Cypress for end-to-end-testing. You have access to the following commands:

  • yarn e2e courses-e2e - Runs all the end-to-end tests for the Courses website

  • yarn lint courses-e2e - Runs the linter for the courses end-to-end app

Firebase API

Firebase is the primary backend for all of OpenMined's websites. If you want to test any functions or security rules before pushing them live, you may do so using the emulator suite.

  • yarn test firebase-api - Runs all the tests for the our Firebase backend

Sanity CMS

Sanity is the primary CMS for all of OpenMined's websites. You must have a user account to change any actual values, however, if you want to run it on your machine, you have access to the following commands:

  • yarn start sanity-api - Runs the Sanity CMS with hot reloading for development purposes.

  • yarn lint sanity-api - Runs the linter for the Sanity CMS

  • yarn test sanity-api - Runs the test suite for the Sanity CMS

  • yarn build sanity-api - Builds the Sanity CMS

  • yarn build sanity-api --prod - Builds a production version of the Sanity CMS

  • yarn analyze sanity-api - Analyzes the file sizes and distribution of a built version of the Sanity CMS

omui's People

Contributors

cereallarceny avatar dependabot[bot] avatar monuelo avatar tcp avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

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

omui's Issues

Buttons

Button component

The button component has five different types of variants, all of which should be supported according to the Figma specifications. Use the base button (above the section) to build the variants on top of. The following is the variants list:

Button type variants

  • Default
  • Only icons

Size variants

  • XSmall (xs)
  • Small (sm)
  • Medium (md)
  • Large (lg)
  • Responsive (merge all)

Style variants

  • Solid gray
  • Solid primary
  • Outline
  • Ghost
  • Link

State variants

  • Normal
  • Hover
  • Disabled

Container variants

  • Round
  • Square

Checklist for rollout

  • All variants supported
  • Storybook component story
  • Accessible buttons
  • Automated tests for variants

Change color lightness when building palettes

Description
We need to modify the color builder to fix how lightning is calculated. It should take into account the base color and operate on that lightning setting instead of using fixed values.

Two colors are broken today -- lime and violet -- and we should use them to test out the fixed implementation.

Tests and corrections

  • Lime 500 → (HSL 120, 54, 43)
  • Lime 50 → (HSL 120, 54, 93)
  • Lime 900 → (HSL 120, 54, 03)
  • Lime All all the in between values will need to adjust to the ones above
  • Violet 500 → (HSL 280, 64, 43)
  • Violet 50 → (HSL 280, 64, 93)
  • Violet 900 → (HSL 280, 64, 03)
  • Violet All all the in between values will need to be adjusted based on the ones above

Add description to Lists (TSDoc)

Description
We need to add the following description to the List component.

Component that is used to represent independent lines of content.

Check all components on all screen sizes

Description

Check all components to ensure they work on all screen sizes. We already have a plugin which allows you to change the viewport of the storybook. Test all components and all variations of all components to ensure they work on all screen sizes.

Type of Test

  • Unit test (e.g. checking a loop, method, or function is working as intended)
  • Integration test (e.g. checking if a certain group or set of functionality is working as intended)
  • Regression test (e.g. checking if by adding or removing a module of code allows other systems to continue to function as intended)
  • Stress test (e.g. checking to see how well a system performs under various situations, including heavy usage)
  • Performance test (e.g. checking to see how efficient a system is as performing the intended task)
  • Other...

Expected Behavior

All components and their variations must behave properly and work well on all screen sizes.

Atoms

We want to create the first batch of atoms for OMUI based on the designs.

  • Colors
  • Gradients
  • Typography
  • Icons
  • Images
  • Avatars

Add description to Badge (TSDoc)

Description
We need to add the following description to the Badge component.

Badges are used to indicate categories, rank, or classifier.

Add description to Dividers (TSDoc)

Description
We need to add the following description to the Divider component.

Dividers are lines that fill their containers either vertically or horizontally. You can use the dividers below to help visually break your content or UI action areas.

Add description to Avatars (TSDoc)

Description
We need to add the following description to the Avatar component.

Avatars are used to condense a profile or persona into more of an icon impression. They come in 6 sizes and can have an alert indicator to show or hide.

Chromatic isn't working as intended

Description

Figure out Chromatic and ensure this is working as we intend it for both pushing and PR’s.

How to Reproduce

  1. Modify a component
  2. Submit a pull request
  3. Review changes on https://www.chromatic.com/
  4. See that tests aren't passing

Expected Behavior

The check statuses of reviewed pull requests in chromatic should pass or fail, and not pending

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.