├── .gitignore ├── src ├── images │ ├── icon.png │ ├── eew-map.png │ ├── EDGI-logo.png │ ├── eew-logo.png │ ├── eew-logo.webp │ ├── eew-map.webp │ ├── funders-css.png │ ├── funders-ddcf.png │ ├── funders-esip.png │ ├── funders-neu.png │ ├── funders-sbu.png │ ├── EEW-Authorship.png │ ├── eew-logo-small.png │ ├── funders-packard.png │ ├── research-covid.jpg │ ├── tutorials-intro.png │ ├── gallery │ │ ├── data-viz.png │ │ ├── data-science.png │ │ ├── report-making.png │ │ ├── research-tracks.png │ │ └── story-gathering.png │ ├── tutorials-jupyter.png │ ├── eew-public-workshop.png │ ├── notebooks-watershed.png │ ├── report-card-tracker.png │ ├── tutorials-watershed.png │ ├── report-card-tracker-es.png │ ├── research-democratizing.png │ ├── tutorials-watersheddoc.png │ └── notebooks-cross-program.png ├── styles │ ├── constants.scss │ ├── tabs.scss │ ├── styles.scss │ └── header.scss ├── components │ ├── Notification.js │ ├── Sidebar.js │ ├── TabTracks.js │ ├── InfoCard.js │ ├── Head.js │ ├── Header.js │ ├── Layout.js │ ├── Footer.js │ ├── HeaderItem.js │ └── ReportCardExplorer.js ├── pages │ ├── about │ │ ├── people.mdx │ │ ├── contact.js │ │ ├── faq.mdx │ │ ├── funding.mdx │ │ ├── press.mdx │ │ └── index.mdx │ ├── data │ │ ├── external-resources.mdx │ │ ├── research.mdx │ │ ├── notebooks.mdx │ │ ├── reports.mdx │ │ └── reports-es.mdx │ ├── 404.js │ ├── learn │ │ ├── tutorials.mdx │ │ └── events.mdx │ └── index.mdx └── helpers │ └── constants.js ├── devnotes.md ├── gatsby-config.js ├── package.json └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | .cache/ 3 | public 4 | -------------------------------------------------------------------------------- /src/images/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaptainStack/eew-website-rebuild/main/src/images/icon.png -------------------------------------------------------------------------------- /src/images/eew-map.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaptainStack/eew-website-rebuild/main/src/images/eew-map.png -------------------------------------------------------------------------------- /src/images/EDGI-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaptainStack/eew-website-rebuild/main/src/images/EDGI-logo.png -------------------------------------------------------------------------------- /src/images/eew-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaptainStack/eew-website-rebuild/main/src/images/eew-logo.png -------------------------------------------------------------------------------- /src/images/eew-logo.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaptainStack/eew-website-rebuild/main/src/images/eew-logo.webp -------------------------------------------------------------------------------- /src/images/eew-map.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaptainStack/eew-website-rebuild/main/src/images/eew-map.webp -------------------------------------------------------------------------------- /src/images/funders-css.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaptainStack/eew-website-rebuild/main/src/images/funders-css.png -------------------------------------------------------------------------------- /src/images/funders-ddcf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaptainStack/eew-website-rebuild/main/src/images/funders-ddcf.png -------------------------------------------------------------------------------- /src/images/funders-esip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaptainStack/eew-website-rebuild/main/src/images/funders-esip.png -------------------------------------------------------------------------------- /src/images/funders-neu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaptainStack/eew-website-rebuild/main/src/images/funders-neu.png -------------------------------------------------------------------------------- /src/images/funders-sbu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaptainStack/eew-website-rebuild/main/src/images/funders-sbu.png -------------------------------------------------------------------------------- /src/images/EEW-Authorship.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaptainStack/eew-website-rebuild/main/src/images/EEW-Authorship.png -------------------------------------------------------------------------------- /src/images/eew-logo-small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaptainStack/eew-website-rebuild/main/src/images/eew-logo-small.png -------------------------------------------------------------------------------- /src/images/funders-packard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaptainStack/eew-website-rebuild/main/src/images/funders-packard.png -------------------------------------------------------------------------------- /src/images/research-covid.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaptainStack/eew-website-rebuild/main/src/images/research-covid.jpg -------------------------------------------------------------------------------- /src/images/tutorials-intro.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaptainStack/eew-website-rebuild/main/src/images/tutorials-intro.png -------------------------------------------------------------------------------- /src/images/gallery/data-viz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaptainStack/eew-website-rebuild/main/src/images/gallery/data-viz.png -------------------------------------------------------------------------------- /src/images/tutorials-jupyter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaptainStack/eew-website-rebuild/main/src/images/tutorials-jupyter.png -------------------------------------------------------------------------------- /src/images/eew-public-workshop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaptainStack/eew-website-rebuild/main/src/images/eew-public-workshop.png -------------------------------------------------------------------------------- /src/images/gallery/data-science.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaptainStack/eew-website-rebuild/main/src/images/gallery/data-science.png -------------------------------------------------------------------------------- /src/images/notebooks-watershed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaptainStack/eew-website-rebuild/main/src/images/notebooks-watershed.png -------------------------------------------------------------------------------- /src/images/report-card-tracker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaptainStack/eew-website-rebuild/main/src/images/report-card-tracker.png -------------------------------------------------------------------------------- /src/images/tutorials-watershed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaptainStack/eew-website-rebuild/main/src/images/tutorials-watershed.png -------------------------------------------------------------------------------- /src/images/gallery/report-making.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaptainStack/eew-website-rebuild/main/src/images/gallery/report-making.png -------------------------------------------------------------------------------- /src/images/report-card-tracker-es.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaptainStack/eew-website-rebuild/main/src/images/report-card-tracker-es.png -------------------------------------------------------------------------------- /src/images/research-democratizing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaptainStack/eew-website-rebuild/main/src/images/research-democratizing.png -------------------------------------------------------------------------------- /src/images/tutorials-watersheddoc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaptainStack/eew-website-rebuild/main/src/images/tutorials-watersheddoc.png -------------------------------------------------------------------------------- /src/images/gallery/research-tracks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaptainStack/eew-website-rebuild/main/src/images/gallery/research-tracks.png -------------------------------------------------------------------------------- /src/images/gallery/story-gathering.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaptainStack/eew-website-rebuild/main/src/images/gallery/story-gathering.png -------------------------------------------------------------------------------- /src/images/notebooks-cross-program.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaptainStack/eew-website-rebuild/main/src/images/notebooks-cross-program.png -------------------------------------------------------------------------------- /src/styles/constants.scss: -------------------------------------------------------------------------------- 1 | $lightprimary: #afe0d7; 2 | $primary: #1B7F71; 3 | $midprimary: #54c6b5; 4 | $lightprimary: #afe0d7; 5 | $darkprimary: #4b7f78; 6 | $accent: #e56d13; 7 | 8 | $content-width: 970px; 9 | -------------------------------------------------------------------------------- /src/components/Notification.js: -------------------------------------------------------------------------------- 1 | import * as React from "react" 2 | 3 | const Notification = () => 4 |
NOTIFICATION
5 | 6 | export default Notification 7 | -------------------------------------------------------------------------------- /devnotes.md: -------------------------------------------------------------------------------- 1 | # EEW Website Devnotes 2 | 3 | * The site sometimes will refuse to build for various reasons - if that happens try deleting .cache 4 | * If you are failing to see changes made live (hot reloaded), try clearing your browser cache with a hard refresh (usually ctrl + shift + r). If that doesn't work try stopping and rerunning `npm run develop` 5 | * Do not use inline styles as they will compete with the styles in .css and .scss files -------------------------------------------------------------------------------- /src/components/Sidebar.js: -------------------------------------------------------------------------------- 1 | import * as React from "react" 2 | import { Link } from 'gatsby' 3 | 4 | const Sidebar = ({links, pageTitle}) => 5 | 11 | 12 | export default Sidebar 13 | -------------------------------------------------------------------------------- /src/components/TabTracks.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { Tab, Tabs, TabList, TabPanel } from 'react-tabs'; 3 | import 'react-tabs/style/react-tabs.css'; 4 | import '../styles/tabs.scss' 5 | 6 | const TabTracks = tabs => 7 |
8 | 9 | 10 | {tabs.items.map((item, i) => ( 11 | {item.title} 12 | ))} 13 | 14 | 15 | {tabs.items.map((item, i) => ( 16 | 17 |

{item.title}

18 |

{item.copy}

19 |
20 | ))} 21 |
22 |
23 | 24 | export default TabTracks; 25 | -------------------------------------------------------------------------------- /src/components/InfoCard.js: -------------------------------------------------------------------------------- 1 | import * as React from "react" 2 | 3 | const InfoCard = ({title, link, image, description}) => 4 | link ? 5 | 6 |
7 | {title} 8 | {image ? {description}/ : null} 9 |

{description}

10 |
11 |
: 12 | 13 |
14 | {title ? {title} : null} 15 | {image ? {description}/ : null} 16 | {description ?

{description}

: null} 17 |
18 |
19 | export default InfoCard 20 | -------------------------------------------------------------------------------- /src/components/Head.js: -------------------------------------------------------------------------------- 1 | import * as React from "react" 2 | import { Helmet } from 'react-helmet'; 3 | 4 | const Head = ({pageTitle}) => 5 | 6 | 7 | {pageTitle} | Environmental Enforcement Watch 8 | 9 | 10 | 11 | 12 | 13 | export default Head 14 | -------------------------------------------------------------------------------- /src/components/Header.js: -------------------------------------------------------------------------------- 1 | import * as React from "react" 2 | import { Link } from 'gatsby' 3 | import { HeaderLinks } from '../helpers/constants' 4 | import HeaderItem from '../components/HeaderItem' 5 | import SiteLogo from "../images/eew-logo.webp" 6 | import '../styles/header.scss' 7 | 8 | const Header = ({activeLink}) => 9 |
10 |
11 | 12 | EEW Site Logo 13 | 14 | 23 |
24 |
25 | 26 | export default Header 27 | -------------------------------------------------------------------------------- /src/components/Layout.js: -------------------------------------------------------------------------------- 1 | import * as React from "react" 2 | import Header from '../components/Header' 3 | import Head from '../components/Head' 4 | // import Notification from '../components/Notification' 5 | import Sidebar from '../components/Sidebar' 6 | import Footer from '../components/Footer' 7 | import '../styles/styles.scss' 8 | 9 | const Layout = ({pageTitle, children, sidebarLinks, activeHeaderLink}) => 10 |
11 | 12 |
13 | {/* */} 14 |
15 |
16 | {sidebarLinks ? : null} 17 |
18 | {children} 19 |
20 |
21 |
22 |
24 | 25 | export default Layout 26 | -------------------------------------------------------------------------------- /gatsby-config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | siteMetadata: { 3 | siteUrl: "https://www.yourdomain.tld", 4 | title: "EEW-Website", 5 | }, 6 | plugins: [ 7 | "gatsby-plugin-react-helmet", 8 | "gatsby-plugin-sass", 9 | "gatsby-plugin-image", 10 | "gatsby-plugin-sitemap", 11 | { 12 | resolve: "gatsby-plugin-manifest", 13 | options: { 14 | icon: "src/images/icon.png", 15 | }, 16 | }, 17 | "gatsby-plugin-mdx", 18 | "gatsby-plugin-sharp", 19 | "gatsby-transformer-sharp", 20 | { 21 | resolve: "gatsby-source-filesystem", 22 | options: { 23 | name: "images", 24 | path: "./src/images/", 25 | }, 26 | __key: "images", 27 | }, 28 | { 29 | resolve: "gatsby-source-filesystem", 30 | options: { 31 | name: "pages", 32 | path: "./src/pages/", 33 | }, 34 | __key: "pages", 35 | }, 36 | ], 37 | }; 38 | -------------------------------------------------------------------------------- /src/components/Footer.js: -------------------------------------------------------------------------------- 1 | import * as React from "react" 2 | import EDGILogo from "../images/EDGI-logo.png" 3 | 4 | const Footer = () => 5 | 18 | 19 | export default Footer 20 | -------------------------------------------------------------------------------- /src/pages/about/people.mdx: -------------------------------------------------------------------------------- 1 | import Layout from '../../components/Layout' 2 | import { AboutSidebarLinks } from '../../helpers/constants' 3 | import EEWAuthorshipImage from "../../images/EEW-Authorship.png" 4 | 5 | 6 | 7 | # Core Contributors 8 | Diagram listing the names of core contributors on the EEW project, arranged by fields of care (data care, external care, event care, internal care, and research care 9 | 10 | # Collaborators 11 | 12 | - Geospatial Center at Stony Brook University 13 | - Teaching Learning Lab at Stony Brook University 14 | - Sunrise Movement – Boston Hub 15 | - Union of Concerned Scientists 16 | 17 | 18 | -------------------------------------------------------------------------------- /src/styles/tabs.scss: -------------------------------------------------------------------------------- 1 | @media only screen and (max-width: 600px) { 2 | .react-tabs__tab { 3 | width: 50px; 4 | } 5 | } 6 | 7 | @media only screen and (min-width: 600px) { 8 | .react-tabs__tab { 9 | flex: 1 1 auto; 10 | max-width: 100px; 11 | } 12 | } 13 | 14 | .react-tabs__tab-list { 15 | display: flex; 16 | justify-content: space-between; 17 | margin: 0; 18 | } 19 | 20 | li figure { 21 | position: relative; 22 | top: 50%; 23 | transform: translateY(-50%); 24 | } 25 | 26 | .react-tabs__tab--selected { 27 | background-color: rgb(222, 250, 246); 28 | } 29 | 30 | .react-tabs__tab-panel { 31 | background-color: rgb(222, 250, 246); 32 | border: 1px solid #aaa; 33 | border-top: none; 34 | padding: 1.5rem 2rem; 35 | 36 | p { 37 | margin-bottom: 0; 38 | } 39 | } 40 | 41 | .react-tabs__tab-list { 42 | display: flex; 43 | justify-content: space-between; 44 | margin: 0; 45 | 46 | } 47 | 48 | .react-tabs img { 49 | width: 100%; 50 | } 51 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "eew-website", 3 | "version": "1.0.0", 4 | "private": true, 5 | "description": "EEW-Website", 6 | "keywords": [ 7 | "gatsby" 8 | ], 9 | "scripts": { 10 | "develop": "gatsby develop", 11 | "start": "gatsby develop", 12 | "build": "gatsby build", 13 | "serve": "gatsby serve", 14 | "clean": "gatsby clean" 15 | }, 16 | "dependencies": { 17 | "@mdx-js/mdx": "^1.6.22", 18 | "@mdx-js/react": "^1.6.22", 19 | "gatsby": "^4.0.0", 20 | "gatsby-plugin-image": "^2.0.0", 21 | "gatsby-plugin-manifest": "^4.0.0", 22 | "gatsby-plugin-mdx": "^3.0.0", 23 | "gatsby-plugin-react-helmet": "^5.0.0", 24 | "gatsby-plugin-sass": "^5.0.0", 25 | "gatsby-plugin-sharp": "^4.0.0", 26 | "gatsby-plugin-sitemap": "^5.0.0", 27 | "gatsby-source-filesystem": "^4.0.0", 28 | "gatsby-transformer-sharp": "^4.0.0", 29 | "react": "^17.0.1", 30 | "react-dom": "^17.0.1", 31 | "react-helmet": "^6.1.0", 32 | "react-tabs": "^3.2.2", 33 | "react-tooltip": "^4.2.21", 34 | "sass": "^1.43.3" 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/components/HeaderItem.js: -------------------------------------------------------------------------------- 1 | import * as React from "react" 2 | import { Link } from 'gatsby' 3 | 4 | const HeaderItem = ({link, activeLink}) => 5 |
6 | { 7 | // Using a ternary operator, if the header link is to an external site, then use a traditional anchor tag and open in a new page. 8 | // Otherwise, if the header link is an internal link use a Gatsby Link (for performance) and open in the current tab. 9 | (link.url.includes('http') || link.url.includes('https')) ? 10 | 11 | {link.text} 12 | 13 | : 14 | 15 | {link.text} 16 | 17 | } 18 | 19 | { 20 | link.sublinks ? : null 21 | } 22 | 23 |
24 | 25 | export default HeaderItem 26 | -------------------------------------------------------------------------------- /src/pages/data/external-resources.mdx: -------------------------------------------------------------------------------- 1 | import Layout from '../../components/Layout' 2 | import InfoCard from '../../components/InfoCard' 3 | import { DataPageSidebarLinks } from '../../helpers/constants' 4 | import democratizing from "../../images/research-democratizing.png" 5 | import covid from "../../images/research-covid.jpg" 6 | 7 | 8 | 9 | # External Resources 10 | 11 |
12 | 18 | 24 |
25 | 26 |
27 | -------------------------------------------------------------------------------- /src/pages/data/research.mdx: -------------------------------------------------------------------------------- 1 | import Layout from '../../components/Layout' 2 | import InfoCard from '../../components/InfoCard' 3 | import { DataPageSidebarLinks } from '../../helpers/constants' 4 | import democratizing from "../../images/research-democratizing.png" 5 | import covid from "../../images/research-covid.jpg" 6 | 7 | 8 | 9 | # Research 10 | 11 | Reports and white papers generated by the Environmental Enforcement Watch team. 12 | 13 |
14 | 20 | 26 |
27 | 28 |
29 | -------------------------------------------------------------------------------- /src/pages/about/contact.js: -------------------------------------------------------------------------------- 1 | // Step 1: Import React 2 | import * as React from 'react' 3 | import Layout from '../../components/Layout' 4 | import { AboutSidebarLinks } from '../../helpers/constants' 5 | 6 | const ContactPage = () => 7 | 8 | {/*

Press Contact: environmentalenforcementwatch@gmail.com

*/} 9 |

Contact

10 |
11 |
12 |
13 | 14 | 15 |
16 |
17 | 18 | 19 |
20 |
21 | 22 | 27 | 28 |
29 |
30 |
31 |
32 | 33 | // Step 3: Export your component 34 | export default ContactPage 35 | -------------------------------------------------------------------------------- /src/pages/404.js: -------------------------------------------------------------------------------- 1 | import * as React from "react" 2 | import { Link } from "gatsby" 3 | 4 | // styles 5 | const pageStyles = { 6 | color: "#232129", 7 | padding: "96px", 8 | fontFamily: "-apple-system, Roboto, sans-serif, serif", 9 | } 10 | const headingStyles = { 11 | marginTop: 0, 12 | marginBottom: 64, 13 | maxWidth: 320, 14 | } 15 | 16 | const paragraphStyles = { 17 | marginBottom: 48, 18 | } 19 | const codeStyles = { 20 | color: "#8A6534", 21 | padding: 4, 22 | backgroundColor: "#FFF4DB", 23 | fontSize: "1.25rem", 24 | borderRadius: 4, 25 | } 26 | 27 | // markup 28 | const NotFoundPage = () => { 29 | return ( 30 |
31 | Not found 32 |

Page not found

33 |

34 | Sorry{" "} 35 | 36 | 😔 37 | {" "} 38 | we couldn’t find what you were looking for. 39 |
40 | {process.env.NODE_ENV === "development" ? ( 41 | <> 42 |
43 | Try creating a page in src/pages/. 44 |
45 | 46 | ) : null} 47 |
48 | Go home. 49 |

50 |
51 | ) 52 | } 53 | 54 | export default NotFoundPage 55 | -------------------------------------------------------------------------------- /src/pages/about/faq.mdx: -------------------------------------------------------------------------------- 1 | import Layout from '../../components/Layout' 2 | import { AboutSidebarLinks } from '../../helpers/constants' 3 | 4 | 5 | 6 | # FAQ 7 | 8 | ### Is EEW part of the EPA? 9 | 10 | No, EEW is a project of EDGI and is independent from the EPA and the US Government. We do however work with public datasets many of which come from the EPA. 11 | 12 | ### Is this data biased? 13 | 14 | All data contains bias - we hope that by making the data more accessible it can be held to higher and more objective standards by the community. 15 | 16 | ### Any other projects we should know about? 17 | Yes! Check out [A People's EPA (APE)](https://www.apeoplesepa.org). APE is a website for everyone—the public, students, activists, journalists—to understand the Environmental Protection Agency's national and global importance. Since its creation in 1970, Congress has charged the agency with implementing laws that protect us from air pollution, dirty water, and hazardous waste, among other things. This process is complex. Our website provides a straightforward history of the agency, explains how it operates, and provides the data and tools for you to explore and track the EPA in greater depth. This is an ongoing project of the Environmental Data & Governance Initiative. Check back for more updates coming soon! 18 | 19 | 20 | -------------------------------------------------------------------------------- /src/pages/data/notebooks.mdx: -------------------------------------------------------------------------------- 1 | import Layout from '../../components/Layout' 2 | import InfoCard from '../../components/InfoCard' 3 | import { DataPageSidebarLinks } from '../../helpers/constants' 4 | import watershed from "../../images/notebooks-watershed.png" 5 | import crossprog from "../../images/notebooks-cross-program.png" 6 | 7 | 8 | 9 | # Notebooks 10 | 11 | Do your own research using these beginner-friendly Jupyter Notebooks! Use dropdown menus and interactive maps to select geographies, regulations, and facilities to analyze, automatically generating relevant graphics and CSV files. 12 | 13 |
14 | 20 | 26 |
27 |
28 | -------------------------------------------------------------------------------- /src/components/ReportCardExplorer.js: -------------------------------------------------------------------------------- 1 | import * as React from "react" 2 | import { Link } from 'gatsby' 3 | import { CongressReportCardData } from '../helpers/constants' 4 | import ReactTooltip from 'react-tooltip'; 5 | 6 | const ReportCardExplorer = () => 7 |
8 |

Senate Environment and Public Works Committee

9 | { 10 | CongressReportCardData.senateData.map(congressMember => 11 | 12 |
${congressMember.rank}
${congressMember.affil}
Representing ${congressMember.state}-${congressMember.district}`} 13 | className={`ReportCard ${congressMember.affil} tooltip`}> 14 | {congressMember.state} 15 |
16 | 17 | ) 18 | } 19 |

House Energy and Commerce Committee

20 | { 21 | CongressReportCardData.houseData.map(congressMember => 22 | 23 |
${congressMember.rank}
${congressMember.affil}
Representing ${congressMember.state}-${congressMember.district}`} 24 | className={`ReportCard ${congressMember.affil} tooltip`}> 25 |
{congressMember.state}
26 |
{congressMember.district}
27 | {/* 28 |
{congressMember.name}
29 |
{congressMember.rank}
30 |
{congressMember.affil}
31 |
{`Representing ${congressMember.state}`}
32 |
*/} 33 |
34 | 35 | ) 36 | } 37 | 38 |
39 | 40 | export default ReportCardExplorer 41 | -------------------------------------------------------------------------------- /src/pages/learn/tutorials.mdx: -------------------------------------------------------------------------------- 1 | import Layout from '../../components/Layout' 2 | import InfoCard from '../../components/InfoCard' 3 | import { LearnPageSidebarLinks } from '../../helpers/constants' 4 | import intro from "../../images/tutorials-intro.png" 5 | import jupyter from "../../images/tutorials-jupyter.png" 6 | import watershed from "../../images/tutorials-watershed.png" 7 | import watersheddoc from "../../images/tutorials-watersheddoc.png" 8 | 9 | 10 | 11 | # Tutorial videos 12 | 13 | Learn more about the Environmental Enforcement Watch and how to use our tools to do your own research. 14 | 15 |
16 | 22 | 28 | 34 | 40 |
41 | 42 | We want to make environmental compliance data more accessible and useful through our Jupyter Notebooks and supplementing the numbers with community stories, compelling data visualizations, and contextual research. 43 | 44 | **Interested in hosting an EEW event? Email us at environmentalenforcementwatch@gmail.com** 45 | 46 |
47 | -------------------------------------------------------------------------------- /src/pages/about/funding.mdx: -------------------------------------------------------------------------------- 1 | import Layout from '../../components/Layout' 2 | import InfoCard from '../../components/InfoCard' 3 | import { AboutSidebarLinks } from '../../helpers/constants' 4 | import EDGI from "../../images/EDGI-logo.png" 5 | import Packard from "../../images/funders-packard.png" 6 | import ESIP from "../../images/funders-esip.png" 7 | import CSS from "../../images/funders-css.png" 8 | import NEU from "../../images/funders-neu.png" 9 | import SBU from "../../images/funders-sbu.png" 10 | import DDCF from "../../images/funders-ddcf.png" 11 | 12 | 13 | 14 | # Donors & Fundraising 15 | 16 |
17 | 23 | 29 | 35 | 41 | 47 | 53 | 59 |
60 | 61 |
62 | -------------------------------------------------------------------------------- /src/pages/index.mdx: -------------------------------------------------------------------------------- 1 | import Layout from '../components/Layout' 2 | import Map from "../images/eew-map.webp" 3 | import { Link } from 'gatsby' 4 | 5 | 6 | 7 | 8 | 9 | # Environmental regulation is only as good as its enforcement 10 | 11 | The Environmental Protection Agency (EPA) is charged by Congress to enforce laws that protect people from air pollution, water pollution, and hazardous waste. The Environmental Enforcement Watch (EEW) works [with members of the public](/learn/events) to analyze and present EPA data on violations of environmental laws, inspections of polluting facilities, and enforcement actions by the EPA. 12 | 13 | The map below shows the states and districts with completed report cards: 14 | 15 | Map of Congressional Report Cards 16 | 17 | Show me the reports 18 | 19 | Share this page 20 | 21 | # Practicing our right to know, together. 22 | 23 | We want clean air, clean water, and an end to environmental racism and injustice. 24 | 25 | We believe in the public’s right to know, and that we can collaboratively design public open-source systems to analyze, discuss, and act on environmental data collectively. EPA data is available to the public through the [Enforcement and Compliance History Online](https://echo.epa.gov) (ECHO) database. ECHO data includes reported violations of environmental laws such as the Clean Air Act (CAA), Clean Water Act (CWA), and the Resource Conservation and Recovery Act (RCRA), which manages hazardous waste, as well as data on emissions, facility inspections, and enforcement actions issued by the EPA and state agencies. However, the database can be challenging to use and error-prone. EEW works to make this data more accessible, user-friendly, and collectively actionable through [public workshops](/learn/events), [open-source data tools](https://github.com/edgi-govdata-archiving), and projects like the [Congressional District Report Cards](/data/reports) and [COVID-19 enforcement report](https://envirodatagov.org/more-permission-to-pollute-the-decline-of-epa-enforcement-and-industry-compliance-during-covid). 26 | 27 | 28 | -------------------------------------------------------------------------------- /src/pages/about/press.mdx: -------------------------------------------------------------------------------- 1 | import Layout from '../../components/Layout' 2 | import { AboutSidebarLinks } from '../../helpers/constants' 3 | 4 | 5 | 6 | # EEW Reports 7 | * **[Democratizing Data: Environmental Enforcement Watch's Report Cards for Congressional Oversight of the EPA](https://envirodatagov.org/?post_type=publication&p=6167&preview=true)** 8 | * **[More Permission to Pollute: The Decline of EPA Enforcement and Industry Compliance during COVID](https://envirodatagov.org/more-permission-to-pollute-the-decline-of-epa-enforcement-and-industry-compliance-during-covid)** 9 | 10 | # EEW Events 11 | * **[Democratizing Environmental Data: Panel Discussion & Report Release (10/22/2020)](https://youtu.be/9Ot7uFA4ucQ)** 12 | * **[EEW Public Hours workshop 4 (9/10/2020)](https://www.youtube.com/watch?v=dUV3NweSWTs&list=PLtsP3g9LafVv78TIa42xr591-4CfKMYQO&index=21&t=212s)** 13 | * **[EEW Public Hours workshop 1 (8/20/2020)](https://www.youtube.com/watch?v=Gp1aDeXMays&list=PLtsP3g9LafVv78TIa42xr591-4CfKMYQO&index=31)** 14 | * **[Sunrise Boston Hub workshop (7/18/2020)](https://www.youtube.com/watch?v=rCs35rmDo9c&list=PLtsP3g9LafVv78TIa42xr591-4CfKMYQO&index=49&t=1678s)** 15 | 16 | # EEW Blog Posts 17 | * **[Bio-Lab's Toxic Record Presages Chlorine-Fueled Fire Following Hurricane Laura](https://envirodatagov.org/bio-labs-toxic-record-presages-chlorine-fueled-fire-following-hurricane-laura)** 18 | * **[Practicing Our Right to Know, Together — Review of EEW Congressional Report Card Workshops](https://envirodatagov.org/practicing-our-right-to-know-together-review-of-eew-congressional-report-card-workshops-to-date)** 19 | 20 | # EEW Full Press Coverage 21 | 22 | * [EDGI report sees major monitoring gaps during pandemic](https://insideepa.com/daily-feed/edgi-report-sees-major-monitoring-gaps-during-pandemic) 23 | * [Ed Markey uses climate change to flip insurgent script on Joe Kennedy in Mass. race](https://www.washingtonpost.com/politics/2020/08/25/energy-202-ed-markey-uses-climate-change-flip-insurgent-script-joe-kennedy-mass-race) 24 | * [Thousands allowed to bypass environmental rules in pandemic](https://apnews.com/article/3bf753f9036e7d88f4746b1a36c1ddc4) 25 | * [Thousands allowed to bypass environmental rules in pandemic](https://www.washingtonpost.com/climate-environment/thousands-allowed-to-bypass-environmental-rules-in-pandemic/2020/08/24/187c8772-e5c2-11ea-bf44-0d31c85838a5_story.html) 26 | * [Thousands allowed to bypass environmental rules in pandemic](https://www.usnews.com/news/politics/articles/2020-08-24/thousands-allowed-to-bypass-environmental-rules-in-pandemic) 27 | * [Thousands allowed to bypass environmental rules in pandemic](https://www.aljazeera.com/economy/2020/08/24/thousands-of-firms-in-us-bypass-environmental-rules-report) 28 | * [Thousands allowed to bypass environmental rules in pandemic](https://www.atholdailynews.com/Thousands-allowed-to-bypass-environmental-rules-in-pandemic-35891139) 29 | * [Some Minnesota Farms Allowed To Bypass Environmental Rules During Pandemic](https://minnesota.cbslocal.com/2020/08/24/some-minnesota-farms-allowed-to-bypass-environmental-rules-during-pandemic) 30 | * [Thousands allowed to bypass environmental rules in pandemic](https://columbiabasinherald.com/news/2020/aug/23/thousands-allowed-to-bypass-environmental-2) 31 | * [Thousands allowed to bypass environmental rules in pandemic](https://www.startribune.com/thousands-allowed-to-bypass-environmental-rules-in-pandemic/572202332/?refresh=true) 32 | * [Thousands allowed to bypass environmental rules in pandemic](https://www.timesfreepress.com/news/business/aroundregion/story/2020/aug/24/thousands-allowed-bypass-environmental-rules/530655) 33 | * [Oil and gas companies, others allowed to bypass environmental rules amid pandemic, AP finds](https://www.theadvocate.com/baton_rouge/news/environment/article_17d63f90-e6e7-11ea-b192-3b37d164026c.html) 34 | * [Thousands of facilities allowed to bypass environmental rules in pandemic](https://www.wibw.com/2020/08/24/thousands-of-facilities-allowed-to-bypass-environmental-rules-in-pandemic) 35 | * [Trump Has Overseen a Pollution Nightmare, Including in the Backyards of Members of Congress Overseeing the EPA](https://earther.gizmodo.com/trump-has-overseen-a-pollution-nightmare-including-in-1845449686) 36 | * [Pennsylvania water is not what it used to be | Opinion](https://www.pennlive.com/opinion/2020/10/pennsylvania-water-is-not-what-it-used-to-be-opinion.html) 37 | * [What Does Equitable Climate Policy Actually Look Like?](https://truthout.org/articles/what-does-equitable-climate-policy-actually-look-like) 38 | * [What Does Equitable Climate Policy Actually Look Like?](https://www.ecowatch.com/climate-justice-us-policy-2647869650.html?rebelltitem=7#rebelltitem7) 39 | 40 | 41 | -------------------------------------------------------------------------------- /src/styles/styles.scss: -------------------------------------------------------------------------------- 1 | @import './constants.scss'; 2 | 3 | .Layout { 4 | display: flex; 5 | flex-direction: column; 6 | gap: 10px; 7 | } 8 | 9 | html { 10 | overflow-y: scroll; 11 | } 12 | 13 | img { 14 | height: auto; 15 | width: 100%; 16 | } 17 | 18 | body { 19 | margin: 0; 20 | padding: 0; 21 | font-family: 'Open Sans', sans-serif; 22 | } 23 | 24 | h1, h2, h3, a { 25 | color: $primary; 26 | text-decoration: none; 27 | } 28 | 29 | a:hover { 30 | text-decoration: none; 31 | color: rgb(68, 63, 63); 32 | } 33 | 34 | .button { 35 | padding: 1rem 1.5rem 1rem 1.5rem; 36 | margin: 1rem; 37 | margin-left: 0; 38 | border-radius:10px; 39 | background-image: none; 40 | background-color: $primary; 41 | text-decoration: none; 42 | color: white; 43 | transform: translateY(-3px); 44 | box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2); 45 | } 46 | 47 | .button:hover { 48 | cursor: pointer; 49 | color: white; 50 | filter: brightness(85%); 51 | text-decoration: none; 52 | } 53 | 54 | .button:active { 55 | transform: translateY(-1px); 56 | box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); 57 | } 58 | 59 | .middle { 60 | display: flex; 61 | justify-content: center; 62 | .container { 63 | gap: 10px; 64 | justify-content: space-between; 65 | } 66 | } 67 | 68 | main { 69 | display: flex; 70 | align-items: flex-start; 71 | flex-direction: column; 72 | flex: 1; 73 | & > { 74 | img, a img { 75 | width: 100%; 76 | margin: 25px 0 25px 0; 77 | } 78 | p, ul { 79 | line-height: 1.6; 80 | margin: 0 0 20px 0; 81 | li { 82 | margin: 0 0 10px 0; 83 | } 84 | } 85 | } 86 | } 87 | 88 | .section-break-image { 89 | width: 125px; 90 | height: 125px; 91 | align-self: center; 92 | } 93 | 94 | aside { 95 | flex-basis: 140px; 96 | a { 97 | display: block; 98 | color: black; 99 | &:hover { 100 | text-decoration: underline; 101 | } 102 | } 103 | hr { 104 | margin-top: 10px; 105 | margin-bottom: 10px; 106 | border: 0; 107 | border-top-color: $midprimary; 108 | border-top-style: none; 109 | border-top-width: 0px; 110 | border-top-width: 1px; 111 | border-top-style: solid; 112 | border-top-color: $midprimary; 113 | } 114 | margin-top: 20px; 115 | } 116 | 117 | .active { 118 | color: $accent; 119 | } 120 | 121 | footer { 122 | height: 400px; 123 | padding-top: 50px; 124 | padding-bottom: 50px; 125 | background-color: #4b7f78; 126 | color: lightgray; 127 | display: flex; 128 | justify-content: center; 129 | .container { 130 | display: flex; 131 | flex-direction: column; 132 | align-items: center; 133 | div a { 134 | margin: 10px; 135 | color: lightgray; 136 | } 137 | } 138 | img { 139 | width: 350px; 140 | } 141 | } 142 | 143 | .notification { 144 | 145 | display: flex; 146 | justify-content: center; 147 | } 148 | 149 | .container { 150 | width: $content-width; 151 | display: flex; 152 | } 153 | 154 | .ReportCardExplorer { 155 | outline: rgb(222, 250, 246) solid medium; 156 | padding: 55px; 157 | } 158 | 159 | .ReportCard { 160 | height: 60px; 161 | width: 60px; 162 | display: inline-flex; 163 | flex-direction: column; 164 | justify-content: center; 165 | align-items: center; 166 | margin: 2px; 167 | color: white; 168 | border-radius: 5px; 169 | &:hover { 170 | outline: 2px solid #55c0ad; 171 | } 172 | } 173 | 174 | .Democrat { 175 | background-color: rgb(63, 107, 193); 176 | } 177 | .Republican { 178 | background-color: rgb(188, 71, 73); 179 | } 180 | .Independent { 181 | background-color: rgb(154, 119, 187); 182 | } 183 | 184 | @media screen and (max-width: 600px) { 185 | aside { 186 | display: none; 187 | } 188 | } 189 | 190 | form { 191 | display: flex; 192 | flex-direction: column; 193 | width: 100%; 194 | fieldset { 195 | border-radius: 10px; 196 | label { 197 | font-weight: bold; 198 | margin: 0 0 8px 0; 199 | } 200 | input, textarea { 201 | height: 30px; 202 | border-radius: 10px; 203 | border: 1px solid lightgray; 204 | } 205 | display: flex; 206 | flex-direction: column; 207 | gap: 15px; 208 | div { 209 | display: flex; 210 | flex-direction: column; 211 | } 212 | } 213 | } 214 | 215 | .row { 216 | display: flex; 217 | flex-direction: row; 218 | flex-wrap: wrap; 219 | } 220 | 221 | .InfoCard { 222 | outline: 1px solid lightgray; 223 | display: inline-block; 224 | flex-direction: column; 225 | justify-content: center; 226 | border-radius: 10px; 227 | max-width: 200px; 228 | 229 | margin: 10px; 230 | padding: 12px; 231 | color: rgb(88, 87, 87); 232 | &:hover { 233 | color: $darkprimary; 234 | background-color: lighten($lightprimary, 12); 235 | img { 236 | opacity: .8; 237 | } 238 | } 239 | } 240 | -------------------------------------------------------------------------------- /src/styles/header.scss: -------------------------------------------------------------------------------- 1 | @import './constants.scss'; 2 | 3 | header { 4 | background-color: $lightprimary; 5 | display: flex; 6 | justify-content: center; 7 | height: 98px; 8 | 9 | position: sticky; 10 | top: 0px; 11 | z-index:1; 12 | opacity: 0.9; 13 | 14 | a { 15 | color: #000000; 16 | font-size: 14pt; 17 | transition: color 0.3s ease; 18 | text-decoration: none; 19 | text-transform: uppercase; 20 | &:hover { 21 | color: $accent; 22 | } 23 | } 24 | 25 | 26 | img { 27 | height: auto; 28 | width: 120px; 29 | } 30 | 31 | .container { 32 | justify-content: space-between; 33 | align-items: center; 34 | } 35 | 36 | .active { 37 | text-decoration: underline; 38 | text-underline-offset: 8px; 39 | } 40 | nav { 41 | display: flex; 42 | gap: 20px; 43 | } 44 | .MenuIcon { 45 | display: none; 46 | } 47 | 48 | .headerItem:hover ul { 49 | opacity: 1; 50 | visibility: visible; 51 | z-index: 1; 52 | } 53 | 54 | .headerItem { 55 | ul { 56 | transition: visibility 0s, opacity 0.3s linear; 57 | position: absolute; 58 | opacity: 0; 59 | visibility: hidden; 60 | list-style: none; 61 | margin: 0; 62 | padding: 0; 63 | li { 64 | background-color: $darkprimary; 65 | padding: 18px; 66 | border-bottom: 1px solid black; 67 | color: white; 68 | &:hover { 69 | background-color: darken($darkprimary, 10); 70 | opacity: 1; 71 | } 72 | } 73 | } 74 | } 75 | 76 | @media (max-width: 600px) { 77 | & { 78 | height: auto; 79 | } 80 | .headerItem { 81 | display: none; 82 | } 83 | .MenuIcon { 84 | background-image: url('data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjMwMHB4IiB3aWR0aD0iMzAwcHgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDEwMCAxMDAiIGZpbGw9Im5vbmUiIHg9IjBweCIgeT0iMHB4Ij48cGF0aCBkPSJNOTIgMTRIOEM0LjY4NjI5IDE0IDIgMTYuNjg2MyAyIDIwQzIgMjMuMzEzNyA0LjY4NjI5IDI2IDggMjZIOTJDOTUuMzEzNyAyNiA5OCAyMy4zMTM3IDk4IDIwQzk4IDE2LjY4NjMgOTUuMzEzNyAxNCA5MiAxNFoiIGZpbGw9ImJsYWNrIi8+PHBhdGggZD0iTTkyIDQ0SDhDNC42ODYyOSA0NCAyIDQ2LjY4NjMgMiA1MEMyIDUzLjMxMzcgNC42ODYyOSA1NiA4IDU2SDkyQzk1LjMxMzcgNTYgOTggNTMuMzEzNyA5OCA1MEM5OCA0Ni42ODYzIDk1LjMxMzcgNDQgOTIgNDRaIiBmaWxsPSJibGFjayIvPjxwYXRoIGQ9Ik04IDc0SDkyQzk1LjMxMzcgNzQgOTggNzYuNjg2MyA5OCA4MEM5OCA4My4zMTM3IDk1LjMxMzcgODYgOTIgODZIOEM0LjY4NjI5IDg2IDIgODMuMzEzNyAyIDgwQzIgNzYuNjg2MyA0LjY4NjI5IDc0IDggNzRaIiBmaWxsPSJibGFjayIvPjwvc3ZnPg=='); 85 | $width: 50px; 86 | $height: 50px; 87 | display: block; 88 | 89 | width: $width; 90 | height: $height; 91 | background-repeat: no-repeat; 92 | background-size: $width $height; 93 | cursor: pointer; 94 | &:hover { 95 | transform: scale(1.1); 96 | transition: all ease 500ms; 97 | } 98 | } 99 | input:checked + nav { 100 | z-index: 2; 101 | flex-direction: column; 102 | .MenuIcon { 103 | background-image: url('data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjMwMHB4IiB3aWR0aD0iMzAwcHgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiB4PSIwcHgiIHk9IjBweCI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik02LjcwNzExIDUuMjkyODlDNi4zMTY1OCA0LjkwMjM3IDUuNjgzNDIgNC45MDIzNyA1LjI5Mjg5IDUuMjkyODlDNC45MDIzNyA1LjY4MzQyIDQuOTAyMzcgNi4zMTY1OCA1LjI5Mjg5IDYuNzA3MTFMMTAuNTg1OCAxMkw1LjI5Mjg5IDE3LjI5MjlDNC45MDIzNyAxNy42ODM0IDQuOTAyMzcgMTguMzE2NiA1LjI5Mjg5IDE4LjcwNzFDNS42ODM0MiAxOS4wOTc2IDYuMzE2NTggMTkuMDk3NiA2LjcwNzExIDE4LjcwNzFMMTIgMTMuNDE0MkwxNy4yOTI5IDE4LjcwNzFDMTcuNjgzNCAxOS4wOTc2IDE4LjMxNjYgMTkuMDk3NiAxOC43MDcxIDE4LjcwNzFDMTkuMDk3NiAxOC4zMTY2IDE5LjA5NzYgMTcuNjgzNCAxOC43MDcxIDE3LjI5MjlMMTMuNDE0MiAxMkwxOC43MDcxIDYuNzA3MTFDMTkuMDk3NiA2LjMxNjU4IDE5LjA5NzYgNS42ODM0MiAxOC43MDcxIDUuMjkyODlDMTguMzE2NiA0LjkwMjM3IDE3LjY4MzQgNC45MDIzNyAxNy4yOTI5IDUuMjkyODlMMTIgMTAuNTg1OEw2LjcwNzExIDUuMjkyODlaIiBmaWxsPSJibGFjayIvPjwvc3ZnPg=='); 104 | } 105 | 106 | .headerItem:hover ul { 107 | opacity: 1; 108 | visibility: visible; 109 | z-index: 1; 110 | } 111 | 112 | .headerItem { 113 | display: block; 114 | & > a { 115 | padding: 18px; 116 | background-color: darken($darkprimary, 10); 117 | display: block; 118 | color: white; 119 | } 120 | a:hover { 121 | background-color: lighten($darkprimary, 10); 122 | } 123 | ul { 124 | transition: visibility 0s, opacity 0.3s linear; 125 | position: relative; 126 | opacity: 1; 127 | visibility: visible; 128 | list-style: none; 129 | margin: 0; 130 | padding: 0; 131 | li { 132 | background-color: $darkprimary; 133 | padding: 18px; 134 | border-bottom: 1px solid black; 135 | color: white; 136 | &:hover { 137 | background-color: darken($darkprimary, 10); 138 | opacity: 1; 139 | } 140 | } 141 | } 142 | } 143 | } 144 | } 145 | input { 146 | display: none; 147 | } 148 | box-shadow: 0px 2px 1px rgb(139, 136, 136); 149 | } -------------------------------------------------------------------------------- /src/pages/learn/events.mdx: -------------------------------------------------------------------------------- 1 | import Layout from '../../components/Layout' 2 | import TabTracks from '../../components/TabTracks' 3 | import { LearnPageSidebarLinks, TabGallery } from '../../helpers/constants' 4 | import EEWLogo from "../../images/eew-logo-small.png" 5 | 6 | import VideoThumbnail from '../../images/eew-public-workshop.png' 7 | 8 | 9 | 10 | # EEW Events 11 | 12 | EDGI's EEW events engage members of the public in the process of report-making, from delving into the data science and running Jupyter Notebooks to sharing stories about their home areas. Over the summer, we co-hosted workshops with the [Sunrise Movement Boston Hub](http://www.facebook.com/SunriseBoston/), as well as a four-part public workshop series dedicated to the completion of [EEW Congressional Report Cards](https://www.environmentalenforcementwatch.org/reports) for two key committees. In commitment to the principles of EDJ, all of our code and data are available on EDGI’s [GitHub](https://github.com/edgi-govdata-archiving/ECHO-Cross-Program), an open-source coding platform. Find recordings of past EEW events below, including our headlining [Democratizing Data: Panel Discussion & Report Release](https://youtu.be/9Ot7uFA4ucQ) webinar which was held on October 22nd. 13 | 14 | A screenshot of participants from one of our events. 15 | 16 | ## Recordings of past events: 17 | * [Democratizing Environmental Data: Panel Discussion & Report Release (10/22/2020)](https://youtu.be/9Ot7uFA4ucQ) 18 | * [EEW Public Hours workshop 4 (9/10/2020)](https://www.youtube.com/watch?v=dUV3NweSWTs&list=PLtsP3g9LafVv78TIa42xr591-4CfKMYQO&index=21&t=212s) 19 | * [EEW Public Hours workshop 1 (8/20/2020)](https://www.youtube.com/watch?v=Gp1aDeXMays&list=PLtsP3g9LafVv78TIa42xr591-4CfKMYQO&index=31) 20 | * [Sunrise Boston Hub workshop (7/18/2020)](https://www.youtube.com/watch?v=rCs35rmDo9c&list=PLtsP3g9LafVv78TIa42xr591-4CfKMYQO&index=49&t=1678s) 21 | 22 | # You can EEW, too. 23 | Importantly, these workshops are not meant to center EDGI or the EEW team. Rather, we hope that every workshop will be co-hosted by one or more partner organizations: community groups, national environmental watchdogs, research hubs, and everything in between. We are here to help you answer pressing questions and create materials and networks that support your advocacy and organizing efforts. 24 | 25 | EEW workshops begin with collective report-making through the Jupyter Notebooks, followed by breakout sessions into different tracks based on participants’ own skills and interests. The outcomes of the various tracks will then be compiled into a single report that is informative, visually interesting, and oriented toward community action. Building on the Congressional Report Cards project, we aim to compile EEW reports into an interactive map or repository to demonstrate the power of collective action and data stewardship in addressing unchecked environmental violence. Additionally, we encourage—and can help facilitate—partners and participants to develop other creative outcomes and demonstrations from these workshops. 26 | 27 | 28 | 29 | EEW Logo 30 | 31 | # EEW Data Tools & Event Structure 32 | ECHO includes compliance data on air, water, and hazardous waste laws for all facilities permitted to emit, store, and use hazardous materials. It also includes data on inspections and enforcement actions taken by EPA and state agencies. It is the first database to publicly share federal environmental enforcement data. However, the website itself can be hard for non-specialists to use and understand. To increase ECHO’s public accessibility, the EEW team is developing a series of [Jupyter Notebooks](https://docs.google.com/document/d/1fAWoUbsISSV-tFZvASbTDE6KRl6Hkeu4p-N2jpQFmt0/edit)—collaborative, open-source data analysis tools—so people can use this information from ECHO to make customizable reports on pollution from facilities in areas of interest. 33 | These can gather information about EPA inspections of these sites, whether facilities are complying with federal regulations, and if EPA has responded to violations with enforcement actions. We’ve already written the code to generate reports based on the data—during the workshops, participants simply run the notebook to generate a report for their area of interest. **No coding or data science experience is needed!** 34 | 35 | So far, we have developed Notebooks that generate several different types of report metrics, all of which can be found in [EDGI’s GitHub repositories](https://github.com/edgi-govdata-archiving/ECHO-Cross-Program). One gathers data on facility inspections, violations, and enforcement actions for three different regulatory statutes [CAA](https://www.epa.gov/laws-regulations/summary-clean-air-act), [CWA](https://www.epa.gov/laws-regulations/summary-clean-water-act), [RCRA](https://www.epa.gov/laws-regulations/summary-resource-conservation-and-recovery-act) at the zip-code, congressional district, and county level. Another allows users to investigate a specific facility of concern across the same three regulatory statutes. A specialized notebook was developed to analyze declining enforcement during the COVID-19 crisis in order to supplement [EDGI’s COVID Enforcement Report](https://envirodatagov.org/more-permission-to-pollute-the-decline-of-epa-enforcement-and-industry-compliance-during-covid/). 36 | 37 | 38 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | [![Code of Conduct](https://img.shields.io/badge/%E2%9D%A4-code%20of%20conduct-blue.svg?style=flat)](https://github.com/edgi-govdata-archiving/overview/blob/master/CONDUCT.md) 2 | [![Workflow Status](https://github.com/edgi-govdata-archiving/EEW-Website/workflows/Github%20Pages%20Deploy/badge.svg)](https://github.com/edgi-govdata-archiving/EEW-Website/actions?query=workflow%3A%22Github+Pages+Deploy%22) 3 | 4 | # EEW Website 5 | 6 | The environmentalenforcementwatch.org website for the [Environmental Enforcement Watch](//environmentalenforcementwatch.org) project by [EDGI](//envirodatagov.org) 7 | 8 | Staging site at [staging.environmentalenforcementwatch.org](//staging.environmentalenforcementwatch.org) 9 | 10 | ## For site maintainers 11 | ### Where to edit content 12 | * Content is located in markdown files (`.md`) in the folder `content` > subfolder [name of the page]. *If you are not a coder, this will usually be the place to go to make edits!* 13 | * Images that go with a particular page should go into the same folder as the `.md` file 14 | * Other places content might be: 15 | * In that same folder, a `.json` file might have some additional content that will show up on that page 16 | * `src/pages` and then the appropriately named `.js` file (this is the file that tells the information from the `.json` file and the `.md` file where and how to show up) 17 | * Styling in general is in a `.css` file. The main one is in `src/global.css.js`. But it might also be in the `.js` file in `src` 18 | * If this is all very obscure and overwhelming for you, that's ok! Just make sure to do your work in a [branch](https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/about-branches) and submit it via a [pull request](https://docs.github.com/en/articles/about-pull-requests) and then we can review it before it goes live. 19 | 20 | ### Adding images to .md page content 21 | * Images should be uploaded to the same folder as the Markdown file they are used in (for example, an image on the homepage should be put in content/home). 22 | * If you're not comfortable with coding on your computer, you can use Github's [Upload Files](https://docs.github.com/en/github/managing-files-in-a-repository/adding-a-file-to-a-repository) functionality. Just make sure to put your image in the correct folder! 23 | * From a Markdown (.md) content file, you can now use [Markdown syntax](https://daringfireball.net/projects/markdown/syntax#img) to link your image based on its location relative to the content file ("relative filepath"). This will look like `![alt text for image](./my-image.png)`. The `./` part means that the image is in the same folder as the file you're referencing it from. 24 | * Don't forget to fill in the alt text! The image will render without it, but it's important to have a text description of the image for screen readers and in case the image fails to load properly. 25 | 26 | ## For developers 27 | ### Toolset 28 | * Written in [Gatsby](https://www.gatsbyjs.org/), a Node React framework 29 | * Hosted on Namecheap 30 | * Continuous deployment uses Github Actions 31 | 32 | ### Deployment 33 | #### Continuous deployment 34 | This site deploys automatically to [staging](//staging.environmentalenforcementwatch.org) upon merge to `main`, and to [production](//environmentalenforcementwatch.org) upon tagged release. 35 | 36 | You can see automatic deployment status in the badge at the top of this readme. To debug, check the Actions tab of this repo. 37 | 38 | ##### Staging 39 | Staging automatic deployment configuration can be found in `.github/workflows/continuous-integration-workflow.yml`. 40 | 41 | Upon merge to main, the staging Github Action is triggered which builds the site to the gh-pages branch and ftp deploys it to [staging.environmentalenforcementwatch.org](staging.environmentalenforcementwatch.org) 42 | 43 | ##### Production 44 | Production automatic deployment configuration can be found in `.github/workflows/release-to-production.yml`. 45 | 46 | Upon a tagged release (through the “Releases” section of the repo), production Github action is triggered which ftp deploys the gh-pages branch to [environmentalenforcementwatch.org](//environmentalenforcementwatch.org) 47 | 48 | ### Local development 49 | 0. (If you're just learning, it would be a good idea to get familiar with the command line. Here's a [1-page tutorial](https://tessel.github.io/t2-start/cmd.html), and here's a [video demo](https://www.loom.com/share/7b8008ac9cd649f6beae77bf389cee0d)) 50 | 1. Make sure you have [Node](https://nodejs.org/en/download/) installed ([Video demo](https://www.loom.com/share/f626ad35facb4ead92b2ccb476932ac0)) 51 | 1. Create a local clone of this repo ([Video demo](https://www.loom.com/share/cfbd2d4bbc394d30995510f474ee121b)) 52 | 1. In a local clone of this repo, run `npm install` to install dependencies ([Video demo](https://www.loom.com/share/7a2fd8adeb59429392b5d989ebf8f91a)) 53 | 1. You will need the Gatsby CLI tool: `npm install -g gatsby-cli` 54 | 1. Run locally with `gatsby develop` (defaults to [http://localhost:8000/](http://localhost:8000/)) ([Video demo](https://www.loom.com/share/54a372833f134220b852ca34e84e5d58)) 55 | 56 | [Gatsby quickstart docs](https://www.gatsbyjs.org/docs/quick-start/) 57 | 58 | ## License & Copyright 59 | 60 | Copyright (C) 2020 Environmental Data and Governance Initiative (EDGI) 61 | 62 | Creative Commons Licence
EEW website is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. 63 | 64 | See the [`LICENSE`](/LICENSE) file for details. 65 | -------------------------------------------------------------------------------- /src/pages/about/index.mdx: -------------------------------------------------------------------------------- 1 | import Layout from '../../components/Layout' 2 | import { AboutSidebarLinks } from '../../helpers/constants' 3 | import EDGILogo from "../../images/EDGI-logo.png" 4 | import EEWLogo from "../../images/eew-logo-small.png" 5 | 6 | 7 | 8 | # About Environmental Enforcement Watch 9 | 10 | **Environmental Enforcement Watch (EEW)** is a collaborative project across Environmental Data & Governance Initiative (EDGI)’s working groups seeking to bring people together from different backgrounds to analyze and engage with the data from the Environmental Protection Agency’s Enforcement and Compliance History Online (ECHO) database. 11 | 12 | The EEW project builds on EDGI’s 2019 Sheep in the Closet report that documents large declines in EPA enforcement of environmental laws. It is also inspired by the Open Water Data project, which visualizes Clean Water Act violations with floating lanterns in a community art event developed by EDGI co-founder Sara Wylie, Laura Perovich, and the environmental justice organization GreenRoots. Both projects use data from the EPA’s Enforcement and Compliance History Online (ECHO) database, demonstrating how useful ECHO can be for communities to track pollution and EPA responses in their areas. However, the projects also reveal ECHO's inaccessibility for non-specialists, along with many omissions, errors, and confusions present in the data itself. EEW aims to make ECHO data more readily accessible and meaningful for impacted communities while highlighting how ECHO data can be improved. 13 | 14 | EEW Logo 15 | 16 | ## Our Goals 17 | * Draw large-scale public attention to the lack of environmental enforcement. 18 | * Work with partner organizations, especially marginalized communities, to build data efficacy through mutually beneficial relationships 19 | * Inform EPA visions of alternative forms of public engagement 20 | * Prototype community-oriented structures for environmental data, i.e. by congressional district, watershed, and health risks for a community 21 | * Bring attention to the relationship between environmental enforcement, environmental racism, and other interlocking forms of oppression (particularly white supremacy, capitalism, settler-colonialism, heteropatriarchy, etc.) 22 | 23 | Environmental Data and Governance Initiative logo 24 | 25 | ## The Environmental Data and Governance Initiative 26 | EDGI is an international network of over 175 members from more than 80 different academic institutions and non-profits, comprised primarily of grassroots volunteer efforts. Since 2016, EDGI has served as a preeminent watchdog group for federal environmental data, generating international efforts to duplicate and monitor repositories of public data vital to environmental health research and knowledge. 27 | 28 | EDGI’s work has been widely acknowledged, leading to EDGI members testifying before Congress on declines in EPA enforcement, and hundreds of mentions in leading national and international media such as *The New York Times*, *The Washington Post*, *Vice News*, and *CNN*. For more about our work, read our 2020 Annual Report and 2019 Annual Report. 29 | 30 | ## Environmental Data Justice 31 | A lot of the work in EEW stems from EDGI’s work around “Environmental Data Justice,” or EDJ. EDJ promotes the production and use of environmental data in ways that challenge structures of oppression like fascism, racism, heteropatriarchy, and classism. We believe that data should serve communities and not just corporate polluters. We also believe that communities should have more resources for collecting and analyzing environmental data while retaining the power to decide what they do with it. You can read more about EDJ and find some related readings in the EDJ Syllabus here. 32 | 33 | ## EEW’s Domains of Care 34 | EEW is organized around domains of care, with each collaborator on the project supporting one or more dimensions that we collectively agree is vital to working toward EDGI’s mission, vision, and values. In particular, we aim to build a culture of collaboration that enacts our values as well as processes that help “realize a world that creates and maintains healthy, just, bountiful, and beautiful environs in which people thrive.” 35 | 36 | **Internal Care**: Respectful, collaborative relations between us are core to our success. The work of internal care involves ensuring a shared, collective workflow where people are aware of each other and in which everyone has a role, feels valued, can share their concerns, and which is adaptable enough to adjust based on feedback. We also work to keep the rest of EDGI informed about EEW and balance EEW with the needs and priorities of EDGI’s other projects. 37 | 38 | **External Care**: EEW's overall goal is to express collective care for human and non-human environmental health. EDGI is collectively responsible for this work, so communication around it needs to be coordinated, consensus-based, fair, accurate, and responsible. We also seek to form mutually supportive collaborations with partner organizations. 39 | 40 | **Data Care**: Data is core to our organizational ethics around Data Justice. Data Care involves ensuring that data are traceable, cited, accurate, and reported responsibly. 41 | 42 | **Research Care**: There is no such thing as “raw data.” Research care involves contextualizing our data with further research, supporting our arguments with citable evidence and combining different forms of knowledge to present useful insights. Research care involves reviewing and fact-checking our work and revising based on feedback. 43 | 44 | **Event Care**: EEW Events bring people together to hear each other and work together; they are crucial social elements of our work. Participants need to be welcomed, supported to collaborate effectively, and work should be enjoyable and valuable. Our event care work should build participants’ sense of efficacy and ensure mutually respectful conduct. 45 | 46 | Rather than presenting a hierarchical representation of contributions, below we diagram our collective authorship in accordance with EDGI’s authorship protocol: 47 | 48 | 49 | -------------------------------------------------------------------------------- /src/pages/data/reports.mdx: -------------------------------------------------------------------------------- 1 | import Layout from '../../components/Layout' 2 | import { DataPageSidebarLinks } from '../../helpers/constants' 3 | import CycleDiagram from "../../images/report-card-tracker.png" 4 | import { Link } from 'gatsby' 5 | import ReportCardExplorer from '../../components/ReportCardExplorer'; 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | # Congressional Report Cards 14 | 15 | Ver esta página en español 16 | 17 | Two key congressional committees oversee the EPA to ensure it meets its mandate: the House Energy and Commerce Committee and the Senate Environment and Public Works Committee. 18 | 19 | EEW Congressional Report Cards analyze and present data on violations of environmental laws, inspections of polluting facilities, and enforcement actions by the EPA, to give the members of these Congressional committees–and their constituents–the chance to evaluate whether the EPA is fulfilling its mandate in their state/district. 20 | 21 | To view our summary report of all districts and states analyzed, see: 22 | 23 | Summary Report – Democratizing Data: Environmental Enforcement Watch's Report Cards for Congressional Oversight of the EPA 24 | 25 | ## Individual report cards 26 | 27 | Below, **hover** to see the name and rank of a representative; **click** to open a full report on EPA enforcement in the representative's district or state: 28 | 29 | 30 | 31 | 32 | 33 | ### Concerned about this data? 34 | 35 | Write to your representatives 36 | 37 | Social Media Kit 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | ## About EEW Report Cards 46 | The Senate Environment and Public Works Committee and the House Energy and Commerce Committee have jurisdiction over the EPA. The EPA is mandated to enforce environmental laws such as the: 47 | 48 | * Clean Water Act (CWA) 49 | * Clean Air Act (CAA) 50 | * Resource Conservation and Recovery Act (RCRA) 51 | 52 | A cycle diagram demonstrating how Congress mandates EPA, the EPA issues and enforces permits to facilities that pollute, the ECHO database stores compliance data about these facilities, EEW makes ECHO data easier to understand and EEW works with communities to make environmental compliance report cards which pushes on congress to enforce environmental enforcement through the EPA 53 | 54 | So far, we’ve generated reports for the congressional districts of each Representative on the House Energy and Commerce Committee, and for the state of each Senator on the Environment and Public Works Committee. These two committees are responsible for oversight of the EPA, an agency with a congressional mandate to enforce environmental laws. On October 22nd, 2020, we hosted a webinar outlining the findings from our Congressional Report Cards and the corresponding summary report, with invaluable regulatory and political context provided by our amazing panelists. **Click here to view the recording.** Our goal is to shed light on the chronic and routine violations of environmental laws and the failure of EPA to enforce them. 55 | 56 | ## Why Enforcement Matters 57 | The EPA is mandated by Congress to enforce environmental laws. With the [EEW workshops](/events), we aim to draw attention to the large gaps in effective enforcement of environmental laws. By mobilizing community expertise, public engagement and education, compelling material evidence, and an ethic of care, we can pressure our elected officials and local industries to put health and justice before power and profit. 58 | 59 | According to Cynthia Giles, former Assistant Administrator of EPA’s Office of Enforcement and Compliance Assurance, over 25% of all registered facilities are regularly in significant violation of their environmental permits across all programs with available compliance data. And, for programs with the most significant health impacts, “significant violation rates of 50-70% are not unusual” (Harvard Law School). Significant non-compliance happens when industries emit hazardous pollutants or fail to report emissions over their permit limits for 6+ months consecutively. Non-compliance has always been an issue and has ramped up even further due to the erosion of EPA funding and enforcement under the Trump Administration (EDGI). Between 2006 and 2018, enforcement funding and staff dropped by 18% and 21% respectively (EPA). Between 2007 and 2018, both initiated and concluded enforcement actions dropped by more than 50% (EPA). Now more than ever, local regulators and affected communities are unable to hold polluters accountable to longstanding laws. 60 | 61 | Black, Latinx, Indigenous, and low-income communities—among other historically marginalized groups—face disproportionate exposure to hazardous waste sites and polluting industries (Bullard & Wright). These industries have undue influence in the writing and development of regulations, leading to emissions standards that are not health-protective (The Intercept). Even still, many industrial facilities fail to comply with these insufficient regulations. The financial penalties for doing so represent just a small fraction of their profits in the unlikely case that these penalties are enforced at all. This crisis of non-compliance, coupled with already-inadequate regulations, represents a systematic and deliberate choice to ignore environmental and human health. We aim for EEW workshops to call attention to these systematic gaps in enforcement using available public data from the ECHO website. 62 | 63 | 64 | -------------------------------------------------------------------------------- /src/pages/data/reports-es.mdx: -------------------------------------------------------------------------------- 1 | import Layout from '../../components/Layout' 2 | import { DataPageSidebarLinks } from '../../helpers/constants' 3 | import CycleDiagramSpanish from "../../images/report-card-tracker-es.png" 4 | import { Link } from 'gatsby' 5 | 6 | 7 | 8 | # Boleta de calificaciones a nivel Congresual 9 | See this page in English 10 | 11 | Hay dos comités del Congreso que supervisan la EPA para garantizar que cumpla con su mandato: el Comité de Energía y Comercio de la Cámara de Representantes y el Comité de Obras Públicas y Medio Ambiente del Senado. 12 | 13 | Las Boletas de Calificaciones del Congreso de EEW analizan y presentan datos sobre las violaciones de las leyes ambientales, las inspecciones de instalaciones contaminantes y las acciones de cumplimiento por parte de la EPA, para darles a los miembros de estos comités del Congreso, y a sus constituyentes, la oportunidad de evaluar si la EPA está cumpliendo con su mandato en su estado / distrito. 14 | 15 | Para ver nuestro informe resumido de todos los distritos y estados analizados, consulte: 16 | 17 | Resumen del Informe (en ingles): Democratizing Data: Environmental Enforcement Watch's Report Cards for Congressional Oversight of the EPA 18 | 19 | ## Boletas de calificaciones individuales 20 | 21 | A continuación, ** coloque el cursor ** para ver el nombre y rango de un representante; ** haga clic ** para abrir un informe completo sobre la aplicación de la EPA en el distrito o estado del representante en español: 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | ### ¿Le preocupan estos datos? 32 | 33 | Escribale a sus representantes 34 | 35 | Kit para redes sociales 36 | 37 | ## Acerca de las boletas de calificaciones de EEW 38 | El Comité de Obras Públicas y Medio Ambiente del Senado y el Comité de Energía y Comercio de la Cámara de Representantes tiene jurisdicción sobre la EPA. La EPA hace cumplir las leyes ambientales como: 39 | 40 | * La Ley de Agua Limpia (CWA) 41 | * La Ley de Aire Limpio (CAA) 42 | * La Ley de Conservación y Recuperación de Recursos (RCRA) 43 | 44 | Un diagrama de un ciclo que demuestra cómo el Congreso da mandatos a la EPA, la EPA da permisos para contaminar y también hace cumplir estos permisos para las instalaciones que contaminan, la base de datos de ECHO almacena datos de cumplimiento de leyes ambientales sobre estas instalaciones, EEW hace que los datos de ECHO sean más fáciles de entender y EEW trabaja con las comunidades para crear boletas de calificaciones de cumplimiento ambiental, lo que presiona al Congreso para que haga cumplir la aplicación ambiental a través de la EPA 45 | 46 | Hasta ahora, hemos generado informes para los distritos del Congreso de cada Representante en el Comité de Energía y Comercio de la Cámara de Representantes, y para el estado de cada Senador del Comité de Medio Ambiente y Obras Públicas. Estos dos comités son responsables por la supervisión de la EPA, una agencia bajo el Congreso, que esta a cargo de aplicar las leyes ambientales. El 22 de octubre de 2020, organizamos un seminario web en el que se describían los hallazgos de nuestras Boletas de calificaciones del Congreso y el resumen del informe, con un invaluable contexto normativo y político proporcionado por nuestros increíbles panelistas. **Haga clic aquí para ver la grabación.** Nuestro objetivo es traer atención a las violaciones crónicas y rutinarias de leyes ambientales y la insuficiencia de la EPA al aplicar estas leyes. 47 | 48 | ## Por qué es importante el cumplimiento 49 | La EPA tiene el mandato del Congreso para hacer cumplir las leyes ambientales. Con los [talleres EEW](/events), nuestro objetivo es traer atención a las grandes brechas en la aplicación efectiva de las leyes ambientales. Al movilizar la experiencia de la comunidad, la participación pública y la educación, la evidencia material convincente y una ética de cuidado, podemos presionar a nuestros representantes y a las industrias locales para que den prioridad a la salud y a la justicia antes que al poder y las ganancias. 50 | 51 | Según Cynthia Giles, la ex administradora adjunta de la Oficina de Control de Cumplimiento y Aplicación de la EPA, más del 25% de todas las instalaciones registradas infringen regularmente sus permisos ambientales en todos los programas con datos de cumplimiento disponibles. Y, para los programas con los impactos en la salud más significativos, “no son inusuales las tasas de infracción significativas del 50-70%” (Harvard Law School). El incumplimiento significativo ocurre cuando las industrias emiten contaminantes peligrosos o no reportan emisiones por encima de los límites de su permiso durante más de 6 meses consecutivos. El incumplimiento siempre ha sido un problema y ha aumentado aún más debido a la erosión de la financiación y la aplicación de la EPA bajo la Administración Trump (EDGI). Entre 2006 y 2018, la financiación de la aplicación de estas leyes y el personal se redujeron en un 18% y un 21% respectivamente (EPA). Entre 2007 y 2018, las acciones de aplicación iniciadas y concluidas se redujeron en más del 50% (EPA). Ahora más que nunca, los reguladores locales y las comunidades afectadas no pueden responsabilizar a los contaminadores por las leyes de larga data. 52 | 53 | Las comunidades negras, latinx, indígenas y de bajos ingresos, entre otros grupos históricamente marginados, están expuestos de manera desproporcionada a sitios de desechos peligrosos e industrias contaminantes (Bullard & Wright). Estas industrias tienen una influencia indebida en la escritura y el desarrollo de regulaciones, lo que causa que los estándares de emisiones no protejan la salud (The Intercept). Aún así, muchas instalaciones industriales no cumplen con estas regulaciones insuficientes. Las sanciones financieras solo representan una fracción pequeña de sus ganancias en el caso improbable de que estas sanciones se apliquen. Esta crisis de incumplimiento, junto con las regulaciones inadecuadas, representa una elección sistemática y deliberada de ignorar la salud ambiental y humana. Nuestro objetivo es que los talleres de EEW traigan atención a estas brechas sistemáticas en la aplicación de leyes ambientales, utilizando datos públicos disponibles de ECHO. 54 | 55 | 56 | -------------------------------------------------------------------------------- /src/helpers/constants.js: -------------------------------------------------------------------------------- 1 | import reportLogo from '../images/gallery/report-making.png' 2 | import dataVizLogo from "../images/gallery/data-viz.png" 3 | import researchTracksLogo from "../images/gallery/research-tracks.png" 4 | import storyGatheringLogo from "../images/gallery/story-gathering.png" 5 | import dataScienceLogo from "../images/gallery/data-science.png" 6 | 7 | export const HeaderLinks = [ 8 | { 9 | text: "Home", 10 | url: "/", 11 | }, 12 | { 13 | text: "Data", 14 | url: "/data/reports", 15 | sublinks: [ 16 | { 17 | text: "Congressional Report Cards", 18 | url: "/data/reports", 19 | }, 20 | { 21 | text: "Notebooks", 22 | url: "/data/notebooks", 23 | }, 24 | { 25 | text: "Research", 26 | url: "/data/research", 27 | }, 28 | { 29 | text: "External Resources", 30 | url: "/data/external-resources", 31 | }, 32 | ], 33 | }, 34 | { 35 | text: "Learn", 36 | url: "/learn/events", 37 | sublinks: [ 38 | { 39 | text: "Events", 40 | url: "/learn/events", 41 | }, 42 | { 43 | text: "Tutorials", 44 | url: "/learn/tutorials", 45 | }, 46 | ], 47 | }, 48 | { 49 | text: "About", 50 | url: "/about", 51 | sublinks: [ 52 | { 53 | text: "People", 54 | url: "/about/people", 55 | }, 56 | { 57 | text: "Funding", 58 | url: "/about/funding", 59 | }, 60 | { 61 | text: "Press", 62 | url: "/about/press", 63 | }, 64 | { 65 | text: "Contact", 66 | url: "/about/contact", 67 | }, 68 | { 69 | text: "FAQ", 70 | url: "/about/faq", 71 | }, 72 | ], 73 | }, 74 | { 75 | text: "Blog", 76 | url: "https://envirodatagov.org/tag/eew/", 77 | }, 78 | { 79 | text: "EDGI", 80 | url: "https://envirodatagov.org", 81 | }, 82 | ]; 83 | 84 | export const AboutSidebarLinks = [ 85 | { 86 | text: "About", 87 | url: "/about", 88 | }, 89 | { 90 | text: "People", 91 | url: "/about/people", 92 | }, 93 | { 94 | text: "Funding", 95 | url: "/about/funding", 96 | }, 97 | { 98 | text: "Press", 99 | url: "/about/press", 100 | }, 101 | { 102 | text: "Contact", 103 | url: "/about/contact", 104 | }, 105 | { 106 | text: "FAQ", 107 | url: "/about/faq", 108 | }, 109 | ]; 110 | 111 | export const LearnPageSidebarLinks = [ 112 | { 113 | text: "Events", 114 | url: "/learn/events/", 115 | }, 116 | { 117 | text: "Tutorials", 118 | url: "/learn/tutorials", 119 | }, 120 | ]; 121 | 122 | export const DataPageSidebarLinks = [ 123 | { 124 | text: "Congressional Report Cards", 125 | url: "/data/reports", 126 | }, 127 | { 128 | text: "Notebooks", 129 | url: "/data/notebooks", 130 | }, 131 | { 132 | text: "Research", 133 | url: "/data/research", 134 | }, 135 | { 136 | text: "External Resources", 137 | url: "/data/external-resources", 138 | }, 139 | ]; 140 | 141 | export const CongressReportCardData = { 142 | "houseData": [ 143 | { 144 | "rank":"Chair", 145 | "state":"NJ", 146 | "district": "06", 147 | "name":"Frank Pallone", 148 | "affil":"Democrat", 149 | "reportStatus":"completed", 150 | "url":"https://edgi-govdata-archiving.github.io/CD-report/NJ6_2020" 151 | }, 152 | { 153 | "rank":"Member", 154 | "state":"AZ", 155 | "district": "01", 156 | "name":"Tom O'Halleran", 157 | "affil":"Democrat", 158 | "reportStatus":"completed", 159 | "url":"https://edgi-govdata-archiving.github.io/CD-report/AZ1_2020" 160 | }, 161 | { 162 | "rank":"Member", 163 | "state":"FL", 164 | "district": "09", 165 | "name":"Darren Soto", 166 | "affil":"Democrat", 167 | "reportStatus":"completed", 168 | "url":"https://edgi-govdata-archiving.github.io/CD-report/FL9_2020" 169 | }, 170 | { 171 | "rank":"Member", 172 | "state":"CA", 173 | "district": "09", 174 | "name":"Jerry McNerney", 175 | "affil":"Democrat", 176 | "reportStatus":"completed", 177 | "url":"https://edgi-govdata-archiving.github.io/CD-report/CA9_2020" 178 | }, 179 | { 180 | "rank":"Member", 181 | "state":"TX", 182 | "district": "33", 183 | "name":"Marc Veasey", 184 | "affil":"Democrat", 185 | "reportStatus":"completed", 186 | "url":"https://edgi-govdata-archiving.github.io/CD-report/TX33_2020" 187 | }, 188 | { 189 | "rank":"Member", 190 | "state":"VA", 191 | "district": "04", 192 | "name":"A. Donald McEachin", 193 | "affil":"Democrat", 194 | "reportStatus":"completed", 195 | "url":"https://edgi-govdata-archiving.github.io/CD-report/VA4_2020" 196 | }, 197 | { 198 | "rank":"Member", 199 | "state":"CA", 200 | "district": "44", 201 | "name":"Nanette Diaz Barragan", 202 | "affil":"Democrat", 203 | "reportStatus":"completed", 204 | "url":"https://edgi-govdata-archiving.github.io/CD-report/CA44_2020" 205 | }, 206 | { 207 | "rank":"Member", 208 | "state":"NM", 209 | "district": "03", 210 | "name":"Ben Ray Lujan", 211 | "affil":"Democrat", 212 | "reportStatus":"completed", 213 | "url":"https://edgi-govdata-archiving.github.io/CD-report/NM3_2020" 214 | }, 215 | { 216 | "rank":"Member", 217 | "state":"CA", 218 | "district": "06", 219 | "name":"Doris Matsui", 220 | "affil":"Democrat", 221 | "reportStatus":"completed", 222 | "url":"https://edgi-govdata-archiving.github.io/CD-report/CA6_2020" 223 | }, 224 | { 225 | "rank":"Member", 226 | "state":"CA", 227 | "district": "29", 228 | "name":"Tony Cardenas", 229 | "affil":"Democrat", 230 | "reportStatus":"completed", 231 | "url":"https://edgi-govdata-archiving.github.io/CD-report/CA29_2020" 232 | }, 233 | { 234 | "rank":"Member", 235 | "state":"MI", 236 | "district": "12", 237 | "name":"Debbie Dingell", 238 | "affil":"Democrat", 239 | "reportStatus":"completed", 240 | "url":"https://edgi-govdata-archiving.github.io/CD-report/MI12_2020" 241 | }, 242 | { 243 | "rank":"Member", 244 | "state":"NC", 245 | "district": "01", 246 | "name":"G.K. Butterfield", 247 | "affil":"Democrat", 248 | "reportStatus":"completed", 249 | "url":"https://edgi-govdata-archiving.github.io/CD-report/NC1_2020" 250 | }, 251 | { 252 | "rank":"Member", 253 | "state":"OR", 254 | "district": "05", 255 | "name":"Kurt Schrader", 256 | "affil":"Democrat", 257 | "reportStatus":"completed", 258 | "url":"https://edgi-govdata-archiving.github.io/CD-report/OR5_2020" 259 | }, 260 | { 261 | "rank":"Member", 262 | "state":"VT", 263 | "district": "00", 264 | "name":"Peter Welch", 265 | "affil":"Democrat", 266 | "reportStatus":"completed", 267 | "url":"https://edgi-govdata-archiving.github.io/CD-report/VT00_2020" 268 | }, 269 | { 270 | "rank":"Member", 271 | "state":"IL", 272 | "district": "01", 273 | "name":"Bobby Rush", 274 | "affil":"Democrat", 275 | "reportStatus":"completed", 276 | "url":"https://edgi-govdata-archiving.github.io/CD-report/IL1_2020" 277 | }, 278 | { 279 | "rank":"Member", 280 | "state":"DE", 281 | "district": "00", 282 | "name":"Lisa Blunt Rochester", 283 | "affil":"Democrat", 284 | "reportStatus":"completed", 285 | "url":"https://edgi-govdata-archiving.github.io/CD-report/DE00_2020" 286 | }, 287 | { 288 | "rank":"Member", 289 | "state":"IL", 290 | "district": "02", 291 | "name":"Robin Kelly", 292 | "affil":"Democrat", 293 | "reportStatus":"completed", 294 | "url":"https://edgi-govdata-archiving.github.io/CD-report/IL2_2020" 295 | }, 296 | { 297 | "rank":"Member", 298 | "state":"NY", 299 | "district": "09", 300 | "name":"Yvette Clarke", 301 | "affil":"Democrat", 302 | "reportStatus":"completed", 303 | "url":"https://edgi-govdata-archiving.github.io/CD-report/NY9_2020" 304 | }, 305 | { 306 | "rank":"Member", 307 | "state":"IL", 308 | "district": "09", 309 | "name":"Janice Schakowsky", 310 | "affil":"Democrat", 311 | "reportStatus":"completed", 312 | "url":"https://edgi-govdata-archiving.github.io/CD-report/IL9_2020" 313 | }, 314 | { 315 | "rank":"Member", 316 | "state":"CO", 317 | "district": "01", 318 | "name":"Diana DeGette", 319 | "affil":"Democrat", 320 | "reportStatus":"completed", 321 | "url":"https://edgi-govdata-archiving.github.io/CD-report/CO1_2020" 322 | }, 323 | { 324 | "rank":"Member", 325 | "state":"NY", 326 | "district": "20", 327 | "name":"Paul Tonko", 328 | "affil":"Democrat", 329 | "reportStatus":"completed", 330 | "url":"https://edgi-govdata-archiving.github.io/CD-report/NY20_2020" 331 | }, 332 | { 333 | "rank":"Member", 334 | "state":"CA", 335 | "district": "52", 336 | "name":"Scott Peters", 337 | "affil":"Democrat", 338 | "reportStatus":"completed", 339 | "url":"https://edgi-govdata-archiving.github.io/CD-report/CA52_2020" 340 | }, 341 | { 342 | "rank":"Member", 343 | "state":"CA", 344 | "district": "36", 345 | "name":"Raul Ruiz", 346 | "affil":"Democrat", 347 | "reportStatus":"completed", 348 | "url":"https://edgi-govdata-archiving.github.io/CD-report/CA36_2020" 349 | }, 350 | { 351 | "rank":"Member", 352 | "state":"CA", 353 | "district": "18", 354 | "name":"Anna Eshoo", 355 | "affil":"Democrat", 356 | "reportStatus":"completed", 357 | "url":"https://edgi-govdata-archiving.github.io/CD-report/CA18_2020" 358 | }, 359 | { 360 | "rank":"Member", 361 | "state":"NY", 362 | "district": "16", 363 | "name":"Eliot Engel", 364 | "affil":"Democrat", 365 | "reportStatus":"completed", 366 | "url":"https://edgi-govdata-archiving.github.io/CD-report/NY16_2020" 367 | }, 368 | { 369 | "rank":"Member", 370 | "state":"PA", 371 | "district": "18", 372 | "name":"Michael F. Doyle", 373 | "affil":"Democrat", 374 | "reportStatus":"completed", 375 | "url":"https://edgi-govdata-archiving.github.io/CD-report/PA18_2020" 376 | }, 377 | { 378 | "rank":"Member", 379 | "state":"FL", 380 | "district": "14", 381 | "name":"Kathy Castor", 382 | "affil":"Democrat", 383 | "reportStatus":"completed", 384 | "url":"https://edgi-govdata-archiving.github.io/CD-report/FL14_2020" 385 | }, 386 | { 387 | "rank":"Member", 388 | "state":"MD", 389 | "district": "03", 390 | "name":"John Sarbanes", 391 | "affil":"Democrat", 392 | "reportStatus":"completed", 393 | "url":"https://edgi-govdata-archiving.github.io/CD-report/MD3_2020" 394 | }, 395 | { 396 | "rank":"Member", 397 | "state":"IA", 398 | "district": "02", 399 | "name":"David Loebsack", 400 | "affil":"Democrat", 401 | "reportStatus":"completed", 402 | "url":"https://edgi-govdata-archiving.github.io/CD-report/IA2_2020" 403 | }, 404 | { 405 | "rank":"Member", 406 | "state":"MA", 407 | "district": "04", 408 | "name":"Joseph P. Kennedy", 409 | "affil":"Democrat", 410 | "reportStatus":"completed", 411 | "url":"https://edgi-govdata-archiving.github.io/CD-report/MA4_2020" 412 | }, 413 | { 414 | "rank":"Member", 415 | "state":"NH", 416 | "district": "02", 417 | "name":"Ann Kuster", 418 | "affil":"Democrat", 419 | "reportStatus":"completed", 420 | "url":"https://edgi-govdata-archiving.github.io/CD-report/NH2_2020" 421 | }, 422 | { 423 | "rank":"Ranking Member", 424 | "state":"OR", 425 | "district": "02", 426 | "name":"Greg Walden", 427 | "affil":"Republican", 428 | "reportStatus":"completed", 429 | "url":"https://edgi-govdata-archiving.github.io/CD-report/OR2_2020" 430 | }, 431 | { 432 | "rank":"Member", 433 | "state":"OH", 434 | "district": "05", 435 | "name":"Robert E. Latta", 436 | "affil":"Republican", 437 | "reportStatus":"completed", 438 | "url":"https://edgi-govdata-archiving.github.io/CD-report/OH5_2020" 439 | }, 440 | { 441 | "rank":"Member", 442 | "state":"TX", 443 | "district": "17", 444 | "name":"Bill Flores", 445 | "affil":"Republican", 446 | "reportStatus":"completed", 447 | "url":"https://edgi-govdata-archiving.github.io/CD-report/TX17_2020" 448 | }, 449 | { 450 | "rank":"Member", 451 | "state":"OH", 452 | "district": "06", 453 | "name":"Bill Johnson", 454 | "affil":"Republican", 455 | "reportStatus":"completed", 456 | "url":"https://edgi-govdata-archiving.github.io/CD-report/OH6_2020" 457 | }, 458 | { 459 | "rank":"Member", 460 | "state":"WA", 461 | "district": "05", 462 | "name":"Cathy McMorris Rodgers", 463 | "affil":"Republican", 464 | "reportStatus":"completed", 465 | "url":"https://edgi-govdata-archiving.github.io/CD-report/WA5_2020" 466 | }, 467 | { 468 | "rank":"Member", 469 | "state":"IL", 470 | "district": "15", 471 | "name":"John Shimkus", 472 | "affil":"Republican", 473 | "reportStatus":"completed", 474 | "url":"https://edgi-govdata-archiving.github.io/CD-report/IL15_2020" 475 | }, 476 | { 477 | "rank":"Member", 478 | "state":"GA", 479 | "district": "01", 480 | "name":"Buddy Carter", 481 | "affil":"Republican", 482 | "reportStatus":"completed", 483 | "url":"https://edgi-govdata-archiving.github.io/CD-report/GA1_2020" 484 | }, 485 | { 486 | "rank":"Member", 487 | "state":"MT", 488 | "district": "00", 489 | "name":"Greg Gianforte", 490 | "affil":"Republican", 491 | "reportStatus":"completed", 492 | "url":"https://edgi-govdata-archiving.github.io/CD-report/MT00_2020" 493 | }, 494 | { 495 | "rank":"Member", 496 | "state":"MI", 497 | "district": "06", 498 | "name":"Fred Upton", 499 | "affil":"Republican", 500 | "reportStatus":"completed", 501 | "url":"https://edgi-govdata-archiving.github.io/CD-report/MI6_2020" 502 | }, 503 | { 504 | "rank":"Member", 505 | "state":"IN", 506 | "district": "08", 507 | "name":"Larry Bucschon", 508 | "affil":"Republican", 509 | "reportStatus":"completed", 510 | "url":"https://edgi-govdata-archiving.github.io/CD-report/IN8_2020" 511 | }, 512 | { 513 | "rank":"Member", 514 | "state":"NC", 515 | "district": "08", 516 | "name":"Richard Hudson", 517 | "affil":"Republican", 518 | "reportStatus":"completed", 519 | "url":"https://edgi-govdata-archiving.github.io/CD-report/NC8_2020" 520 | }, 521 | { 522 | "rank":"Member", 523 | "state":"MO", 524 | "district": "07", 525 | "name":"Billy Long", 526 | "affil":"Republican", 527 | "reportStatus":"completed", 528 | "url":"https://edgi-govdata-archiving.github.io/CD-report/MO7_2020" 529 | }, 530 | { 531 | "rank":"Member", 532 | "state":"WV", 533 | "district": "01", 534 | "name":"David B. McKinley", 535 | "affil":"Republican", 536 | "reportStatus":"completed", 537 | "url":"https://edgi-govdata-archiving.github.io/CD-report/WV1_2020" 538 | }, 539 | { 540 | "rank":"Member", 541 | "state":"OK", 542 | "district": "02", 543 | "name":"Markwayne Mullin", 544 | "affil":"Republican", 545 | "reportStatus":"completed", 546 | "url":"https://edgi-govdata-archiving.github.io/CD-report/OK2_2020" 547 | }, 548 | { 549 | "rank":"Member", 550 | "state":"SC", 551 | "district": "03", 552 | "name":"Jeff Duncan", 553 | "affil":"Republican", 554 | "reportStatus":"completed", 555 | "url":"https://edgi-govdata-archiving.github.io/CD-report/SC3_2020" 556 | }, 557 | { 558 | "rank":"Member", 559 | "state":"MI", 560 | "district": "07", 561 | "name":"Tim Walberg", 562 | "affil":"Republican", 563 | "reportStatus":"completed", 564 | "url":"https://edgi-govdata-archiving.github.io/CD-report/MI7_2020" 565 | }, 566 | { 567 | "rank":"Member", 568 | "state":"VA", 569 | "district": "09", 570 | "name":"H. Morgan Griffith", 571 | "affil":"Republican", 572 | "reportStatus":"completed", 573 | "url":"https://edgi-govdata-archiving.github.io/CD-report/VA9_2020" 574 | }, 575 | { 576 | "rank":"Member", 577 | "state":"FL", 578 | "district": "12", 579 | "name":"Gus Bilirakis", 580 | "affil":"Republican", 581 | "reportStatus":"completed", 582 | "url":"https://edgi-govdata-archiving.github.io/CD-report/FL12_2020" 583 | }, 584 | { 585 | "rank":"Member", 586 | "state":"IL", 587 | "district": "16", 588 | "name":"Adam Kinzinger", 589 | "affil":"Republican", 590 | "reportStatus":"completed", 591 | "url":"https://edgi-govdata-archiving.github.io/CD-report/IL16_2020" 592 | }, 593 | { 594 | "rank":"Member", 595 | "state":"KY", 596 | "district": "02", 597 | "name":"Brett Guthrie", 598 | "affil":"Republican", 599 | "reportStatus":"completed", 600 | "url":"https://edgi-govdata-archiving.github.io/CD-report/KY2_2020" 601 | }, 602 | { 603 | "rank":"Member", 604 | "state":"TX", 605 | "district": "22", 606 | "name":"Pete Olson", 607 | "affil":"Republican", 608 | "reportStatus":"completed", 609 | "url":"https://edgi-govdata-archiving.github.io/CD-report/TX22_2020" 610 | }, 611 | { 612 | "rank":"Member", 613 | "state":"TX", 614 | "district": "26", 615 | "name":"Michael C. Burgess", 616 | "affil":"Republican", 617 | "reportStatus":"completed", 618 | "url":"https://edgi-govdata-archiving.github.io/CD-report/TX26_2020" 619 | }, 620 | { 621 | "rank":"Member", 622 | "state":"LA", 623 | "district": "01", 624 | "name":"Steve Scalise", 625 | "affil":"Republican", 626 | "reportStatus":"completed", 627 | "url":"https://edgi-govdata-archiving.github.io/CD-report/LA1_2020" 628 | }, 629 | { 630 | "rank":"Member", 631 | "state":"IN", 632 | "district": "05", 633 | "name":"Susan W. Brooks", 634 | "affil":"Republican", 635 | "reportStatus":"completed", 636 | "url":"https://edgi-govdata-archiving.github.io/CD-report/IN5_2020" 637 | }], 638 | "senateData": [ 639 | { 640 | "rank":"Chair", 641 | "state":"WY", 642 | "name":"John Barrasso", 643 | "affil":"Republican", 644 | "district": "00", 645 | "reportStatus":"completed", 646 | "url":"https://edgi-govdata-archiving.github.io/CD-report/WY_2020" 647 | }, 648 | { 649 | "rank":"Member", 650 | "state":"OK", 651 | "name":"James Inhofe", 652 | "affil":"Republican", 653 | "district": "00", 654 | "reportStatus":"completed", 655 | "url":"https://edgi-govdata-archiving.github.io/CD-report/OK_2020" 656 | }, 657 | { 658 | "rank":"Member", 659 | "state":"WV", 660 | "name":"Shelley Capito", 661 | "affil":"Republican", 662 | "district": "00", 663 | "reportStatus":"completed", 664 | "url":"https://edgi-govdata-archiving.github.io/CD-report/WV_2020" 665 | }, 666 | { 667 | "rank":"Member", 668 | "state":"ND", 669 | "name":"Kevin Cramer", 670 | "affil":"Republican", 671 | "district": "00", 672 | "reportStatus":"completed", 673 | "url":"https://edgi-govdata-archiving.github.io/CD-report/ND_2020" 674 | }, 675 | { 676 | "rank":"Member", 677 | "state":"IN", 678 | "name":"Mike Braun", 679 | "affil":"Republican", 680 | "district": "00", 681 | "reportStatus":"completed", 682 | "url":"https://edgi-govdata-archiving.github.io/CD-report/IN_2020" 683 | }, 684 | { 685 | "rank":"Member", 686 | "state":"SD", 687 | "name":"Mike Rounds", 688 | "affil":"Republican", 689 | "district": "00", 690 | "reportStatus":"completed", 691 | "url":"https://edgi-govdata-archiving.github.io/CD-report/SD_2020" 692 | }, 693 | { 694 | "rank":"Member", 695 | "state":"AK", 696 | "name":"Dan Sullivan", 697 | "affil":"Republican", 698 | "district": "00", 699 | "reportStatus":"completed", 700 | "url":"https://edgi-govdata-archiving.github.io/CD-report/AK_2020" 701 | }, 702 | { 703 | "rank":"Member", 704 | "state":"AR", 705 | "name":"John Boozman", 706 | "affil":"Republican", 707 | "district": "00", 708 | "reportStatus":"completed", 709 | "url":"https://edgi-govdata-archiving.github.io/CD-report/AR_2020" 710 | }, 711 | { 712 | "rank":"Member", 713 | "state":"MS", 714 | "name":"Roger Wicker", 715 | "affil":"Republican", 716 | "district": "00", 717 | "reportStatus":"completed", 718 | "url":"https://edgi-govdata-archiving.github.io/CD-report/MS_2020" 719 | }, 720 | { 721 | "rank":"Member", 722 | "state":"AL", 723 | "name":"Richard Shelby", 724 | "affil":"Republican", 725 | "district": "00", 726 | "reportStatus":"completed", 727 | "url":"https://edgi-govdata-archiving.github.io/CD-report/AL_2020" 728 | }, 729 | { 730 | "rank":"Member", 731 | "state":"IA", 732 | "name":"Joni Ernst", 733 | "affil":"Republican", 734 | "district": "00", 735 | "reportStatus":"completed", 736 | "url":"https://edgi-govdata-archiving.github.io/CD-report/IA_2020" 737 | }, 738 | { 739 | "rank":"Ranking Member", 740 | "state":"DE", 741 | "name":"Thomas Carper", 742 | "affil":"Democrat", 743 | "district": "00", 744 | "reportStatus":"completed", 745 | "url":"https://edgi-govdata-archiving.github.io/CD-report/DE_2020" 746 | }, 747 | { 748 | "rank":"Member", 749 | "state":"MD", 750 | "name":"Benjamin Cardin", 751 | "affil":"Democrat", 752 | "district": "00", 753 | "reportStatus":"completed", 754 | "url":"https://edgi-govdata-archiving.github.io/CD-report/MD_2020" 755 | }, 756 | { 757 | "rank":"Member", 758 | "state":"RI", 759 | "name":"Sheldon Whitehouse", 760 | "affil":"Democrat", 761 | "district": "00", 762 | "reportStatus":"completed", 763 | "url":"https://edgi-govdata-archiving.github.io/CD-report/RI_2020" 764 | }, 765 | { 766 | "rank":"Member", 767 | "state":"OR", 768 | "name":"Jeff Merkley", 769 | "affil":"Democrat", 770 | "district": "00", 771 | "reportStatus":"completed", 772 | "url":"https://edgi-govdata-archiving.github.io/CD-report/OR_2020" 773 | }, 774 | { 775 | "rank":"Member", 776 | "state":"NJ", 777 | "name":"Cory Booker", 778 | "affil":"Democrat", 779 | "district": "00", 780 | "reportStatus":"completed", 781 | "url":"https://edgi-govdata-archiving.github.io/CD-report/NJ_2020" 782 | }, 783 | { 784 | "rank":"Member", 785 | "state":"MA", 786 | "name":"Edward Markey", 787 | "affil":"Democrat", 788 | "district": "00", 789 | "reportStatus":"completed", 790 | "url":"https://edgi-govdata-archiving.github.io/CD-report/MA_2020" 791 | }, 792 | { 793 | "rank":"Member", 794 | "state":"IL", 795 | "name":"Tammy Duckworth", 796 | "affil":"Democrat", 797 | "district": "00", 798 | "reportStatus":"completed", 799 | "url":"https://edgi-govdata-archiving.github.io/CD-report/IL_2020" 800 | }, 801 | { 802 | "rank":"Member", 803 | "state":"MD", 804 | "name":"Chris Van Hollen", 805 | "affil":"Democrat", 806 | "district": "00", 807 | "reportStatus":"completed", 808 | "url":"https://edgi-govdata-archiving.github.io/CD-report/MD_2020" 809 | }, 810 | { 811 | "rank":"Member", 812 | "state":"NY", 813 | "name":"Kirsten Gillibrand", 814 | "affil":"Democrat", 815 | "district": "00", 816 | "reportStatus":"completed", 817 | "url":"https://edgi-govdata-archiving.github.io/CD-report/NY_2020" 818 | }, 819 | { 820 | "rank":"Member", 821 | "state":"VT", 822 | "name":"Bernie Sanders", 823 | "affil":"Independent", 824 | "district": "00", 825 | "reportStatus":"completed", 826 | "url":"https://edgi-govdata-archiving.github.io/CD-report/VT_2020" 827 | }] 828 | } 829 | 830 | export const TabGallery = { 831 | "title": "EEW Events", 832 | "content": "events-content.md", 833 | "eventsSnippet": "events-snippet.md", 834 | "gallery": [{ 835 | "title": "Report–Making", 836 | "copy": "All workshops begin by making a customized report on violations, inspections and enforcement of environmental laws in the congressional district, state, watershed or city of interest to participants.", 837 | "image": reportLogo 838 | }, 839 | { 840 | "title": "Data Visualization", 841 | "copy": "Brainstorm and develop different ways that data can be visualized in order to convey powerful messages used for reports, social media, classroom outreach, direct action, and more.", 842 | "image": dataVizLogo 843 | }, 844 | { 845 | "title": "Research Contextualization", 846 | "copy": "Provide location-specific context for emissions and enforcement data. Investigate facilities and locations of interest by finding news articles, community group publications, and other public documentation and incorporate relevant information into the reports.", 847 | "image": researchTracksLogo 848 | }, 849 | { 850 | "title": "Story Gathering", 851 | "copy": "Capture the reactions, thoughts, & stories of yourself and other attendees. Use these reflections to supplement data, generate research questions, and connect.", 852 | "image": storyGatheringLogo 853 | }, 854 | { 855 | "title": "Data Science", 856 | "copy": "Consider additional questions that the data can address. Expand the Jupyter notebooks to answer questions posed by participants.", 857 | "image": dataScienceLogo 858 | } 859 | ] 860 | } 861 | --------------------------------------------------------------------------------