Giter Club home page Giter Club logo

front-end's Introduction

OpenCollective

Operation Code is an open source community dedicated to getting military veterans coding, founded by David Molina, and maintained by over a dozen software developers with the support and involvement of the startup community.

Interested in frontend web development? Check out our React repo
Interested in backend web development? Check out our Rails repo
Interested in developing chatbots? Check out our Ruby repo

Releasing the source code for this project is meant to empower military veterans and all developers everywhere to contribute their ideas, energy and time to help close the nation's technical talent shortage with American patriots trained in modern software development. What could be better than reducing veterans unemployment with our very own?

Learn more at: https://www.operationcode.org

Donate securely at: https://www.operationcode.org/donate

Questions? Get in touch: [email protected]

Table of contents

About

Veteran-founded and led, Operation Code is on a mission to get more military veterans coding!

  • This repo no longer contains any code. It now serves as a central point to manage tasks that are either cross project or not having to do with code.
  • OperationCode.org is made up of two apps. A javascript/react app that displays content and a rails backend that handles serving and processing data.
  • Source code Everything we do is open source.
  • Our roadmap gives a high level overview of where Operation Code is headed.

Contributing

Ensure you review our Code of Conduct as well.

Check out our Start Here repo for more information on all of our projects.

Community

Get updates on Operation Code's development.

Become a backer

Become a sponsor

front-end's People

Contributors

allenanthes avatar angtlin avatar calincionca35 avatar cbituin avatar chrisgalvan avatar chrismgonzalez avatar chynh avatar clsoar avatar danielasannino avatar dependabot-preview[bot] avatar dependabot[bot] avatar dirtyredz avatar greenkeeper[bot] avatar greenkeeperio-bot avatar jfie5 avatar jmayergit avatar johngoure avatar juliantrueflynn avatar kylemh avatar lambk avatar levibutcher avatar manthonyg avatar markchernov avatar mergify[bot] avatar onprem avatar petereckiii avatar recondesigns avatar sethbergman avatar subhajit20 avatar sumitparakh avatar

Stargazers

 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  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  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

front-end's Issues

Design: Page for /employers

Feature

Similar to a product demo, an employers demo will be a landing for companies, organizations and government agencies that want to know more about hiring our military veterans, spouses and military family members.

Why is this feature being added?

This feature enables employers to quickly and seamlessly learn more about our organization and determine whether hiring one of our members makes sense. The value add is that CEOs, C-level and hiring managers don't have to wait to get in touch, they can have all the data at their fingertips at an instance and make an informed decision internally before reaching out. We want to limit the warming period as much as possible. We want employers to know the value add before reaching out.

What should your feature do?

  • The landing (or popup) will ask for name, title, company, email and phone number to request more information. This data can populate back into our Airtable where the CEO and/or Chief of Staff can make contact and answer their questions and next steps.
  • The automatic email response will send the recipient our short deck, and a link to a visualization graph of our membership, including (1) total number in our community (via Slack), (2) geographic location (via zip code), (3) military branch, (4) number of employed, (5) number underemployed/unemployed and actively looking for a software developer role, and (6) programming languages.
  • Internally, we should be able to update this and automate as much as possible. Internally, we should have a special code to access the visualization graph (or make it open) to brief folks when we're giving a talk or in a meeting.

Reimplement /press page

Feature

Why is this feature being added?

https://operationcode.org/press exists and it needs to exist in the new code base as well.

What should your feature do?

  • Implement the page via pages/press.js
  • See live source code. Feel free to copy-paste a lot.
  • Refactor as required to match our new standards (linting, using components where possible, etc.)
  • Add new content not on site! A list of news articles under a section titled "In The News". Put every article listed in these issues in the list: one, two, and three.

Static PR app builds do not showcase our custom 404 component

Bug Report

What is the current behavior?

When going to a non-existent route on a preview now link (example) Next's default error component shows up.

What is the expected behavior?

You should see our tank flipping gif on non-existent routes

More Info

I opened a PR and this issues is blocked by a pushed update to Next's next version (7). Once Next bumps their major version and we upgrade, we'll be good to.

An in-range update of babel-loader is breaking the build 🚨

The dependency babel-loader was updated from 8.0.2 to 8.0.3.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

babel-loader is a direct dependency of this project, and it is very likely causing it to break. If other packages depend on yours, this update is probably also breaking those in turn.

Status Details
  • deployment/now: Deployment has completed (Details).
  • continuous-integration/travis-ci/push: The Travis CI build failed (Details).

Release Notes for v8.0.3

Features

  • #687 - Add customize option

Bugs

  • #685 - Also pass the caller option to loadPartialConfig

Docs

  • #681 - Update the README links to use the new options docs
  • #683 - Add .mjs to the examples

Internal

Some dev dependency updates and CI tweaks.

Commits

The new version differs by 12 commits.

  • 800181b 8.0.3
  • 7d8500c Also pass the caller option to loadPartialConfig (#685)
  • a507914 Expose the full loader options to all overrides hooks.
  • ac0c869 Tweak the customize implementation to be a bit more strict.
  • 9b70a02 Add overrides option
  • c8d7a72 Add .mjs to the examples (#683)
  • 4619993 bable options link update (#681)
  • 8f240b4 Use node 10 on appveyor
  • 7e4189e Change appveyor to use babel account
  • eeaee46 Update devDeps to use most recent versions, and fix tests.
  • 3e5fb5e chore(package): update lockfile
  • 2b8e479 chore(package): update eslint-config-babel to version 8.0.0

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

Get test coverage to 40%

Beginner Friendly!

There are plenty of examples of unit tests with which you can nearly copy-paste 😄

You can check your progress locally via yarn jest --coverage and looking at the top row.

Feature

Why is this feature being added?

Trying to get test coverage up to 90% incrementally. Currently at 31%. Let's move to 40%+ and I'll keep making tickets in 10% increments.

What should your feature do?

Add unit tests that move coverage to 40% or higher according to coveralls

Storybook throws error related to casing in YouTubeVideo component in Windows 10

Bug Report

Error when starting up Storybook on Windows

What is the current behavior?

Storybook is unable to render correctly due to an error in the YouTubeVideo component

What is the expected behavior?

Correct rendering

What steps did you take to get this behavior?

yarn storybook

Additional Info

Kyle is working to resolve the issue before opening up to a broader contributor base.

Operating System

Windows 10 64-bit

Browser

Chrome 67

Screenshots

storybook error

Jest indicated that certain test suites are failing to run

Bug Report

What is the current behavior?

Jest is throwing errors that test suites are failing to run in certain files.

What is the expected behavior?

Jest should not throw errors in test.js files.

What steps did you take to get this behavior?

Ran the test runner yarn test

Additional Info

Operating System

Windows 10 Pro Version 1803 OS build 17134.285

Browser

Screenshots

jest error

Configure Jest for unit tests and snapshots

Feature

Why is this feature being added?

  • Required for unit tests
  • Required for Storyshots

What should your feature do?

  • Configure Jest such that Storyshots and unit tests are readily available.

Make stories for Form components

Feature

Why is this feature being added?

  • Part of the requirements for this project's completion is that every reusable component have a Storybook "story" on par with the quality present in common/components/Button/__stories__/Button.stories.js

    • Please let me know if I need to define this further
       
  • Every Form component is lacking such a Story

What will resolve this issue?

  • A pull request that includes a story for every component listed under common/components/Form/** in the same style and quality as other stories in the common/components folder
  • The line that says "Make stories for form components" should be removed from todo.txt

Document installation steps within README

Feature

Why is this feature being added?

Installation steps are incorrect.

What should your feature do?

Show the all the steps necessary to be able to install, run, and build the application and the Storybook instance.

Get Now PR Integration Working Without Docker

Improvement

What's the problem?

I’m able to get it to work with the advertised example Docker method, but when attempting to build via Travis, I end up with a directory listing of all of the repo’s contents statically hosted. 😵

It seems like if I have a now.json, as the GitHub integration requires, now acts immediately, before Travis can actually do the build. 😢

Feel free to laugh at my struggle bus here:

#45

and here

#47

😓

Why does this get improve upon the problem?

This repository is supposed to be for new developers. The more CI config I can obfuscate or place into one file, the better. Having Docker in the mix with Travis when otherwise unnecessary will just add to the intimidation factor of the repo.

Create /dashboard page

Feature

Blocked

#174

Why is this feature being added?

  • We have features which require registration to take advantage of. A good way to display this sentiment is via a registered user dashboard.

What should your feature do?

  • Create a /dashboard route
  • Welcomes the user by name
  • Provides a way for a user to request a mentor
  • Provides a way for a user to edit their profile

Get test coverage to 30%

Beginner Friendly!

There are plenty of examples of unit tests with which you can nearly copy-paste 😄

You can check your progress locally via yarn jest --coverage and looking at the top row.

Feature

Why is this feature being added?

Trying to get test coverage up to 90% incrementally. Currently at 26%. Let's move to 30%+ and I'll keep making tickets in 10% increments.

What should your feature do?

Add unit tests that move coverage to 30% according to coveralls

Integrate CodeClimate

Feature

Why is this feature being added?

  • This will prevent human error in terms of merging code not up to our standard!
  • Find micro-optimizations where possible

What should your feature do?

Integrate CodeClimate into our PR system as an automated test.

Defined as done:

  • I am unable to commit code that does not follow best practices according to CodeClimate and/or the repository administrators.

Routing does not work in Next static preview on PR bot

Bug Report

What is the current behavior?

When a Now PR bot gives a static link, there's no ability to route between pages

What is the expected behavior?

A user demoing a static preview build should be able to see all routes.

What steps did you take to get this behavior?

Additional Info

Operating System

MacOS@latest

Browser

Chrome@latest

Reimplement /challenge page

Feature

Why is this feature being added?

https://operationcode.org/challenge exists and it needs to exist in the new code base as well.

What should your feature do?

  • Implement the challenge page via pages/challenge.js
  • See live source code. Feel free to copy-paste a lot.
  • Refactor as required to match our new standards (linting, using components where possible, etc.)
  • As an aside, I recently led a conglomerate of multiple people through the actual challenge and many ended up in the wrong spot. This leads me to believe that somewhere, the challenge instructions make a mistake. I would appreciate a run-through as if you are a user of the challenge page - make any changes you feel are necessary 👍

Get test coverage above 20%

Feature

Why is this feature being added?

Trying to get test coverage up to 90% incrementally

What should your feature do?

Add unit tests that move coverage to 20% according to coveralls

An in-range update of jest-enzyme is breaking the build 🚨

The devDependency jest-enzyme was updated from 6.0.5 to 6.1.0.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

jest-enzyme is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • deployment/now: Deployment has failed (Details).
  • continuous-integration/travis-ci/push: The Travis CI build could not complete due to an error (Details).

Release Notes for 6.1.0
  • Added 3 new matchers! toContainMatchingElement, toContainMatchingElements and toContainMatchingElements (@GreenGremlin)
Commits

The new version differs by 5 commits ahead by 5, behind by 2.

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

(Epic) Create a NavBar

Feature

Why is this feature being added?

  • The live navbar is not very flexible and has a lot of ungraceful style breakage depending on the viewport.
  • We can't list all public content in the nav because it would look very ugly (across 2 or 3 rows)
  • We should be able to list 30+ links within the NavBar without it spanning two bars
    • To accomplish this, we will need a NavItem component that can have a list of other items revealed on hover if needed.
    • See the navbar at https://stripe.com for inspiration

What should your feature do?

  • Create a NavItem common/component that takes a list of links.
    • If it's one link, the NavItem should navigate onClick and onEnterDown.
    • If it's multiple links, the NavItem should show/hide the NavItemDropdown on/off hover and on/off click.
    • On mobile, the all links in NavItem should render in a visual grouping (no using NavItemDropdown).
  • Create a NavItemDropdown common/component.
  • Use the above components to create a responsive, kick-ass NavBar and implement it.
  • Create stories for each component comparable to the Button's story in quality and depth.
  • Write unit tests for each component.
  • Generate snapshots for each component.

Desktop Mock

screen shot 2018-10-21 at 10 18 06 pm

Mobile Mock

(For screen sizes under 769px in width)
Note: You've got creative freedom for what appears after clicking MENU+, but it should contain every link that the navbar does.
Note 2: Please put the plus to the left of MENU to be consistent with the rest of the nav
screen shot 2018-10-21 at 10 26 27 pm

Integrate Cypress.io

Feature

Blocked!

until #17 and #164 are accomplished, there will be too much churn to really justify the e2e tests that I'm hoping to create.

Why is this feature being added?

Cypress.io
Because we want the best e2e and integration testing the industry has to offer 💪

What should your feature do?

TBA

Action required: Greenkeeper could not be activated 🚨

🚨 You need to enable Continuous Integration on all branches of this repository. 🚨

To enable Greenkeeper, you need to make sure that a commit status is reported on all branches. This is required by Greenkeeper because it uses your CI build statuses to figure out when to notify you about breaking changes.

Since we didn’t receive a CI status on the greenkeeper/initial branch, it’s possible that you don’t have CI set up yet. We recommend using Travis CI, but Greenkeeper will work with every other CI service as well.

If you have already set up a CI for this repository, you might need to check how it’s configured. Make sure it is set to run on all new branches. If you don’t want it to run on absolutely every branch, you can whitelist branches starting with greenkeeper/.

Once you have installed and configured CI on this repository correctly, you’ll need to re-trigger Greenkeeper’s initial pull request. To do this, please delete the greenkeeper/initial branch in this repository, and then remove and re-add this repository to the Greenkeeper App’s white list on Github. You'll find this list on your repo or organization’s settings page, under Installed GitHub Apps.

Create prepush hooks for formatting, linting, and tests

Feature

Why is this feature being added?

Because people will contribute bad code and we'd like to automate stuff before a pull request is opened.

What should your feature do?

Use husky to run format, lint, and test in that order within a pre-push hook.

Integrate Hygen.io for scripted component creation

Feature

Why is this feature being added?

  • New components will be created in time
  • Setup of components is prone to error in regards to our methodologies and best practices
  • Hygen will provide automated content/file/folder generation when somebody wants to create a component within common/components

What should your feature do?

  • Use Hygen to create a command available at the project's root level allowing the automated generation of a skeleton component within common/components

Create branch-specific build process Travis file for Greenkeeper

Feature

Why is this feature being added?

#118

I can't use yarn --pure-lockfile in CI with Greenkeeper involved, but it's the purest way to ensure the repository and CI environments have matching dependencies.

What should your feature do?

Use yarn --silent should run for all branches that include "greenkeeper/" in the branch name and yarn --pure-lockfile --silent should run otherwise.

(Epic) Recreate every page

We need all our content back!

A box can be ticked when the page in question exists with any aliases* and has no visual or functional regression from the live version.

  • with any aliases

example: alias-one | alias-two ==> operationcode.org/alias-one & operationcode.org/alias-two

The following unauthenticated pages:

(x means claimed)

The following authenticated pages:

These components will require on-the-fly refactoring as they're dependent on react-router (which we're not using anymore).

[ALL BLOCKED]

  • join | signup | sign-up | sign_up [BLOCKED]
  • login [BLOCKED]
  • social_login
  • profile
  • profile/verify
  • scholarships
  • reset_password

FINISHED! 🎉

Reimplement /branding page

Feature

Why is this feature being added?

https://operationcode.org/branding exists and it needs to exist in the new code base as well.

What should your feature do?

  • Implement the branding page via pages/branding.js
  • See live source code. Feel free to copy-paste a lot.
  • Refactor as required to match our new standards (linting, using components where possible, etc.)
  • Further instructions given to Kelly on Slack 💃

Get test coverage up to 50%

Feature

Why is this feature being added?

Trying to get test coverage up to 90% incrementally. Currently at Test Coverage
. Let's move to 50%+ and I'll keep making tickets in 10% increments. You can check your progress locally via yarn jest --coverage and looking at the top row.

What should your feature do?

Add unit tests that move coverage to 50% or higher according to coveralls

Create PR bot that reminds maintainers to check Story parity

Feature

Why is this feature being added?

  • This will prevent human error in terms of merging changes to components without checking pre-existing stories for any needed changes.

What should your feature do?

Ensure that edits to components always match up with it's Story (if it exists).

Defined as done:

  • I am unable to open a PR with code changed in components/ without a bot commenting to reminding maintainers to check the component's corresponding Story for feature parity - if it exists.

Remove out-of-date information in CONTRIBUTING.md

Feature

Beginner Friendly

No code changes! Only markdown changes 💃

Why is this feature being added?

We don't want people being mislead. Only leave the absolute facts within the documentation.

I realize there's not much info here. The documentation is a bit on the back-burner for me since we're not really advertising this repo except internally. Ask questions in here or DM me on Slack if you'd like to help out. I am always available for assistance.

A prime example: the readme includes commands back-end mocking instructions. You can quickly remove that information as we have no way of mocking the back-end yet.

Leverage cross-env to inject environment variables safely for windows devs

Feature

Why is this feature being added?

  • Windows devs get an error when running any scripts that define environment variables inline, "NODE_ENV is not recognized as an internal or external command" for example.

What should your feature do?

Use cross-env to inject environment variables in all scripts instead of inlining environment variable definitions.

Reimplement /team page

Feature

Why is this feature being added?

https://operationcode.org/team exists and it needs to exist in the new code base as well.

What should your feature do?

  • Implement the team page via pages/team.js
  • See live source code. Feel free to copy-paste a lot.
  • Refactor as required to match our new standards (linting, using components where possible, etc.)
  • Implement this feature by simply displaying a list of links pointing to every one of these accounts.

Recreate all icons as local SVGs because FontAwesome is in flux

Feature

Why is this feature being added?

I've decided that we will not rely upon 3rd party icon sets. The 3rd party integrations include breaking changes often and we're stuck on a version that we cannot upgrade without dedicated lots of resource hours.

What should your feature do?

  • In this issue, document the location and a descriptive name for every unique icon on operationcode.org
  • I will then recreate those icons using Illustrator or Sketch and upload them here

Example icons on home page:
screen shot 2018-08-26 at 9 23 46 pm

Link to Github Workflow is broken/returns 404 error

Bug Report

Link to "Github Workflow" in Readme.MD returns a 404 error

What is the current behavior?

Clicking on link returns 404

What is the expected behavior?

Clicking on link leads user to the right content

What steps did you take to get this behavior?

Additional Info

Operating System

Windows 10 64-bit

Browser

Chrome 67

Screenshots

An in-range update of react-modal is breaking the build 🚨

The dependency react-modal was updated from 3.5.1 to 3.6.1.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

react-modal is a direct dependency of this project, and it is very likely causing it to break. If other packages depend on yours, this update is probably also breaking those in turn.

Status Details
  • deployment/now: Deployment has completed (Details).
  • continuous-integration/travis-ci/push: The Travis CI build failed (Details).

Commits

The new version differs by 5 commits.

  • 2a70831 Release v3.6.1.
  • a2c38cc [fixed] set default role for accessibility
  • 921358e Add explicit comments as suggested in PR review
  • 3d74c1b Update doc to inform v3 users about close transition
  • 1e349c0 [fixed] remove aria-modal attr to prevent browser bugs

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

Integrate TravisCI

Feature

Why is this feature being added?

  • We need PRs to build a demo version of the site per pull request.
  • We need builds and tests to run via continuous integration using some CI tool
  • We have historically used TravisCI with no complaints

What should your feature do?

  • Travis should automatically run tests, build applications, and deploy demo environments on a per pull request and per merge basis such that our website and Storybook instance are deployed with test-compliant code.

Switch from coveralls to another code coverage tool

Feature

Why is this feature being added?

Coveralls seems to have an absurd delay in their GitHub Status API check as seen here:
lemurheavy/coveralls-public#281 (comment)

Unfortunately, this means that a PR could ruin test coverage, pass 5/6 of our status checks, but be mergeable because the 6th one has yet to even populate.

That's simply unacceptable. We'll have to move to an alternate solution.

What should your feature do?

Move to codecov or Code Climate for test coverage assurances.

<OutboundLink> story is broken

Bug Report

What is the current behavior?

<OutboundLink> fails to render in Storybook - red screen of death 🔴 !

more later, see https://operation-code-storybook.netlify.com/?knob-href=https%3A%2F%2Fwhitehouse.gov&knob-tabIndex=0&knob-children=White%20House%20Official%20Website&knob-analyticsEventLabel=White%20House%20Official%20Website&knob-hasIcon=true&selectedKind=Common%2FOutboundLink&selectedStory=default&full=0&addons=1&stories=1&panelRight=0&addonPanel=storybooks%2Fstorybook-addon-knobs

AND

see #108 (😭)

More Details

Awaiting resolution on Next's Spectrum here.

What is the expected behavior?

<OutboundLink> renders with no warnings in Storybook.

Create /events page

Feature

Why is this feature being added?

Our design team has come up with a beautiful redesign to simplify UX.

What should your feature do?

Implement the newly-designed landing page via pages/events.js
Here is the mock-up: https://invis.io/KSO12EFRU7E#/323662230_OC_Events_Landing_Page

Temporary Note

This project requires back-end labor to finish (creating events surrounding our meetup groups and events). In the meantime, you can act upon a JSON of you shape/choosing in order to mock the data represented in the design mock.

Remove out-of-date information from README

Feature

Why is this feature being added?

We don't want people being mislead. Only leave the absolute facts within the documentation.

I realize there's not much info here. The documentation is a bit on the back-burner for me since we're not really advertising this repo except internally. Ask questions in here or DM me on Slack if you'd like to help out.

A prime example: the readme includes commands from CRA + the old repo. You can quickly remove that information and put up the correct info just by reading package.json.

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.