├── .editorconfig ├── .env ├── .eslintignore ├── .eslintrc ├── .gitattributes ├── .github ├── ISSUE_TEMPLATE.md └── PULL_REQUEST_TEMPLATE.md ├── .gitignore ├── .gitmodules ├── .storybook ├── config.js └── webpack.config.js ├── .stylelintrc ├── .travis.yml ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── Dockerfile ├── EXTERNAL_DATA_SOURCES.md ├── LICENSE.md ├── MAINTAINERS.md ├── Makefile ├── README.md ├── SCRIPT.md ├── bin ├── deploy ├── publish └── run_backend.sh ├── config ├── env.js ├── jest │ ├── cssTransform.js │ └── fileTransform.js ├── paths.js ├── polyfills.js ├── webpack.config.dev.js ├── webpack.config.prod.js └── webpackDevServer.config.js ├── docker-compose.yml ├── jsconfig.json ├── package.json ├── pipeline ├── docker_image └── docker_staging_tag ├── public ├── android-icon-144x144.png ├── android-icon-192x192.png ├── android-icon-36x36.png ├── android-icon-48x48.png ├── android-icon-72x72.png ├── android-icon-96x96.png ├── apple-icon-114x114.png ├── apple-icon-120x120.png ├── apple-icon-144x144.png ├── apple-icon-152x152.png ├── apple-icon-180x180.png ├── apple-icon-57x57.png ├── apple-icon-60x60.png ├── apple-icon-72x72.png ├── apple-icon-76x76.png ├── apple-icon-precomposed.png ├── apple-icon.png ├── browserconfig.xml ├── favico.png ├── favicon-16x16.png ├── favicon-32x32.png ├── favicon-96x96.png ├── favicon.ico ├── images │ ├── AngelHack-Boston.jpg │ ├── CodeConferenceLA.jpg │ ├── ConradHollomon.jpg │ ├── Discourse_logo.png │ ├── Family-1.jpg │ ├── Family-2-mobile.png │ ├── Family-2.jpg │ ├── Family-2.png │ ├── Family-3.jpg │ ├── Family-mobile.jpg │ ├── General-Couple-Computer.jpg │ ├── General-Flag.jpg │ ├── General-Group-Coffee.jpg │ ├── General-Military-Departing.jpg │ ├── IdmeTroop.png │ ├── Mil-1.jpg │ ├── Node-Summit.jpg │ ├── RedHat-Summit.jpg │ ├── RickRein.jpg │ ├── ThinkstockPhotos-489787502.jpg │ ├── Troop.png │ ├── Utah-Meetup.jpg │ ├── Volunteer-1.jpg │ ├── aimee.jpg │ ├── gala-banner.png │ ├── icons │ │ ├── Facebook-Icon.svg │ │ ├── Flag-Icon.svg │ │ ├── GitHub-Icon.svg │ │ ├── LinkedIn-Icon.svg │ │ ├── Medal-Icon.svg │ │ ├── Road-Icon.svg │ │ ├── Shared-Icon.svg │ │ ├── Suitcase-Icon.svg │ │ ├── Twitter-Icon.svg │ │ ├── menu.svg │ │ └── newburger.png │ ├── logos.zip │ ├── moocLogos │ │ ├── edx.jpg │ │ ├── treehouse.jpg │ │ └── udacity.jpg │ ├── partnerLogos │ │ ├── apex_systems_logo.png │ │ ├── docker_logo.png │ │ ├── github_logo.png │ │ ├── hackerrank_logo.png │ │ ├── oracle_logo.png │ │ └── oreilly_logo.png │ ├── rhs2017_photo.jpg │ ├── serviceSeals │ │ ├── AirForce.png │ │ ├── AirForceReserve.png │ │ ├── Army.png │ │ ├── ArmyReserve.png │ │ ├── Navy.png │ │ ├── NavyReserve.png │ │ ├── USCG.png │ │ ├── USMC.png │ │ └── USMCReserve.png │ └── slack.png ├── index.html ├── manifest.json ├── ms-icon-144x144.png ├── ms-icon-150x150.png ├── ms-icon-310x310.png ├── ms-icon-70x70.png ├── sitemap.xml └── slack.png ├── scripts ├── build.js ├── start.js └── test.js ├── server.js ├── src ├── App.js ├── App.test.js ├── config │ └── environment.js ├── fonts │ └── PFDinDisplayPro-Reg.ttf ├── images │ ├── AngelHack-Boston.jpg │ ├── CodeConferenceLA.jpg │ ├── David_headshot_14.jpg │ ├── Discourse_logo.png │ ├── Family-1.jpg │ ├── Family-2-mobile.png │ ├── Family-2.jpg │ ├── Family-3.jpg │ ├── Family-mobile.jpg │ ├── General-Couple-Computer.jpg │ ├── General-Flag.jpg │ ├── General-Group-Coffee.jpg │ ├── General-Military-Departing.jpg │ ├── GitHubExample.png │ ├── GitHubForkButton.png │ ├── GitHubPRButton.png │ ├── GitHubPencilIcon.png │ ├── GitHubProposeButton.png │ ├── IdmeTroop.png │ ├── Jameel-Matin.jpg │ ├── Jon-Deng.jpg │ ├── Mil-1.jpg │ ├── Node-Summit.jpg │ ├── RedHat-Summit.jpg │ ├── RickRein.jpg │ ├── Sean-McBride.jpg │ ├── ThinkstockPhotos-489787502.jpg │ ├── Troop.png │ ├── Utah-Meetup.jpg │ ├── Volunteer-1.jpg │ ├── Winston.jpg │ ├── aimee.jpg │ ├── benefit-mobile.jpg │ ├── benefit.jpg │ ├── civic-x.png │ ├── colin-powell.jpg │ ├── colors │ │ ├── blue-color-palette.png │ │ ├── grey-color-palette.png │ │ ├── light-grey-color-palette.png │ │ ├── mist-color-palette.png │ │ ├── red-color-palette.png │ │ └── slate-color-palette.png │ ├── conrad_hollomon.jpg │ ├── david_molina.jpg │ ├── elmer_thomas.png │ ├── fonts │ │ ├── noto-serif-font.png │ │ └── pf-din-font.png │ ├── icons │ │ ├── Facebook-Icon.svg │ │ ├── Flag-Icon.svg │ │ ├── GitHub-Icon.svg │ │ ├── LinkedIn-Icon.svg │ │ ├── Medal-Icon.svg │ │ ├── Pinterest-Icon.svg │ │ ├── Road-Icon.svg │ │ ├── Shared-Icon.svg │ │ ├── Suitcase-Icon.svg │ │ ├── Twitter-Icon.svg │ │ ├── menu.svg │ │ └── newburger.png │ ├── img_unk.png │ ├── james_davis.jpg │ ├── lincoln.jpg │ ├── liza_rodewald.png │ ├── logos.zip │ ├── logos │ │ ├── large-blue-logo.png │ │ ├── large-blue-medal.png │ │ ├── large-logo.png │ │ ├── large-red-logo.png │ │ ├── large-red-medal.png │ │ ├── large-slate-medal.png │ │ ├── large-stacked-logo-blue.png │ │ ├── large-stacked-logo-red.png │ │ ├── large-stacked-logo.png │ │ ├── large-white-logo-blue-star.png │ │ ├── large-white-logo-red-star.png │ │ ├── large-white-logo-slate-star.png │ │ ├── large-white-logo.png │ │ ├── small-blue-logo.png │ │ ├── small-blue-medal.png │ │ ├── small-logo.png │ │ ├── small-red-logo.png │ │ ├── small-red-medal.png │ │ ├── small-slate-medal.png │ │ ├── small-stacked-logo-blue.png │ │ ├── small-stacked-logo-red.png │ │ ├── small-stacked-logo.png │ │ ├── small-white-logo-blue-star.png │ │ ├── small-white-logo-red-star.png │ │ ├── small-white-logo-slate-star.png │ │ └── small-white-logo.png │ ├── mark_kerr.jpg │ ├── moocLogos │ │ ├── edx.jpg │ │ ├── treehouse.jpg │ │ └── udacity.jpg │ ├── nodejs.png │ ├── operation-code-seattle-meetup.jpg │ ├── partnerLogos │ │ ├── apex_systems_logo.png │ │ ├── docker_logo.png │ │ ├── github_logo.png │ │ ├── hackerrank_logo.png │ │ ├── logo_topcoder_with_name.svg │ │ ├── oracle_logo.png │ │ ├── oreilly_logo.png │ │ └── zapier_logo.png │ ├── policy.jpg │ ├── rhs2017_photo.jpg │ ├── slack.png │ ├── stacy_chin.png │ ├── thomas_ciszec.jpg │ └── tyrone_grandison.png ├── index.css ├── index.js ├── operationcode_challenge │ └── names.txt ├── scenes │ └── home │ │ ├── 404 │ │ ├── 404.gif │ │ ├── fourOhFour.css │ │ └── fourOhFour.js │ │ ├── about │ │ ├── about.css │ │ ├── about.js │ │ ├── financialStatements │ │ │ ├── financialReport.js │ │ │ └── financialStatements.js │ │ ├── valueCard │ │ │ ├── valueCard.css │ │ │ └── valueCard.js │ │ └── whatWeDo │ │ │ ├── whatWeDo.css │ │ │ ├── whatWeDo.js │ │ │ └── whatWeDoContent.json │ │ ├── benefit │ │ ├── benefit.css │ │ ├── benefit.js │ │ ├── benefitdinner_auction_operationcode.pdf │ │ └── logos │ │ │ ├── 320px-EBay_logo.png │ │ │ ├── NodeSummitSF_ColorLogoWeb.jpg │ │ │ ├── SecureSet.logoUSE.jpg │ │ │ ├── alchemyLogo.png │ │ │ ├── gitkraken-logo-dark-hz.png │ │ │ ├── launchcode.png │ │ │ ├── pdxcglogo.svg │ │ │ ├── pvaoregon.jpg │ │ │ ├── srvd.png │ │ │ └── topcoder.png │ │ ├── branding │ │ ├── branding.css │ │ ├── branding.js │ │ ├── colors │ │ │ ├── colors.css │ │ │ └── colors.js │ │ ├── fonts │ │ │ ├── fonts.css │ │ │ └── fonts.js │ │ └── logos │ │ │ ├── logos.css │ │ │ └── logos.js │ │ ├── challenge │ │ ├── challenge.css │ │ └── challenge.js │ │ ├── chapterLeader │ │ └── chapterLeader.js │ │ ├── codeSchools │ │ ├── approvedSchools │ │ │ ├── approvedSchools.css │ │ │ └── approvedSchools.js │ │ ├── codeSchools.css │ │ ├── codeSchools.js │ │ ├── moocSchools │ │ │ ├── moocSchools.css │ │ │ └── moocSchools.js │ │ ├── onlineSchools │ │ │ ├── onlineSchools.css │ │ │ └── onlineSchools.js │ │ └── stateSortedSchools │ │ │ ├── stateOptions.js │ │ │ ├── stateSortedSchools.css │ │ │ └── stateSortedSchools.js │ │ ├── contact │ │ ├── contact.css │ │ └── contact.js │ │ ├── families │ │ ├── facts │ │ │ ├── facts.css │ │ │ └── facts.js │ │ └── jumboQuote │ │ │ ├── jumboQuote.css │ │ │ ├── jumboQuote.js │ │ │ └── quotes.json │ │ ├── faq │ │ ├── faq.css │ │ ├── faq.js │ │ ├── question │ │ │ ├── question.css │ │ │ └── question.js │ │ └── questions.js │ │ ├── footer │ │ ├── footer.css │ │ └── footer.js │ │ ├── gala │ │ ├── gala.css │ │ ├── gala.js │ │ └── portland19.jpg │ │ ├── getInvolved │ │ ├── getInvolved.css │ │ ├── getInvolved.js │ │ ├── volunteer │ │ │ └── volunteer.js │ │ └── whyGive │ │ │ └── whyGive.js │ │ ├── header │ │ ├── burger │ │ │ ├── burger.css │ │ │ └── burger.js │ │ ├── header.css │ │ ├── header.js │ │ ├── logo │ │ │ ├── logo.css │ │ │ └── logo.js │ │ ├── navItem │ │ │ ├── navItem.css │ │ │ └── navItem.js │ │ ├── sideNav │ │ │ ├── sideNav.css │ │ │ └── sideNav.js │ │ └── topNav │ │ │ ├── topNav.css │ │ │ └── topNav.js │ │ ├── history │ │ ├── history.css │ │ ├── history.js │ │ ├── timeline │ │ │ ├── timeline.css │ │ │ └── timeline.js │ │ └── timelineEvent │ │ │ ├── timelineEvent.css │ │ │ └── timelineEvent.js │ │ ├── home.css │ │ ├── home.js │ │ ├── informationForm │ │ ├── formComponents │ │ │ ├── formComponents.css │ │ │ ├── identifier.js │ │ │ ├── interests.js │ │ │ ├── militaryInfo.js │ │ │ ├── schoolInfo.js │ │ │ └── workInfo.js │ │ ├── informationForm.css │ │ └── informationForm.js │ │ ├── jobs │ │ ├── featuredJob │ │ │ ├── featuredJob.css │ │ │ └── featuredJob.js │ │ ├── featuredJobs.json │ │ ├── jobs.css │ │ └── jobs.js │ │ ├── landing │ │ ├── emailSignup │ │ │ ├── emailSignup.css │ │ │ └── emailSignup.js │ │ ├── hero │ │ │ ├── hero.css │ │ │ └── hero.js │ │ ├── landing.css │ │ ├── landing.js │ │ ├── membership │ │ │ ├── membership.css │ │ │ └── membership.js │ │ ├── moreInformation │ │ │ ├── moreInformation.css │ │ │ └── moreInformation.js │ │ ├── partners │ │ │ ├── partnerRoster.js │ │ │ ├── partners.css │ │ │ └── partners.js │ │ ├── successStories │ │ │ ├── successStories.css │ │ │ ├── successStories.js │ │ │ └── successStoriesContent.json │ │ └── topcodeBanner │ │ │ ├── _topcodeBanner_notused.css │ │ │ └── topcodeBanner.js │ │ ├── leadershipCircle │ │ ├── leadershipCircle.css │ │ └── leadershipCircle.js │ │ ├── mentorRequest │ │ ├── mentorRequest.css │ │ └── mentorRequest.js │ │ ├── ourPrograms │ │ ├── gettingStarted │ │ │ ├── gettingStarted.css │ │ │ └── gettingStarted.js │ │ ├── mentorVolunteers │ │ │ ├── mentorVolunteers.css │ │ │ └── mentorVolunteers.js │ │ ├── mentorshipProgram │ │ │ ├── mentorshipProgram.css │ │ │ └── mentorshipProgram.js │ │ └── ourPrograms.js │ │ ├── policy │ │ ├── policy.css │ │ ├── policy.js │ │ ├── policyBanner.css │ │ └── policyBanner.js │ │ ├── press │ │ ├── civicXBadge │ │ │ ├── civicXBadge.css │ │ │ └── civicXBadge.js │ │ ├── press.css │ │ ├── press.js │ │ ├── pressBranding │ │ │ ├── pressBranding.css │ │ │ └── pressBranding.js │ │ ├── pressPhotos │ │ │ ├── pressPhotos.css │ │ │ └── pressPhotos.js │ │ ├── pressReleases │ │ │ ├── pressReleases.css │ │ │ └── pressReleases.js │ │ └── pressVideos │ │ │ ├── pressVideos.css │ │ │ └── pressVideos.js │ │ ├── profile │ │ ├── profile.css │ │ └── profile.js │ │ ├── resetPassword │ │ ├── requestToken │ │ │ ├── requestToken.css │ │ │ └── requestToken.js │ │ ├── resetPassword.css │ │ ├── resetPassword.js │ │ └── setPassword │ │ │ ├── setPassword.css │ │ │ └── setPassword.js │ │ ├── scholarship │ │ ├── preview │ │ │ ├── preview.css │ │ │ └── preview.js │ │ ├── scholarships.css │ │ └── scholarships.js │ │ ├── scholarshipApplication │ │ ├── body │ │ │ ├── body.css │ │ │ └── body.js │ │ ├── head │ │ │ ├── head.css │ │ │ └── head.js │ │ ├── scholarshipApplication.css │ │ ├── scholarshipApplication.js │ │ └── success │ │ │ ├── success.css │ │ │ └── success.js │ │ ├── signup │ │ ├── signup.css │ │ └── signup.js │ │ ├── team │ │ ├── team.css │ │ └── team.js │ │ └── termsOfService │ │ └── termsOfService.js └── shared │ ├── components │ ├── accordian │ │ ├── accordian.css │ │ ├── accordian.js │ │ └── accordianItem │ │ │ ├── accordianItem.css │ │ │ └── accordianItem.js │ ├── adBanner │ │ ├── adBanner.css │ │ └── adBanner.js │ ├── authenticatedRoute │ │ └── authenticatedRoute.js │ ├── boardCard │ │ ├── boardCard.css │ │ └── boardCard.js │ ├── button │ │ └── button.js │ ├── clipPathImage │ │ ├── clipPathImage.css │ │ └── clipPathImage.js │ ├── donate │ │ ├── donate.css │ │ └── donate.js │ ├── drawer │ │ ├── drawer.css │ │ └── drawer.js │ ├── form │ │ ├── form.css │ │ ├── form.js │ │ ├── formButton │ │ │ ├── formButton.css │ │ │ └── formButton.js │ │ ├── formCheckBox │ │ │ ├── formCheckBox.css │ │ │ └── formCheckBox.js │ │ ├── formEmail │ │ │ └── formEmail.js │ │ ├── formInput │ │ │ ├── formInput.css │ │ │ └── formInput.js │ │ ├── formPassword │ │ │ └── formPassword.js │ │ ├── formSelect │ │ │ └── formSelect.js │ │ ├── formTextArea │ │ │ ├── formTextArea.css │ │ │ └── formTextArea.js │ │ └── formZipCode │ │ │ └── formZipCode.js │ ├── heading │ │ ├── heading.css │ │ └── heading.js │ ├── heroBanner │ │ ├── heroBanner.css │ │ └── heroBanner.js │ ├── iconCard │ │ ├── iconCard.css │ │ └── iconCard.js │ ├── imageCard │ │ ├── imageCard.css │ │ └── imageCard.js │ ├── imageListItem │ │ ├── imageListItem.css │ │ └── imageListItem.js │ ├── join │ │ ├── join.css │ │ └── join.js │ ├── label │ │ └── label.js │ ├── linkButton │ │ ├── linkButton.css │ │ └── linkButton.js │ ├── login │ │ ├── login.css │ │ ├── login.js │ │ └── signUpSection.js │ ├── modal │ │ ├── modal.css │ │ └── modal.js │ ├── outboundLink │ │ └── outboundLink.js │ ├── quoteBanner │ │ ├── quoteBanner.css │ │ └── quoteBanner.js │ ├── schoolCard │ │ ├── schoolCard.css │ │ └── schoolCard.js │ ├── scrollToTop │ │ └── scrollToTop.js │ ├── section │ │ ├── section.css │ │ └── section.js │ ├── signUpLink │ │ └── signUpLink.js │ ├── socialLogin │ │ ├── facebook.js │ │ ├── google.js │ │ ├── socialLogin.css │ │ ├── socialLogin.js │ │ ├── socialLoginsGrouping.css │ │ ├── socialLoginsGrouping.js │ │ └── socialMediaButtons.css │ ├── socialMedia │ │ ├── socialMedia.js │ │ ├── socialMediaContainer │ │ │ ├── socialMediaContainer.css │ │ │ └── socialMediaContainer.js │ │ └── socialMediaItem │ │ │ ├── socialMediaItem.css │ │ │ └── socialMediaItem.js │ ├── staffCard │ │ ├── staffCard.css │ │ └── staffCard.js │ ├── teamCard │ │ ├── teamCard.css │ │ └── teamCard.js │ ├── upgradeBrowser │ │ ├── upgradeBrowser.css │ │ └── upgradeBrowser.js │ └── youtubeVideo │ │ ├── youtubeVideo.css │ │ └── youtubeVideo.js │ ├── constants │ ├── commonLinks.js │ ├── status.js │ └── table.js │ ├── styles │ ├── button.css │ ├── normalize.global.css │ ├── notifications.global.css │ └── react-select.global.css │ └── utils │ ├── apiHelper.js │ └── cookieHelper.js ├── stories ├── Button.js ├── Welcome.js ├── asset │ ├── bloc.jpg │ └── james-bond.jpg ├── components │ ├── accordian │ │ └── index.js │ ├── boardCard │ │ └── index.js │ ├── button │ │ └── index.js │ ├── clipPathImage │ │ └── index.js │ ├── donate │ │ └── index.js │ ├── drawer │ │ └── index.js │ ├── form │ │ ├── formButton │ │ │ └── index.js │ │ ├── formCheckBox │ │ │ └── index.js │ │ ├── formEmail │ │ │ └── index.js │ │ ├── formInput │ │ │ └── index.js │ │ ├── formPassword │ │ │ └── index.js │ │ ├── formSelect │ │ │ └── index.js │ │ ├── formTextArea │ │ │ └── index.js │ │ ├── formZipCode │ │ │ └── index.js │ │ └── index.js │ ├── heading │ │ └── index.js │ ├── heroBanner │ │ └── index.js │ ├── iconCard │ │ └── index.js │ ├── imageCard │ │ └── index.js │ ├── join │ │ └── index.js │ ├── label │ │ └── index.js │ ├── linkButton │ │ └── index.js │ ├── login │ │ └── index.js │ ├── modal │ │ └── index.js │ ├── profile │ │ └── index.js │ ├── quoteBanner │ │ └── index.js │ ├── schoolCard │ │ └── index.js │ ├── socialMedia │ │ └── index.js │ ├── staffCard │ │ └── index.js │ ├── teamCard │ │ └── index.js │ └── youtubeVideo │ │ └── index.js ├── index.js └── landing │ └── index.js └── yarn.lock /.editorconfig: -------------------------------------------------------------------------------- 1 | # EditorConfig is awesome: http://EditorConfig.org 2 | 3 | # top-most EditorConfig file 4 | root = true 5 | 6 | # Tab indentation 7 | [*] 8 | indent_style = space 9 | indent_size = 2 10 | trim_trailing_whitespace = true 11 | -------------------------------------------------------------------------------- /.env: -------------------------------------------------------------------------------- 1 | COMPOSE_PROJECT_NAME=operationcodefrontend 2 | PORT=4000 3 | GA_TRACKER_ID=UA-75642413-1 4 | NODE_ENV=development 5 | -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | /src/scenes/home/home.js 2 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Handle line endings automatically for files detected as text 2 | # and leave all files detected as binary untouched. 3 | * text=auto 4 | 5 | # source code 6 | *.css text 7 | *.js text 8 | *.json text 9 | *.html text 10 | *.svg text 11 | 12 | # git config 13 | .gitattributes text 14 | .gitignore text 15 | .gitconfig text 16 | 17 | 18 | # code analysis config 19 | .eslintrc text 20 | 21 | 22 | # misc config 23 | *.yml text 24 | .editorconfig text 25 | yarn.lock text 26 | .env 27 | *.xml text 28 | 29 | 30 | # Documentation 31 | *.md text 32 | LICENSE text 33 | 34 | 35 | # Binary Files 36 | 37 | *.png binary 38 | *.jpg binary 39 | *.jpeg binary 40 | *.gif binary 41 | *.ico binary 42 | *.ttf binary 43 | *.eot binary 44 | *.woff binary 45 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | 2 | # Feature 3 | ## Why is this feature being added? 4 | 5 | 6 | ## What should your feature do? 7 | 8 | --- 9 | 10 | # Bug Report 11 | ## What is the current behavior? 12 | 13 | ## What is the expected behavior? 14 | 15 | ## What steps did you take to get this behavior? 16 | 17 | ## Additional Info 18 | ### Operating System 19 | 20 | ### Browser 21 | 22 | ### Screenshots 23 | -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | # Description of changes 2 | 3 | 4 | # Issue Resolved 5 | 6 | Fixes # 7 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "backend"] 2 | ignore = all 3 | -------------------------------------------------------------------------------- /.storybook/config.js: -------------------------------------------------------------------------------- 1 | import { configure } from '@storybook/react'; 2 | 3 | import 'shared/styles/normalize.global.css'; 4 | import 'shared/styles/react-select.global.css'; 5 | import 'index.css'; 6 | 7 | const req = require.context('../stories', true, /\.js$/) 8 | 9 | function loadStories() { 10 | req.keys().forEach(filename => req(filename)); 11 | } 12 | 13 | configure(loadStories, module); 14 | -------------------------------------------------------------------------------- /.stylelintrc: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "stylelint-config-standard", 3 | "rules": { 4 | "indentation": 2, 5 | "string-quotes": "single", 6 | "no-duplicate-selectors": true, 7 | "color-hex-case": "lower", 8 | "color-hex-length": "long", 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | # Since we build and test in Docker we dont 2 | # need node at build time 3 | language: c 4 | 5 | services: 6 | - docker 7 | 8 | script: 9 | - make travis 10 | - if [ "$TRAVIS_PULL_REQUEST" == "false" ] && [ "$TRAVIS_BRANCH" == "master" ]; then make publish && make deploy; fi 11 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | # Dockerfile 2 | FROM node:8.11.1 3 | 4 | ENV IN_DOCKER true 5 | 6 | # Create app directory 7 | RUN mkdir -p /usr/src/app 8 | WORKDIR /usr/src/app 9 | 10 | # Install app dependencies 11 | COPY package.json /usr/src/app/ 12 | COPY yarn.lock /usr/src/app/ 13 | 14 | # Set registry to NPM's in attempt to avoid build issues 15 | RUN npm config set registry "https://registry.npmjs.org" 16 | 17 | # Install front-end dependencies 18 | RUN yarn install --no-progress 19 | 20 | # Bundle app source 21 | COPY . /usr/src/app 22 | 23 | EXPOSE 8080 24 | 25 | # defined in package.json 26 | CMD [ "npm", "run", "start:server" ] 27 | -------------------------------------------------------------------------------- /EXTERNAL_DATA_SOURCES.md: -------------------------------------------------------------------------------- 1 | ## JSON File & Service References 2 | 3 | codeSchools.js#20 4 | team.js#19 5 | public/index.html#20 6 | jumboQuote.js#3 7 | faq.js#4 8 | whatWeDo.js#8 9 | successStories.js#7 10 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2014-2018 Operation Code 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /MAINTAINERS.md: -------------------------------------------------------------------------------- 1 | # Maintainers 2 | 3 | This file lists how the Operation Code Front End project is maintained. When making changes to the system, this file tells you who needs to review your contribution - you need a simple majority of maintainers for the relevant subsystems to provide a 👍 on your pull request. Additionally, you need to not receive a veto from a Sergeant or the Project Lead. 4 | 5 | Check out [how Operation Code Open Source projects are maintained](https://github.com/OperationCode/START_HERE/blob/61cebc02875ef448679e1130d3a68ef2f855d6c4/open_source_maintenance_policy.md) for details on the process, how to become a maintainer, sergeant, or the project lead. 6 | 7 | # Project Lead 8 | 9 | * [Kyle Holmberg](http://www.github.com/kylemh) 10 | 11 | # Sergeant 12 | 13 | * [Evan Cooper](http://www.github.com/cooperbuilt) 14 | 15 | # Maintainers 16 | 17 | * [Kelly MacLeod](http://www.github.com/ksmacleod99) 18 | * [Will Montgomery](http://www.github.com/wimo7083) 19 | * [John Hampton](https://github.com/jjhampton) -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | NODE_CONTAINER := web 2 | 3 | .PHONY: build 4 | build: 5 | docker-compose build 6 | 7 | .PHONY: build_site 8 | build_site: 9 | yarn install && yarn run build 10 | 11 | .PHONY: test 12 | test: 13 | docker-compose run ${NODE_CONTAINER} bash -c 'cd /usr/src/app && yarn test' 14 | 15 | publish: build 16 | bin/publish 17 | 18 | deploy: build 19 | bin/deploy 20 | 21 | travis: build_site build test 22 | 23 | .PHONY: backend 24 | backend: 25 | bin/run_backend.sh 26 | 27 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ✨ :us: OperationCode Frontend :us: ✨ 2 | 3 | [![Build Status](https://travis-ci.org/OperationCode/operationcode_frontend.svg?branch=master)](https://travis-ci.org/OperationCode/operationcode_frontend) 4 | [![PRs Welcome][prs-badge]][prs] 5 | 6 | [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT) 7 | [![Twitter Follow](https://img.shields.io/twitter/follow/operation_code.svg?style=social&label=Follow&style=social)](https://twitter.com/operation_code) 8 | 9 | # Please Read 10 | Please direct contribution interests to the new repository, [OperationCode/front-end](https://github.com/OperationCode/front-end). 11 | -------------------------------------------------------------------------------- /bin/deploy: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -eu 4 | 5 | KUBE_CONFIG=kubectl.config 6 | 7 | # This script updates our kubernetes deploymnet from travis 8 | 9 | # Install kubectl 10 | curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl 11 | chmod +x ./kubectl 12 | 13 | # Generate our kubectl config 14 | cat << EOF > $KUBE_CONFIG 15 | apiVersion: v1 16 | clusters: 17 | - cluster: 18 | certificate-authority-data: $KUBE_CA_DATA 19 | server: $KUBE_SERVER 20 | name: cluster-operationcode 21 | contexts: 22 | - context: 23 | cluster: cluster-operationcode 24 | namespace: operationcode 25 | user: $KUBE_USER 26 | name: operationcode 27 | - context: 28 | cluster: cluster-operationcode 29 | namespace: operationcode-staging 30 | user: $KUBE_USER 31 | name: staging 32 | current-context: operationcode 33 | kind: Config 34 | preferences: {} 35 | users: 36 | - name: $KUBE_USER 37 | user: 38 | client-certificate-data: $KUBE_CLIENT_CERT 39 | client-key-data: $KUBE_CLIENT_KEY 40 | EOF 41 | 42 | # Update the deployment 43 | KUBECONFIG=${KUBE_CONFIG} ./kubectl set image deployment/operationcode-frontend app=operationcode/operationcode_frontend:${TRAVIS_BUILD_NUMBER} 44 | -------------------------------------------------------------------------------- /bin/publish: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # Publishes the most recent web container to docker hubs repo. 4 | # This script assumes docker push works. 5 | # You must set up docker push on your own. 6 | 7 | set -eu 8 | 9 | DOCKER_REPO="operationcode/operationcode_frontend" 10 | 11 | ROOT_DIR="$(dirname $0)/.." 12 | cd $ROOT_DIR 13 | 14 | PROJECT_NAME=$(grep COMPOSE_PROJECT_NAME $ROOT_DIR/.env | cut -d= -f2) 15 | 16 | IMAGE_NAME="${PROJECT_NAME}_web" 17 | IMAGE_ID=$(docker images $IMAGE_NAME:latest --format "{{.ID}}") 18 | 19 | if [ -n "$DOCKER_USERNAME" ]; then echo "Found username"; fi 20 | if [ -n "$DOCKER_PASSWORD" ]; then echo "Found password"; fi 21 | 22 | if [ -n "$DOCKER_USERNAME" ] && [ -n "$DOCKER_PASSWORD" ]; then 23 | echo "Logging in using ENV creds" 24 | docker login -u="$DOCKER_USERNAME" -p="$DOCKER_PASSWORD" 25 | fi 26 | 27 | docker tag $IMAGE_ID $DOCKER_REPO 28 | docker tag $IMAGE_ID ${DOCKER_REPO}:${TRAVIS_BUILD_NUMBER} 29 | docker push $DOCKER_REPO 30 | docker push ${DOCKER_REPO}:${TRAVIS_BUILD_NUMBER} 31 | -------------------------------------------------------------------------------- /bin/run_backend.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set +exu 4 | 5 | function get_base_path(){ 6 | cd $(dirname $0) && cd .. && pwd 7 | } 8 | 9 | BASE_DIR="$(get_base_path)" 10 | BACKEND_DIR="${BASE_DIR}/backend" 11 | BACKEND_REPO='https://github.com/OperationCode/operationcode_backend.git' 12 | 13 | echo "Cloning backend repo into $BACKEND_DIR" 14 | git clone $BACKEND_REPO $BACKEND_DIR 15 | 16 | echo "Starting backend" 17 | cd $BACKEND_DIR && make build && make db_create && make db_migrate && make run 18 | -------------------------------------------------------------------------------- /config/jest/cssTransform.js: -------------------------------------------------------------------------------- 1 | 2 | 3 | // This is a custom Jest transformer turning style imports into empty objects. 4 | // http://facebook.github.io/jest/docs/tutorial-webpack.html 5 | 6 | module.exports = { 7 | process() { 8 | return 'module.exports = {};'; 9 | }, 10 | getCacheKey() { 11 | // The output is always the same. 12 | return 'cssTransform'; 13 | } 14 | }; 15 | -------------------------------------------------------------------------------- /config/jest/fileTransform.js: -------------------------------------------------------------------------------- 1 | 2 | 3 | const path = require('path'); 4 | 5 | // This is a custom Jest transformer turning file imports into filenames. 6 | // http://facebook.github.io/jest/docs/tutorial-webpack.html 7 | 8 | module.exports = { 9 | process(src, filename) { 10 | return `module.exports = ${JSON.stringify(path.basename(filename))};`; 11 | } 12 | }; 13 | -------------------------------------------------------------------------------- /config/polyfills.js: -------------------------------------------------------------------------------- 1 | 2 | 3 | if (typeof Promise === 'undefined') { 4 | // Rejection tracking prevents a common issue where React gets into an 5 | // inconsistent state due to an error, but it gets swallowed by a Promise, 6 | // and the user has no idea what causes React's erratic future behavior. 7 | require('promise/lib/rejection-tracking').enable(); 8 | window.Promise = require('promise/lib/es6-extensions.js'); 9 | } 10 | 11 | // fetch() polyfill for making API calls. 12 | require('whatwg-fetch'); 13 | 14 | // Object.assign() is commonly used with React. 15 | // It will use the native implementation if it's present and isn't buggy. 16 | Object.assign = require('object-assign'); 17 | 18 | // In tests, polyfill requestAnimationFrame since jsdom doesn't provide it yet. 19 | // We don't polyfill it in the browser--this is user's responsibility. 20 | if (process.env.NODE_ENV === 'test') { 21 | require('raf').polyfill(global); 22 | } 23 | -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '2' 2 | services: 3 | web: 4 | build: . 5 | ports: 6 | - "80:8080" 7 | environment: 8 | - NODE_ENV=production 9 | - PORT=8080 10 | - GA_TRACKER_ID=UA-75642413-1 11 | -------------------------------------------------------------------------------- /jsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ES6" 4 | }, 5 | "include": [ 6 | "src/**/*" 7 | ] 8 | } 9 | -------------------------------------------------------------------------------- /pipeline/docker_image: -------------------------------------------------------------------------------- 1 | operationcode_frontend 2 | -------------------------------------------------------------------------------- /pipeline/docker_staging_tag: -------------------------------------------------------------------------------- 1 | staging 2 | -------------------------------------------------------------------------------- /public/android-icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/public/android-icon-144x144.png -------------------------------------------------------------------------------- /public/android-icon-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/public/android-icon-192x192.png -------------------------------------------------------------------------------- /public/android-icon-36x36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/public/android-icon-36x36.png -------------------------------------------------------------------------------- /public/android-icon-48x48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/public/android-icon-48x48.png -------------------------------------------------------------------------------- /public/android-icon-72x72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/public/android-icon-72x72.png -------------------------------------------------------------------------------- /public/android-icon-96x96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/public/android-icon-96x96.png -------------------------------------------------------------------------------- /public/apple-icon-114x114.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/public/apple-icon-114x114.png -------------------------------------------------------------------------------- /public/apple-icon-120x120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/public/apple-icon-120x120.png -------------------------------------------------------------------------------- /public/apple-icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/public/apple-icon-144x144.png -------------------------------------------------------------------------------- /public/apple-icon-152x152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/public/apple-icon-152x152.png -------------------------------------------------------------------------------- /public/apple-icon-180x180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/public/apple-icon-180x180.png -------------------------------------------------------------------------------- /public/apple-icon-57x57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/public/apple-icon-57x57.png -------------------------------------------------------------------------------- /public/apple-icon-60x60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/public/apple-icon-60x60.png -------------------------------------------------------------------------------- /public/apple-icon-72x72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/public/apple-icon-72x72.png -------------------------------------------------------------------------------- /public/apple-icon-76x76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/public/apple-icon-76x76.png -------------------------------------------------------------------------------- /public/apple-icon-precomposed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/public/apple-icon-precomposed.png -------------------------------------------------------------------------------- /public/apple-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/public/apple-icon.png -------------------------------------------------------------------------------- /public/browserconfig.xml: -------------------------------------------------------------------------------- 1 | 2 | #ffffff -------------------------------------------------------------------------------- /public/favico.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/public/favico.png -------------------------------------------------------------------------------- /public/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/public/favicon-16x16.png -------------------------------------------------------------------------------- /public/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/public/favicon-32x32.png -------------------------------------------------------------------------------- /public/favicon-96x96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/public/favicon-96x96.png -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/public/favicon.ico -------------------------------------------------------------------------------- /public/images/AngelHack-Boston.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/public/images/AngelHack-Boston.jpg -------------------------------------------------------------------------------- /public/images/CodeConferenceLA.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/public/images/CodeConferenceLA.jpg -------------------------------------------------------------------------------- /public/images/ConradHollomon.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/public/images/ConradHollomon.jpg -------------------------------------------------------------------------------- /public/images/Discourse_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/public/images/Discourse_logo.png -------------------------------------------------------------------------------- /public/images/Family-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/public/images/Family-1.jpg -------------------------------------------------------------------------------- /public/images/Family-2-mobile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/public/images/Family-2-mobile.png -------------------------------------------------------------------------------- /public/images/Family-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/public/images/Family-2.jpg -------------------------------------------------------------------------------- /public/images/Family-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/public/images/Family-2.png -------------------------------------------------------------------------------- /public/images/Family-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/public/images/Family-3.jpg -------------------------------------------------------------------------------- /public/images/Family-mobile.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/public/images/Family-mobile.jpg -------------------------------------------------------------------------------- /public/images/General-Couple-Computer.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/public/images/General-Couple-Computer.jpg -------------------------------------------------------------------------------- /public/images/General-Flag.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/public/images/General-Flag.jpg -------------------------------------------------------------------------------- /public/images/General-Group-Coffee.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/public/images/General-Group-Coffee.jpg -------------------------------------------------------------------------------- /public/images/General-Military-Departing.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/public/images/General-Military-Departing.jpg -------------------------------------------------------------------------------- /public/images/IdmeTroop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/public/images/IdmeTroop.png -------------------------------------------------------------------------------- /public/images/Mil-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/public/images/Mil-1.jpg -------------------------------------------------------------------------------- /public/images/Node-Summit.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/public/images/Node-Summit.jpg -------------------------------------------------------------------------------- /public/images/RedHat-Summit.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/public/images/RedHat-Summit.jpg -------------------------------------------------------------------------------- /public/images/RickRein.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/public/images/RickRein.jpg -------------------------------------------------------------------------------- /public/images/ThinkstockPhotos-489787502.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/public/images/ThinkstockPhotos-489787502.jpg -------------------------------------------------------------------------------- /public/images/Troop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/public/images/Troop.png -------------------------------------------------------------------------------- /public/images/Utah-Meetup.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/public/images/Utah-Meetup.jpg -------------------------------------------------------------------------------- /public/images/Volunteer-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/public/images/Volunteer-1.jpg -------------------------------------------------------------------------------- /public/images/aimee.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/public/images/aimee.jpg -------------------------------------------------------------------------------- /public/images/gala-banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/public/images/gala-banner.png -------------------------------------------------------------------------------- /public/images/icons/Medal-Icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Icon/Medal 5 | Created with Sketch. 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /public/images/icons/menu.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /public/images/icons/newburger.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/public/images/icons/newburger.png -------------------------------------------------------------------------------- /public/images/logos.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/public/images/logos.zip -------------------------------------------------------------------------------- /public/images/moocLogos/edx.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/public/images/moocLogos/edx.jpg -------------------------------------------------------------------------------- /public/images/moocLogos/treehouse.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/public/images/moocLogos/treehouse.jpg -------------------------------------------------------------------------------- /public/images/moocLogos/udacity.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/public/images/moocLogos/udacity.jpg -------------------------------------------------------------------------------- /public/images/partnerLogos/apex_systems_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/public/images/partnerLogos/apex_systems_logo.png -------------------------------------------------------------------------------- /public/images/partnerLogos/docker_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/public/images/partnerLogos/docker_logo.png -------------------------------------------------------------------------------- /public/images/partnerLogos/github_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/public/images/partnerLogos/github_logo.png -------------------------------------------------------------------------------- /public/images/partnerLogos/hackerrank_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/public/images/partnerLogos/hackerrank_logo.png -------------------------------------------------------------------------------- /public/images/partnerLogos/oracle_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/public/images/partnerLogos/oracle_logo.png -------------------------------------------------------------------------------- /public/images/partnerLogos/oreilly_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/public/images/partnerLogos/oreilly_logo.png -------------------------------------------------------------------------------- /public/images/rhs2017_photo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/public/images/rhs2017_photo.jpg -------------------------------------------------------------------------------- /public/images/serviceSeals/AirForce.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/public/images/serviceSeals/AirForce.png -------------------------------------------------------------------------------- /public/images/serviceSeals/AirForceReserve.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/public/images/serviceSeals/AirForceReserve.png -------------------------------------------------------------------------------- /public/images/serviceSeals/Army.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/public/images/serviceSeals/Army.png -------------------------------------------------------------------------------- /public/images/serviceSeals/ArmyReserve.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/public/images/serviceSeals/ArmyReserve.png -------------------------------------------------------------------------------- /public/images/serviceSeals/Navy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/public/images/serviceSeals/Navy.png -------------------------------------------------------------------------------- /public/images/serviceSeals/NavyReserve.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/public/images/serviceSeals/NavyReserve.png -------------------------------------------------------------------------------- /public/images/serviceSeals/USCG.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/public/images/serviceSeals/USCG.png -------------------------------------------------------------------------------- /public/images/serviceSeals/USMC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/public/images/serviceSeals/USMC.png -------------------------------------------------------------------------------- /public/images/serviceSeals/USMCReserve.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/public/images/serviceSeals/USMCReserve.png -------------------------------------------------------------------------------- /public/images/slack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/public/images/slack.png -------------------------------------------------------------------------------- /public/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Operation Code", 3 | "short_name": "Operation Code", 4 | "start_url": "/", 5 | "display": "standalone", 6 | "fallback": "index.html", 7 | "theme_color": "#47566B", 8 | "background_color": "#fff", 9 | "orientation": "any", 10 | "icons": [ 11 | { 12 | "src": "\/android-icon-36x36.png", 13 | "sizes": "36x36", 14 | "type": "image\/png", 15 | "density": "0.75" 16 | }, 17 | { 18 | "src": "\/android-icon-48x48.png", 19 | "sizes": "48x48", 20 | "type": "image\/png", 21 | "density": "1.0" 22 | }, 23 | { 24 | "src": "\/android-icon-72x72.png", 25 | "sizes": "72x72", 26 | "type": "image\/png", 27 | "density": "1.5" 28 | }, 29 | { 30 | "src": "\/android-icon-96x96.png", 31 | "sizes": "96x96", 32 | "type": "image\/png", 33 | "density": "2.0" 34 | }, 35 | { 36 | "src": "\/android-icon-144x144.png", 37 | "sizes": "144x144", 38 | "type": "image\/png", 39 | "density": "3.0" 40 | }, 41 | { 42 | "src": "\/android-icon-192x192.png", 43 | "sizes": "192x192", 44 | "type": "image\/png", 45 | "density": "4.0" 46 | } 47 | ] 48 | } 49 | -------------------------------------------------------------------------------- /public/ms-icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/public/ms-icon-144x144.png -------------------------------------------------------------------------------- /public/ms-icon-150x150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/public/ms-icon-150x150.png -------------------------------------------------------------------------------- /public/ms-icon-310x310.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/public/ms-icon-310x310.png -------------------------------------------------------------------------------- /public/ms-icon-70x70.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/public/ms-icon-70x70.png -------------------------------------------------------------------------------- /public/slack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/public/slack.png -------------------------------------------------------------------------------- /scripts/test.js: -------------------------------------------------------------------------------- 1 | 2 | 3 | // Do this as the first thing so that any code reading it knows the right env. 4 | process.env.BABEL_ENV = 'test'; 5 | process.env.NODE_ENV = 'test'; 6 | process.env.PUBLIC_URL = ''; 7 | 8 | /* eslint-disable */ 9 | 10 | // Makes the script crash on unhandled rejections instead of silently 11 | // ignoring them. In the future, promise rejections that are not handled will 12 | // terminate the Node.js process with a non-zero exit code. 13 | process.on('unhandledRejection', (err) => { 14 | throw err; 15 | }); 16 | 17 | // Ensure environment variables are read. 18 | require('../config/env'); 19 | 20 | const jest = require('jest'); 21 | const argv = process.argv.slice(2); 22 | 23 | 24 | jest.run(argv); 25 | -------------------------------------------------------------------------------- /server.js: -------------------------------------------------------------------------------- 1 | const express = require('express'); 2 | const path = require('path'); 3 | 4 | const app = express(); 5 | 6 | app.enable('trust proxy'); 7 | 8 | app.use((req, res, next) => { 9 | if (req.headers['x-forwarded-proto'] !== 'https') { 10 | return res.redirect(`https://${req.headers.host}${req.url}`); 11 | } 12 | return next(); 13 | }); 14 | 15 | app.use(express.static('./build')); 16 | app.get('/*', (req, res) => { 17 | res.sendFile(path.join(__dirname, './build', 'index.html')); 18 | }); 19 | 20 | app.listen(process.env.PORT); 21 | -------------------------------------------------------------------------------- /src/App.js: -------------------------------------------------------------------------------- 1 | import React, { Component } from 'react'; 2 | import { Route, Router } from 'react-router'; 3 | import ReactGA from 'react-ga'; 4 | import createHistory from 'history/createBrowserHistory'; 5 | import ScrollToTop from 'shared/components/scrollToTop/scrollToTop'; 6 | import Home from './scenes/home/home'; 7 | 8 | const history = createHistory(); 9 | ReactGA.initialize('UA-75642413-1'); 10 | 11 | class App extends Component { 12 | componentDidMount() { 13 | if (process.env.NODE_ENV === 'production') { 14 | // History listening doesn't catch first page load 15 | ReactGA.set({ page: history.location.pathname }); 16 | ReactGA.pageview(history.location.pathname); 17 | 18 | history.listen((location) => { 19 | ReactGA.set({ page: location.pathname }); 20 | ReactGA.pageview(location.pathname); 21 | }); 22 | } 23 | } 24 | 25 | render() { 26 | return ( 27 | 28 | 29 | 30 | 31 | 32 | ); 33 | } 34 | } 35 | 36 | export default App; 37 | -------------------------------------------------------------------------------- /src/App.test.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import sinon from 'sinon'; 3 | import ReactDOM from 'react-dom'; 4 | import * as CookieHelpers from 'shared/utils/cookieHelper'; 5 | import App from './App'; 6 | 7 | it('renders without crashing', () => { 8 | sinon.stub(CookieHelpers, 'getUserStatus').returns({ 9 | signedIn: true, 10 | mentor: true 11 | }); 12 | const div = document.createElement('div'); 13 | ReactDOM.render(, div); 14 | }); 15 | -------------------------------------------------------------------------------- /src/config/environment.js: -------------------------------------------------------------------------------- 1 | const config = { 2 | apiUrl: process.env.OC_API_URL, 3 | googleKey: process.env.OC_GOOGLE_KEY, 4 | facebookKey: process.env.OC_FACEBOOK_KEY 5 | }; 6 | 7 | export default config; 8 | -------------------------------------------------------------------------------- /src/fonts/PFDinDisplayPro-Reg.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/fonts/PFDinDisplayPro-Reg.ttf -------------------------------------------------------------------------------- /src/images/AngelHack-Boston.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/AngelHack-Boston.jpg -------------------------------------------------------------------------------- /src/images/CodeConferenceLA.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/CodeConferenceLA.jpg -------------------------------------------------------------------------------- /src/images/David_headshot_14.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/David_headshot_14.jpg -------------------------------------------------------------------------------- /src/images/Discourse_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/Discourse_logo.png -------------------------------------------------------------------------------- /src/images/Family-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/Family-1.jpg -------------------------------------------------------------------------------- /src/images/Family-2-mobile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/Family-2-mobile.png -------------------------------------------------------------------------------- /src/images/Family-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/Family-2.jpg -------------------------------------------------------------------------------- /src/images/Family-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/Family-3.jpg -------------------------------------------------------------------------------- /src/images/Family-mobile.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/Family-mobile.jpg -------------------------------------------------------------------------------- /src/images/General-Couple-Computer.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/General-Couple-Computer.jpg -------------------------------------------------------------------------------- /src/images/General-Flag.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/General-Flag.jpg -------------------------------------------------------------------------------- /src/images/General-Group-Coffee.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/General-Group-Coffee.jpg -------------------------------------------------------------------------------- /src/images/General-Military-Departing.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/General-Military-Departing.jpg -------------------------------------------------------------------------------- /src/images/GitHubExample.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/GitHubExample.png -------------------------------------------------------------------------------- /src/images/GitHubForkButton.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/GitHubForkButton.png -------------------------------------------------------------------------------- /src/images/GitHubPRButton.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/GitHubPRButton.png -------------------------------------------------------------------------------- /src/images/GitHubPencilIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/GitHubPencilIcon.png -------------------------------------------------------------------------------- /src/images/GitHubProposeButton.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/GitHubProposeButton.png -------------------------------------------------------------------------------- /src/images/IdmeTroop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/IdmeTroop.png -------------------------------------------------------------------------------- /src/images/Jameel-Matin.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/Jameel-Matin.jpg -------------------------------------------------------------------------------- /src/images/Jon-Deng.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/Jon-Deng.jpg -------------------------------------------------------------------------------- /src/images/Mil-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/Mil-1.jpg -------------------------------------------------------------------------------- /src/images/Node-Summit.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/Node-Summit.jpg -------------------------------------------------------------------------------- /src/images/RedHat-Summit.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/RedHat-Summit.jpg -------------------------------------------------------------------------------- /src/images/RickRein.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/RickRein.jpg -------------------------------------------------------------------------------- /src/images/Sean-McBride.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/Sean-McBride.jpg -------------------------------------------------------------------------------- /src/images/ThinkstockPhotos-489787502.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/ThinkstockPhotos-489787502.jpg -------------------------------------------------------------------------------- /src/images/Troop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/Troop.png -------------------------------------------------------------------------------- /src/images/Utah-Meetup.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/Utah-Meetup.jpg -------------------------------------------------------------------------------- /src/images/Volunteer-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/Volunteer-1.jpg -------------------------------------------------------------------------------- /src/images/Winston.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/Winston.jpg -------------------------------------------------------------------------------- /src/images/aimee.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/aimee.jpg -------------------------------------------------------------------------------- /src/images/benefit-mobile.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/benefit-mobile.jpg -------------------------------------------------------------------------------- /src/images/benefit.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/benefit.jpg -------------------------------------------------------------------------------- /src/images/civic-x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/civic-x.png -------------------------------------------------------------------------------- /src/images/colin-powell.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/colin-powell.jpg -------------------------------------------------------------------------------- /src/images/colors/blue-color-palette.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/colors/blue-color-palette.png -------------------------------------------------------------------------------- /src/images/colors/grey-color-palette.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/colors/grey-color-palette.png -------------------------------------------------------------------------------- /src/images/colors/light-grey-color-palette.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/colors/light-grey-color-palette.png -------------------------------------------------------------------------------- /src/images/colors/mist-color-palette.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/colors/mist-color-palette.png -------------------------------------------------------------------------------- /src/images/colors/red-color-palette.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/colors/red-color-palette.png -------------------------------------------------------------------------------- /src/images/colors/slate-color-palette.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/colors/slate-color-palette.png -------------------------------------------------------------------------------- /src/images/conrad_hollomon.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/conrad_hollomon.jpg -------------------------------------------------------------------------------- /src/images/david_molina.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/david_molina.jpg -------------------------------------------------------------------------------- /src/images/elmer_thomas.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/elmer_thomas.png -------------------------------------------------------------------------------- /src/images/fonts/noto-serif-font.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/fonts/noto-serif-font.png -------------------------------------------------------------------------------- /src/images/fonts/pf-din-font.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/fonts/pf-din-font.png -------------------------------------------------------------------------------- /src/images/icons/Medal-Icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Icon/Medal 5 | Created with Sketch. 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /src/images/icons/Pinterest-Icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/images/icons/menu.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /src/images/icons/newburger.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/icons/newburger.png -------------------------------------------------------------------------------- /src/images/img_unk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/img_unk.png -------------------------------------------------------------------------------- /src/images/james_davis.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/james_davis.jpg -------------------------------------------------------------------------------- /src/images/lincoln.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/lincoln.jpg -------------------------------------------------------------------------------- /src/images/liza_rodewald.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/liza_rodewald.png -------------------------------------------------------------------------------- /src/images/logos.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/logos.zip -------------------------------------------------------------------------------- /src/images/logos/large-blue-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/logos/large-blue-logo.png -------------------------------------------------------------------------------- /src/images/logos/large-blue-medal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/logos/large-blue-medal.png -------------------------------------------------------------------------------- /src/images/logos/large-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/logos/large-logo.png -------------------------------------------------------------------------------- /src/images/logos/large-red-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/logos/large-red-logo.png -------------------------------------------------------------------------------- /src/images/logos/large-red-medal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/logos/large-red-medal.png -------------------------------------------------------------------------------- /src/images/logos/large-slate-medal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/logos/large-slate-medal.png -------------------------------------------------------------------------------- /src/images/logos/large-stacked-logo-blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/logos/large-stacked-logo-blue.png -------------------------------------------------------------------------------- /src/images/logos/large-stacked-logo-red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/logos/large-stacked-logo-red.png -------------------------------------------------------------------------------- /src/images/logos/large-stacked-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/logos/large-stacked-logo.png -------------------------------------------------------------------------------- /src/images/logos/large-white-logo-blue-star.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/logos/large-white-logo-blue-star.png -------------------------------------------------------------------------------- /src/images/logos/large-white-logo-red-star.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/logos/large-white-logo-red-star.png -------------------------------------------------------------------------------- /src/images/logos/large-white-logo-slate-star.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/logos/large-white-logo-slate-star.png -------------------------------------------------------------------------------- /src/images/logos/large-white-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/logos/large-white-logo.png -------------------------------------------------------------------------------- /src/images/logos/small-blue-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/logos/small-blue-logo.png -------------------------------------------------------------------------------- /src/images/logos/small-blue-medal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/logos/small-blue-medal.png -------------------------------------------------------------------------------- /src/images/logos/small-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/logos/small-logo.png -------------------------------------------------------------------------------- /src/images/logos/small-red-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/logos/small-red-logo.png -------------------------------------------------------------------------------- /src/images/logos/small-red-medal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/logos/small-red-medal.png -------------------------------------------------------------------------------- /src/images/logos/small-slate-medal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/logos/small-slate-medal.png -------------------------------------------------------------------------------- /src/images/logos/small-stacked-logo-blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/logos/small-stacked-logo-blue.png -------------------------------------------------------------------------------- /src/images/logos/small-stacked-logo-red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/logos/small-stacked-logo-red.png -------------------------------------------------------------------------------- /src/images/logos/small-stacked-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/logos/small-stacked-logo.png -------------------------------------------------------------------------------- /src/images/logos/small-white-logo-blue-star.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/logos/small-white-logo-blue-star.png -------------------------------------------------------------------------------- /src/images/logos/small-white-logo-red-star.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/logos/small-white-logo-red-star.png -------------------------------------------------------------------------------- /src/images/logos/small-white-logo-slate-star.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/logos/small-white-logo-slate-star.png -------------------------------------------------------------------------------- /src/images/logos/small-white-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/logos/small-white-logo.png -------------------------------------------------------------------------------- /src/images/mark_kerr.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/mark_kerr.jpg -------------------------------------------------------------------------------- /src/images/moocLogos/edx.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/moocLogos/edx.jpg -------------------------------------------------------------------------------- /src/images/moocLogos/treehouse.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/moocLogos/treehouse.jpg -------------------------------------------------------------------------------- /src/images/moocLogos/udacity.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/moocLogos/udacity.jpg -------------------------------------------------------------------------------- /src/images/nodejs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/nodejs.png -------------------------------------------------------------------------------- /src/images/operation-code-seattle-meetup.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/operation-code-seattle-meetup.jpg -------------------------------------------------------------------------------- /src/images/partnerLogos/apex_systems_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/partnerLogos/apex_systems_logo.png -------------------------------------------------------------------------------- /src/images/partnerLogos/docker_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/partnerLogos/docker_logo.png -------------------------------------------------------------------------------- /src/images/partnerLogos/github_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/partnerLogos/github_logo.png -------------------------------------------------------------------------------- /src/images/partnerLogos/hackerrank_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/partnerLogos/hackerrank_logo.png -------------------------------------------------------------------------------- /src/images/partnerLogos/oracle_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/partnerLogos/oracle_logo.png -------------------------------------------------------------------------------- /src/images/partnerLogos/oreilly_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/partnerLogos/oreilly_logo.png -------------------------------------------------------------------------------- /src/images/partnerLogos/zapier_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/partnerLogos/zapier_logo.png -------------------------------------------------------------------------------- /src/images/policy.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/policy.jpg -------------------------------------------------------------------------------- /src/images/rhs2017_photo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/rhs2017_photo.jpg -------------------------------------------------------------------------------- /src/images/slack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/slack.png -------------------------------------------------------------------------------- /src/images/stacy_chin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/stacy_chin.png -------------------------------------------------------------------------------- /src/images/thomas_ciszec.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/thomas_ciszec.jpg -------------------------------------------------------------------------------- /src/images/tyrone_grandison.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/images/tyrone_grandison.png -------------------------------------------------------------------------------- /src/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactDOM from 'react-dom'; 3 | import Raven from 'raven-js'; 4 | import '@fortawesome/fontawesome/styles.css'; 5 | import App from './App'; 6 | import './shared/styles/normalize.global.css'; 7 | import './shared/styles/react-select.global.css'; 8 | import './shared/styles/notifications.global.css'; 9 | import './index.css'; 10 | 11 | Raven.config('https://6350058c0b0247bf8923b9965ca744fa@sentry.io/222621', { 12 | environment: process.env.NODE_ENV 13 | }).install(); 14 | 15 | ReactDOM.render(, document.getElementById('root')); 16 | -------------------------------------------------------------------------------- /src/operationcode_challenge/names.txt: -------------------------------------------------------------------------------- 1 | Zeheva 2 | RickR 3 | smjparsons 4 | s_weekly 5 | phucledien 6 | Hiren 7 | Andrew Young 8 | r3c0gniz3r 9 | wheezykw 10 | Colleen 11 | rdes 12 | Rugi 13 | Keith Warren 14 | Ammo 15 | BaldwinEP - Ed 16 | fernandoylet 17 | Clardy51 18 | Drew Bragg 19 | Bryan Malloy 20 | AndrewN 21 | rsd_henry 22 | artiepolanco 23 | Rob Combs 24 | Jeff Gullidge 25 | theunmanifested 26 | KS MacLeod 27 | seanmangosing 28 | AidenEli 29 | Zabrina 30 | John Hampton 31 | Josh 32 | Kevin Moon 33 | John Carlisle 34 | John Park 35 | Adam Abundis 36 | Aria Askari 37 | Phillip Ngo 38 | Carl Rempel 39 | Tyler Sweeney 40 | Roger Terrill 41 | Rebecca Martin 42 | Anthony Cruz Rodriguez 43 | Michael Salvati 44 | Jonathan Gallo 45 | Deitrich Smikle 46 | Christopher Torres 47 | Sepideh 48 | Seanrad 49 | -------------------------------------------------------------------------------- /src/scenes/home/404/404.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/scenes/home/404/404.gif -------------------------------------------------------------------------------- /src/scenes/home/404/fourOhFour.css: -------------------------------------------------------------------------------- 1 | .FourOhFour { 2 | width: 100vw; 3 | height: 100vh; 4 | background: #121212; 5 | } 6 | 7 | .FourOhFour .bg { 8 | background-image: url('./404.gif'); 9 | width: 100vw; 10 | height: 100vh; 11 | background-size: cover; 12 | color: white; 13 | display:flex; 14 | flex-direction: column; 15 | justify-content: center; 16 | align-items: center; 17 | } 18 | 19 | .title{ 20 | font-size: 4rem; 21 | } 22 | 23 | .paragraph { 24 | font-size: 1.4rem; 25 | } 26 | 27 | -------------------------------------------------------------------------------- /src/scenes/home/404/fourOhFour.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import styles from './fourOhFour.css'; 3 | 4 | const FourOhFour = () => ( 5 |
6 |
7 |

404!

8 |

You definitely weren't supposed to see this...

9 |
10 |
11 | ); 12 | 13 | export default FourOhFour; 14 | -------------------------------------------------------------------------------- /src/scenes/home/about/about.css: -------------------------------------------------------------------------------- 1 | .banner { 2 | display: flex; 3 | justify-content: center; 4 | align-items: center; 5 | text-align: center; 6 | text-shadow: #000 1px 0 15px; 7 | color: white; 8 | height: 480px; 9 | } 10 | 11 | .bannerText { 12 | width: 80%; 13 | } 14 | 15 | .serviceSealWrapper { 16 | display: flex; 17 | flex-flow: row wrap; 18 | justify-content: space-around; 19 | align-items: center; 20 | width: 85%; 21 | } 22 | 23 | .serviceSeal { 24 | height: 100px; 25 | width: 100px; 26 | padding: 10px; 27 | } 28 | 29 | .coreValues { 30 | display: flex; 31 | flex-flow: row wrap; 32 | justify-content: space-around; 33 | align-items: center; 34 | width: 85%; 35 | } 36 | 37 | @media screen and (max-width: 465px) { 38 | .banner { 39 | height: auto; 40 | padding: 30px 0; 41 | } 42 | 43 | .serviceSeal { 44 | height: 75px; 45 | width: 75px; 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /src/scenes/home/about/financialStatements/financialReport.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import PropTypes from 'prop-types'; 3 | 4 | const FinancialReport = ({ url, name }) =>

{name}

; 5 | 6 | FinancialReport.propTypes = { 7 | name: PropTypes.string.isRequired, 8 | url: PropTypes.string.isRequired, 9 | }; 10 | 11 | export default FinancialReport; 12 | -------------------------------------------------------------------------------- /src/scenes/home/about/financialStatements/financialStatements.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import Section from 'shared/components/section/section'; 3 | import FinancialReport from './financialReport'; 4 | 5 | const FinancialStatements = () => ( 6 |
7 | 8 | 9 | 10 |
11 | ); 12 | 13 | export default FinancialStatements; 14 | -------------------------------------------------------------------------------- /src/scenes/home/about/valueCard/valueCard.css: -------------------------------------------------------------------------------- 1 | .valueCard { 2 | border: 2px #AAA solid; 3 | max-width: 425px; 4 | min-height: 275px; 5 | padding: 0 30px; 6 | margin: 40px 20px; 7 | } 8 | 9 | .valueCard h4 { 10 | text-align: center; 11 | text-decoration: underline; 12 | padding-top: 25px; 13 | } 14 | 15 | @media only screen and (max-width: 500) { 16 | .valueCard h4 { 17 | font-size: 1.5rem; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/scenes/home/about/valueCard/valueCard.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import PropTypes from 'prop-types'; 3 | import styles from './valueCard.css'; 4 | 5 | const ValueCard = ({ name, description }) => ( 6 |
7 |

{name}

8 |

{description}

9 |
10 | ); 11 | 12 | ValueCard.propTypes = { 13 | name: PropTypes.string.isRequired, 14 | description: PropTypes.string.isRequired 15 | }; 16 | 17 | export default ValueCard; 18 | -------------------------------------------------------------------------------- /src/scenes/home/about/whatWeDo/whatWeDo.css: -------------------------------------------------------------------------------- 1 | .whatWeDoContent { 2 | display: flex; 3 | flex-flow: row wrap; 4 | align-items: center; 5 | justify-content: space-around; 6 | } 7 | -------------------------------------------------------------------------------- /src/scenes/home/benefit/benefitdinner_auction_operationcode.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/scenes/home/benefit/benefitdinner_auction_operationcode.pdf -------------------------------------------------------------------------------- /src/scenes/home/benefit/logos/320px-EBay_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/scenes/home/benefit/logos/320px-EBay_logo.png -------------------------------------------------------------------------------- /src/scenes/home/benefit/logos/NodeSummitSF_ColorLogoWeb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/scenes/home/benefit/logos/NodeSummitSF_ColorLogoWeb.jpg -------------------------------------------------------------------------------- /src/scenes/home/benefit/logos/SecureSet.logoUSE.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/scenes/home/benefit/logos/SecureSet.logoUSE.jpg -------------------------------------------------------------------------------- /src/scenes/home/benefit/logos/alchemyLogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/scenes/home/benefit/logos/alchemyLogo.png -------------------------------------------------------------------------------- /src/scenes/home/benefit/logos/gitkraken-logo-dark-hz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/scenes/home/benefit/logos/gitkraken-logo-dark-hz.png -------------------------------------------------------------------------------- /src/scenes/home/benefit/logos/launchcode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/scenes/home/benefit/logos/launchcode.png -------------------------------------------------------------------------------- /src/scenes/home/benefit/logos/pvaoregon.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/scenes/home/benefit/logos/pvaoregon.jpg -------------------------------------------------------------------------------- /src/scenes/home/benefit/logos/srvd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/scenes/home/benefit/logos/srvd.png -------------------------------------------------------------------------------- /src/scenes/home/benefit/logos/topcoder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/scenes/home/benefit/logos/topcoder.png -------------------------------------------------------------------------------- /src/scenes/home/branding/branding.css: -------------------------------------------------------------------------------- 1 | .brandingConatiner { 2 | width: 100%; 3 | height: 100%; 4 | background-color: #f0f2f2; 5 | } 6 | 7 | @media (min-width: 769px) and (max-width: 1025px) { 8 | .brandingConatiner > .content { 9 | width: 90%; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/scenes/home/branding/branding.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import LogosSection from './logos/logos'; 3 | import ColorsSection from './colors/colors'; 4 | import FontsSection from './fonts/fonts'; 5 | import styles from './branding.css'; 6 | 7 | const Branding = () => ( 8 |
9 | 10 | 11 | 12 |
13 | ); 14 | 15 | export default Branding; 16 | -------------------------------------------------------------------------------- /src/scenes/home/branding/colors/colors.css: -------------------------------------------------------------------------------- 1 | .colorPalette { 2 | text-align: center; 3 | margin: 3em 0; 4 | } 5 | 6 | .colorPalette:last-child { 7 | margin-top: 0em; 8 | } 9 | 10 | .colorImages { 11 | display: inline-block; 12 | margin: 1em; 13 | } 14 | 15 | .colorImages img { 16 | max-width: 300px; 17 | } 18 | 19 | .colorImages p { 20 | text-align: left; 21 | } 22 | -------------------------------------------------------------------------------- /src/scenes/home/branding/fonts/fonts.css: -------------------------------------------------------------------------------- 1 | .brandingFonts { 2 | text-align: center; 3 | margin: 3em 0; 4 | } 5 | 6 | .brandingFonts img { 7 | max-width: 90%; 8 | } 9 | 10 | .brandingFonts a { 11 | color: #249cbc; 12 | text-decoration: none; 13 | } 14 | -------------------------------------------------------------------------------- /src/scenes/home/branding/fonts/fonts.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import Section from 'shared/components/section/section'; 3 | import PFDinSample from 'images/fonts/pf-din-font.png'; 4 | import NotoSerifSample from 'images/fonts/noto-serif-font.png'; 5 | import styles from './fonts.css'; 6 | 7 | const FontsSection = () => ( 8 |
9 |
10 |
PF DIN DISPLAY PRO REGULAR
11 | PF DIN REGULAR FONT 12 |

13 | 14 | Download PF Din font files 15 | 16 |

17 |

 

18 |
NOTO SERIF REGULAR
19 | NOTO SERIF REGULAR FONT 20 |

21 | 22 | Download Noto Serif font files 23 | 24 |

25 |
26 |
27 | ); 28 | 29 | export default FontsSection; 30 | -------------------------------------------------------------------------------- /src/scenes/home/challenge/challenge.css: -------------------------------------------------------------------------------- 1 | /* TODO: Move styles to global stylesheet */ 2 | code { 3 | background-color: #F0F2F2; 4 | border-radius: 4px; 5 | border-style: solid; 6 | border-color: #F0F2F2; 7 | } 8 | 9 | .instructionList img { 10 | max-width: 100%; 11 | height: auto; 12 | padding: 0 10px; /* On this component, all non-classed images are inline */ 13 | } 14 | 15 | .displayLinebreak { 16 | white-space: pre-line; 17 | text-align: center; 18 | } 19 | 20 | .displayBlock > div { 21 | display: block; 22 | } 23 | 24 | .instructionList { 25 | line-height: 1.5; 26 | padding: 0 0 0 5px; 27 | margin: 0; 28 | } 29 | 30 | .instructionList li { 31 | padding: 0 0 25px 0; 32 | } 33 | 34 | .blockImage { 35 | padding: 0 !important; 36 | } 37 | 38 | .centerText { 39 | text-align: center; 40 | } 41 | -------------------------------------------------------------------------------- /src/scenes/home/codeSchools/approvedSchools/approvedSchools.css: -------------------------------------------------------------------------------- 1 | .noteForSchoolReps { 2 | text-align: center; 3 | font-size: 1em; 4 | margin: 15px 0 0 0; 5 | } 6 | 7 | .vaSchools { 8 | display: flex; 9 | flex-flow: row wrap; 10 | align-items: center; 11 | justify-content: space-around; 12 | } 13 | -------------------------------------------------------------------------------- /src/scenes/home/codeSchools/codeSchools.css: -------------------------------------------------------------------------------- 1 | .filterButtonDiv { 2 | display: flex; 3 | flex-flow: row wrap; 4 | width: 80%; 5 | justify-content: space-around; 6 | padding-top: 10px; 7 | } 8 | 9 | /* Space between buttons for vertical, single column */ 10 | .filterButtonDiv > a { 11 | margin: 2% 1%; 12 | } 13 | 14 | .codeschoolError { 15 | color: red; 16 | text-align: center; 17 | } 18 | -------------------------------------------------------------------------------- /src/scenes/home/codeSchools/moocSchools/moocSchools.css: -------------------------------------------------------------------------------- 1 | .moocCards { 2 | display: flex; 3 | flex-flow: row wrap; 4 | align-items: center; 5 | justify-content: space-around; 6 | } -------------------------------------------------------------------------------- /src/scenes/home/codeSchools/onlineSchools/onlineSchools.css: -------------------------------------------------------------------------------- 1 | .eSchools { 2 | display: flex; 3 | flex-flow: row wrap; 4 | align-items: center; 5 | justify-content: space-around; 6 | } -------------------------------------------------------------------------------- /src/scenes/home/codeSchools/stateSortedSchools/stateSortedSchools.css: -------------------------------------------------------------------------------- 1 | .stateSchools { 2 | display: flex; 3 | flex-flow: row wrap; 4 | align-items: center; 5 | justify-content: space-around; 6 | } 7 | 8 | .select { 9 | min-width: 300px; 10 | width: 100%; 11 | max-width: 900px; 12 | } 13 | 14 | /* iPhone Safari-only media query to prevent zoom effect when the select is focused */ 15 | /* see https://stackoverflow.com/questions/6483425/prevent-iphone-from-zooming-in-on-select-in-web-app */ 16 | 17 | @media screen and (-webkit-min-device-pixel-ratio: 0) { 18 | 19 | .select input { 20 | font-size: 16px !important; 21 | } 22 | 23 | .select input:focus { 24 | font-size: 16px !important; 25 | } 26 | } -------------------------------------------------------------------------------- /src/scenes/home/contact/contact.css: -------------------------------------------------------------------------------- 1 | p { 2 | font-size: 1.1rem; 3 | } 4 | 5 | svg { 6 | color: #249CBC; 7 | } 8 | 9 | a:hover > svg { 10 | color: #44BCDC; 11 | } 12 | 13 | .flexContainer { 14 | width: 80%; 15 | display: flex; 16 | flex-flow: row wrap; 17 | justify-content: space-around; 18 | padding: 15px 0 0 0; 19 | } 20 | 21 | .flexContainer > div { 22 | padding: 0 30px 50px 30px; 23 | } 24 | 25 | .centerText { 26 | text-align: center; 27 | } -------------------------------------------------------------------------------- /src/scenes/home/families/facts/facts.css: -------------------------------------------------------------------------------- 1 | 2 | .facts { 3 | display: 'flex'; 4 | background-color: '#E2E2E2'; 5 | align-items: 'center'; 6 | padding: '96px'; 7 | } 8 | .factsHeading { 9 | font-size: '50px'; 10 | text-align: 'center'; 11 | } 12 | .factsList { 13 | color: '#445366'; 14 | font-size: '24px'; 15 | padding: '0 32px'; 16 | } 17 | .factsRight { 18 | padding: '0 32px' 19 | } 20 | .factsImage { 21 | width: '30vw'; 22 | border-radius: '40px'; 23 | } 24 | .factItem { 25 | padding-bottom: '24px'; 26 | } -------------------------------------------------------------------------------- /src/scenes/home/families/jumboQuote/jumboQuote.css: -------------------------------------------------------------------------------- 1 | 2 | .quotes { 3 | color: #445366; 4 | } 5 | .quoteBody { 6 | text-align: center; 7 | color: #445366; 8 | } 9 | .quoteAuthor { 10 | text-align: right; 11 | color: #445366; 12 | } 13 | .quoteIcon { 14 | vertical-align: top; 15 | } 16 | -------------------------------------------------------------------------------- /src/scenes/home/families/jumboQuote/jumboQuote.js: -------------------------------------------------------------------------------- 1 | import React, { Component } from 'react'; 2 | import FontAwesomeIcon from '@fortawesome/react-fontawesome'; 3 | import { faQuoteLeft, faQuoteRight } from '@fortawesome/fontawesome-free-solid'; 4 | import quotes from './quotes.json'; 5 | import styles from './jumboQuote.css'; 6 | 7 | class JumboQuote extends Component { 8 | constructor(props) { 9 | super(props); 10 | 11 | this.state = { 12 | quote: {} 13 | }; 14 | } 15 | 16 | componentDidMount() { 17 | if (quotes.quotes.length > 0) { 18 | const randomQuoteID = Math.floor(Math.random() * quotes.quotes.length); 19 | 20 | this.setState({ 21 | quote: quotes.quotes[randomQuoteID] 22 | }); 23 | } 24 | } 25 | 26 | render() { 27 | return ( 28 |
29 |

30 | 31 | {this.state.quote.body} 32 | 33 |

34 |
{this.state.quote.author}
35 |
36 | ); 37 | } 38 | } 39 | 40 | export default JumboQuote; 41 | -------------------------------------------------------------------------------- /src/scenes/home/families/jumboQuote/quotes.json: -------------------------------------------------------------------------------- 1 | { 2 | "quotes": [{ 3 | "author": "Former First Lady Michelle Obama", 4 | "body": "It's hard to impress employers who often view a resume with multiple jobs as a red flag rather than as a reality of military life." 5 | }] 6 | } 7 | 8 | -------------------------------------------------------------------------------- /src/scenes/home/faq/faq.css: -------------------------------------------------------------------------------- 1 | .container { 2 | display: flex; 3 | flex-direction: column; 4 | align-items: center; 5 | justify-content: center; 6 | } 7 | -------------------------------------------------------------------------------- /src/scenes/home/faq/faq.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import Section from 'shared/components/section/section'; 3 | import Question from './question/question'; 4 | import QuestionAnswerData from './questions'; 5 | import styles from './faq.css'; 6 | 7 | const FAQ = () => { 8 | const generalQuestions = QuestionAnswerData.general.map(qna => ( 9 | 10 | )); 11 | const donationQuestions = QuestionAnswerData.donation.map(qna => ( 12 | 13 | )); 14 | const volunteerQuestions = QuestionAnswerData.volunteer.map(qna => ( 15 | 16 | )); 17 | 18 | return ( 19 |
20 |
21 |
{generalQuestions}
22 |
23 |
24 |
25 |
{donationQuestions}
26 |
27 |
28 |
29 |
{volunteerQuestions}
30 |
31 |
32 | ); 33 | }; 34 | 35 | export default FAQ; 36 | -------------------------------------------------------------------------------- /src/scenes/home/faq/question/question.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import PropTypes from 'prop-types'; 3 | import styles from './question.css'; 4 | 5 | const Question = ({ q, a }) => ( 6 |
7 | 8 | 9 | { // eslint-disable-next-line 10 |

11 | } 12 |

13 | ); 14 | 15 | Question.propTypes = { 16 | q: PropTypes.string.isRequired, 17 | a: PropTypes.string.isRequired 18 | }; 19 | 20 | export default Question; 21 | -------------------------------------------------------------------------------- /src/scenes/home/gala/gala.css: -------------------------------------------------------------------------------- 1 | .hero { 2 | background-image: url('./portland19.jpg'); 3 | text-align: center; 4 | } 5 | .heading { 6 | color: #fff; 7 | padding: 10% 0; 8 | } 9 | 10 | .galaLink { 11 | color: #fff; 12 | font-size: 1.2em; 13 | } 14 | -------------------------------------------------------------------------------- /src/scenes/home/gala/portland19.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/scenes/home/gala/portland19.jpg -------------------------------------------------------------------------------- /src/scenes/home/getInvolved/getInvolved.css: -------------------------------------------------------------------------------- 1 | /* Shared styles for Get Involved sections: Why Give, Volunteer, etc. */ 2 | 3 | .wrapper { 4 | display: flex; 5 | } 6 | 7 | .half { 8 | box-sizing: border-box; 9 | display: flex; 10 | flex-direction: column; 11 | align-items: center; 12 | justify-content: center; 13 | width: 50%; 14 | } 15 | 16 | .halfPhotoWrapper { 17 | composes: half; 18 | } 19 | 20 | .photo { 21 | width: 100%; 22 | max-width: 500px; 23 | height: auto; 24 | } 25 | 26 | .list { 27 | list-style-type: none; 28 | margin: 0; 29 | padding: 0; 30 | } 31 | 32 | .listItem { 33 | display: flex; 34 | align-items: center; 35 | } 36 | 37 | .itemText { 38 | margin-left: 20px; 39 | } 40 | 41 | .button { 42 | margin-top: 1rem; 43 | } 44 | 45 | @media only screen and (min-width: 1112px) { 46 | .half { 47 | padding: 2rem; 48 | } 49 | } 50 | 51 | @media only screen and (min-width: 320px) and (max-width: 1111px) { 52 | .wrapper { 53 | display: flex; 54 | flex-direction: column; 55 | align-items: center; 56 | } 57 | 58 | .half { 59 | padding: 1rem 0; 60 | width: 100%; 61 | } 62 | 63 | .halfPhotoWrapper { 64 | order: -1; 65 | } 66 | } -------------------------------------------------------------------------------- /src/scenes/home/getInvolved/getInvolved.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import HeroBanner from 'shared/components/heroBanner/heroBanner'; 3 | import WhyGive from './whyGive/whyGive'; 4 | import Volunteer from './volunteer/volunteer'; 5 | 6 | const getInvolved = () => ( 7 |
8 | 13 | 14 | 15 | 16 |
17 | ); 18 | 19 | export default getInvolved; 20 | -------------------------------------------------------------------------------- /src/scenes/home/header/burger/burger.css: -------------------------------------------------------------------------------- 1 | .burger { 2 | display: none; 3 | } 4 | 5 | .burger img { 6 | width: 1em; 7 | margin: 0; 8 | background-color: #fafafa; 9 | padding: 10px; 10 | border-radius: 5px; 11 | transition: box-shadow 0.2s cubic-bezier(0.4, 0, 0.2, 1); 12 | transition-delay: 0.2s; 13 | box-shadow: 0 2px 5px 0 grey; 14 | } 15 | 16 | @media screen and (max-width: 779px) { 17 | .burger { 18 | display: block; 19 | position: absolute; 20 | right: 5%; 21 | top: 20px; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/scenes/home/header/burger/burger.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import PropTypes from 'prop-types'; 3 | import burger from 'images/icons/menu.svg'; 4 | import styles from './burger.css'; 5 | 6 | function Burger(props) { 7 | return ( 8 |
9 | 10 |
11 | ); 12 | } 13 | 14 | Burger.propTypes = { 15 | onClick: PropTypes.func.isRequired 16 | }; 17 | 18 | export default Burger; 19 | -------------------------------------------------------------------------------- /src/scenes/home/header/header.css: -------------------------------------------------------------------------------- 1 | .header { 2 | display: flex; 3 | align-items: center; 4 | height: 80px; 5 | background-color: rgb(117,129,143); 6 | padding: 0 2rem; 7 | } 8 | 9 | .logo { 10 | display: flex; 11 | align-items: center; 12 | height: 60px; 13 | margin-left: 40px; 14 | } 15 | 16 | .logo img { 17 | height: 50px; 18 | } 19 | 20 | .transparent { 21 | background-color: transparent; 22 | } 23 | -------------------------------------------------------------------------------- /src/scenes/home/header/logo/logo.css: -------------------------------------------------------------------------------- 1 | .logo { 2 | height: 60px; 3 | flex: 0 40%; 4 | align-items: center; 5 | display:flex; 6 | } 7 | 8 | .logo img { 9 | height: 50px; 10 | } 11 | 12 | @media screen and (max-width: 900px) { 13 | .logo { 14 | margin-left: 10px; 15 | } 16 | 17 | .logo img { 18 | height: 40px; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/scenes/home/header/logo/logo.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { Link } from 'react-router-dom'; 3 | import logo from 'images/logos/small-white-logo.png'; 4 | import styles from './logo.css'; 5 | 6 | const Logo = () => ( 7 |
8 | 9 |
10 | ); 11 | 12 | export default Logo; 13 | -------------------------------------------------------------------------------- /src/scenes/home/header/navItem/navItem.css: -------------------------------------------------------------------------------- 1 | .navItem { 2 | text-decoration: none; 3 | color: #F7F7F7; 4 | } 5 | 6 | .navItem:hover { 7 | text-shadow: 2px 2px 2px #333; 8 | transition-duration: 0.2s; 9 | } 10 | 11 | .menuItem { 12 | composes: navItem; 13 | font-size: 30px; 14 | } 15 | 16 | .menuItem ~ .menuItem { 17 | margin-top: 16px; 18 | } 19 | 20 | .disabledNavItem { 21 | display: none; 22 | } 23 | -------------------------------------------------------------------------------- /src/scenes/home/header/navItem/navItem.js: -------------------------------------------------------------------------------- 1 | import React, { PureComponent } from 'react'; 2 | import { Link } from 'react-router-dom'; 3 | import PropTypes from 'prop-types'; 4 | import styles from './navItem.css'; 5 | 6 | class NavItem extends PureComponent { 7 | constructor() { 8 | super(); 9 | this.handleClick = this.handleClick.bind(this); 10 | } 11 | 12 | handleClick() { 13 | if (this.props.onClick) { 14 | this.props.onClick(); 15 | } 16 | } 17 | 18 | render() { 19 | const classes = `${styles.navItem} ${styles[this.props.className]}`; 20 | if (this.props.isExternal) { 21 | return ( 22 | 23 | {this.props.text} 24 | 25 | ); 26 | } 27 | 28 | return ( 29 | 30 | {this.props.text} 31 | 32 | ); 33 | } 34 | } 35 | 36 | NavItem.propTypes = { 37 | className: PropTypes.string, 38 | isExternal: PropTypes.bool, 39 | onClick: PropTypes.func, 40 | to: PropTypes.string, 41 | text: PropTypes.string.isRequired 42 | }; 43 | 44 | NavItem.defaultProps = { 45 | className: null, 46 | isExternal: false, 47 | onClick: null, 48 | to: '' 49 | }; 50 | 51 | export default NavItem; 52 | -------------------------------------------------------------------------------- /src/scenes/home/header/sideNav/sideNav.css: -------------------------------------------------------------------------------- 1 | .content { 2 | background-color: black; 3 | background-color:rgba(47,52,72,.95); 4 | height: 100%; 5 | width: 100%; 6 | } 7 | 8 | .header { 9 | position: relative; 10 | height: 80px; 11 | } 12 | 13 | .logo { 14 | position: relative; 15 | left: 5%; 16 | top: 50%; 17 | transform: translateY(-50%); 18 | height: 40px; 19 | max-width: 75%; 20 | } 21 | 22 | .close { 23 | color: #fff; 24 | text-decoration: none; 25 | font-size: 40px; 26 | position: absolute; 27 | right: 5%; 28 | top: 50%; 29 | transform: translateY(-50%); 30 | } 31 | 32 | .list { 33 | padding: 30px 5%; 34 | border-top: 1px solid #fafafa; 35 | font-size: 2.5em; 36 | } 37 | 38 | .item { 39 | color: #F7F7F7; 40 | } 41 | 42 | .item ~ .item { 43 | margin-top: 16px; 44 | } 45 | 46 | .list span { 47 | display: flex; 48 | height: 100%; 49 | flex-direction: column; 50 | position: relative; 51 | } 52 | 53 | @media screen and (orientation: landscape) { 54 | .list { 55 | font-size: 1.3em; 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /src/scenes/home/header/sideNav/sideNav.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import PropTypes from 'prop-types'; 3 | import logo from 'images/logos/small-white-logo.png'; 4 | import Drawer from 'shared/components/drawer/drawer'; 5 | import styles from './sideNav.css'; 6 | 7 | const SideNav = ({ children, isVisible, onClose }) => ( 8 | 9 |
10 |
11 | 12 | Operation Code logo 13 | 14 | 15 |
16 |
17 | {children} 18 |
19 |
20 |
21 | ); 22 | 23 | SideNav.propTypes = { 24 | children: PropTypes.node.isRequired, 25 | isVisible: PropTypes.bool, 26 | onClose: PropTypes.func 27 | }; 28 | 29 | SideNav.defaultProps = { 30 | isVisible: false, 31 | onClose: () => {} 32 | }; 33 | 34 | export default SideNav; 35 | -------------------------------------------------------------------------------- /src/scenes/home/header/topNav/topNav.css: -------------------------------------------------------------------------------- 1 | .topNav { 2 | display: flex; 3 | justify-content: flex-end; 4 | flex: 1 0 60%; 5 | font-size: 20px; 6 | } 7 | 8 | .topNav a { 9 | margin: 1rem; 10 | } 11 | 12 | @media screen and (max-width: 1000px) { 13 | .topNav { 14 | margin-right: 40px; 15 | font-size:16px; 16 | } 17 | .topNav a { 18 | margin: 0.7rem; 19 | } 20 | } 21 | 22 | @media screen and (max-width: 779px) /* Tablet */ { 23 | .topNav { 24 | display: none; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/scenes/home/header/topNav/topNav.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import PropTypes from 'prop-types'; 3 | import styles from './topNav.css'; 4 | 5 | const TopNav = ({ children }) => ( 6 |
7 | {children} 8 |
9 | ); 10 | 11 | TopNav.propTypes = { 12 | children: PropTypes.node.isRequired 13 | }; 14 | 15 | export default TopNav; 16 | -------------------------------------------------------------------------------- /src/scenes/home/history/history.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/scenes/home/history/history.css -------------------------------------------------------------------------------- /src/scenes/home/history/history.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import Section from 'shared/components/section/section'; 3 | import QuoteBanner from 'shared/components/quoteBanner/quoteBanner'; 4 | import Timeline from './timeline/timeline'; 5 | 6 | const History = () => ( 7 |
8 | 12 | 13 |
18 | 19 |
20 |
21 | ); 22 | 23 | export default History; 24 | -------------------------------------------------------------------------------- /src/scenes/home/history/timeline/timeline.css: -------------------------------------------------------------------------------- 1 | .timeline { 2 | width: 90%; 3 | margin: 50px auto; 4 | } 5 | 6 | .segment { 7 | display: flex; 8 | } 9 | 10 | /* Date (left column) */ 11 | .date { 12 | flex: 1; 13 | position: relative; 14 | text-align: right; 15 | } 16 | 17 | .date > h3 { 18 | position: absolute; 19 | width: 100%; 20 | top: 14px; 21 | padding-right: 10px; 22 | } 23 | 24 | /* Vertical Line w/ Bubbles (middle column) */ 25 | .vertLine { 26 | position: relative; 27 | padding: 0 20px; 28 | } 29 | 30 | .line { 31 | position: absolute; 32 | transform: translateX(-50%); 33 | width: 2px; 34 | top: 0; 35 | height: 100%; 36 | background-color : #d7d7d7; 37 | } 38 | 39 | .bubble { 40 | width: 15px; 41 | height: 15px; 42 | border-radius: 50%; 43 | border: 2px solid #7d7d7d; 44 | background-color: white; 45 | position: absolute; 46 | transform: translateX(-50%); 47 | top: 25px; 48 | } 49 | 50 | /* Events (right column) */ 51 | .timelineEvent { 52 | flex: 8; 53 | } 54 | 55 | @media screen and (max-width: 680px) { 56 | .date > h3 { 57 | top: 24px; 58 | font-size: 1.1rem; 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /src/scenes/home/history/timelineEvent/timelineEvent.css: -------------------------------------------------------------------------------- 1 | .eventContainer { 2 | margin: 0 0 30px 0; 3 | border: 1px solid #c5c5c5; 4 | padding: 20px; 5 | border-radius: 5px; 6 | } 7 | 8 | .eventTitle { 9 | text-transform: capitalize; 10 | } 11 | 12 | @media screen and (max-width: 680px) { 13 | .eventTitle { 14 | font-size: 1.5rem; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/scenes/home/history/timelineEvent/timelineEvent.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import PropTypes from 'prop-types'; 3 | import styles from './timelineEvent.css'; 4 | 5 | const TimelineEvent = ({ title, content }) => ( 6 |
7 |

{title}

8 | 9 |
{content}
10 |
11 | ); 12 | 13 | TimelineEvent.propTypes = { 14 | title: PropTypes.string.isRequired, 15 | content: PropTypes.oneOfType([PropTypes.string, PropTypes.array, PropTypes.node]).isRequired, 16 | }; 17 | 18 | export default TimelineEvent; 19 | -------------------------------------------------------------------------------- /src/scenes/home/informationForm/formComponents/formComponents.css: -------------------------------------------------------------------------------- 1 | .information__form > * { 2 | margin-top: 10px; 3 | } 4 | 5 | .information__input { 6 | background-color: #E6E6E6; 7 | color: #000; 8 | border: none; 9 | font-size: 1.3em; 10 | padding: 0 16px; 11 | height: 50px; 12 | width: 100%; 13 | } 14 | 15 | .information__select { 16 | height: 4.2rem; 17 | width: 100%; 18 | padding: 0 1rem; 19 | background-color: #e6e6e6; 20 | font-size: 1.3rem; 21 | margin: 1rem 0; 22 | } 23 | 24 | .signup select { 25 | height: 4.2rem; 26 | width: 100%; 27 | padding: 0 1rem; 28 | background-color: #e6e6e6; 29 | font-size: 1.3rem; 30 | margin: 1rem 0; 31 | } 32 | 33 | .signup { 34 | width:100%; 35 | } 36 | 37 | .signup .info__tags { 38 | display: flex; 39 | flex-wrap: wrap; 40 | margin: 20px 0; 41 | width: 100%; 42 | } 43 | 44 | .signup .info__tagsTitle { 45 | font-size: 1.5em; 46 | } 47 | -------------------------------------------------------------------------------- /src/scenes/home/jobs/featuredJob/featuredJob.css: -------------------------------------------------------------------------------- 1 | /* Note: these styles are copied to match the ziprecruiter styles that are being dynamically inserted on our page (see jobs.js) */ 2 | 3 | .job { 4 | padding: 15px 0px; 5 | } 6 | 7 | .link { 8 | text-decoration: none; 9 | color: #1a0dab; 10 | font-size: 17px; 11 | float: left; 12 | margin-right: 3px; 13 | margin-bottom: 1px; 14 | } 15 | 16 | .details { 17 | font-size: 13px; 18 | color: #999999; 19 | margin: 3px 0; 20 | clear: both; 21 | } 22 | 23 | .detailsContainer { 24 | float: left; 25 | margin-right: 15px; 26 | } 27 | 28 | .detail { 29 | margin-left: 4px; 30 | } 31 | 32 | .remote { 33 | composes: detail; 34 | font-style: italic; 35 | } 36 | 37 | .description { 38 | clear: both; 39 | font-size: 14px; 40 | color: #545454; 41 | line-height: 1.4; 42 | word-wrap: break-word; 43 | } -------------------------------------------------------------------------------- /src/scenes/home/jobs/jobs.css: -------------------------------------------------------------------------------- 1 | /* Note: these styles are copied to match the ziprecruiter styles that are inserted on our page */ 2 | 3 | .featuredJobsContainer { 4 | width: 100%; 5 | float: left; 6 | clear: both; 7 | } 8 | 9 | .featuredJobs { 10 | font-family: Arial, Helvetica, sans-serif; 11 | margin: 30px 0px 10px; 12 | width: 100%; 13 | max-width: 768px; 14 | } 15 | 16 | .contact { 17 | margin: 30px 0 0 0; 18 | align-self: flex-start; 19 | font-size: 1rem; 20 | } -------------------------------------------------------------------------------- /src/scenes/home/landing/emailSignup/emailSignup.css: -------------------------------------------------------------------------------- 1 | .emailSignup { 2 | width: 80%; 3 | } 4 | 5 | .emailListForm { 6 | justify-content: center; 7 | align-items: center; 8 | } 9 | 10 | .emailInput { 11 | margin-bottom: 16px; 12 | width: 20em; 13 | } 14 | 15 | .emailSignupText { 16 | max-width: 700px; 17 | font-size: 20px; 18 | } 19 | 20 | 21 | -------------------------------------------------------------------------------- /src/scenes/home/landing/membership/membership.css: -------------------------------------------------------------------------------- 1 | .intro { 2 | font-size: 18px; 3 | font-family: 'Noto Serif'; 4 | width: 80%; 5 | } 6 | 7 | .list { 8 | display: flex; 9 | flex-flow: row wrap; 10 | justify-content: space-around; 11 | margin: 0; 12 | padding: 0; 13 | } 14 | 15 | .list li { 16 | list-style: none; 17 | margin: 0; 18 | font-size: 16px; 19 | text-align: center; 20 | display: flex; 21 | flex-direction: column; 22 | } 23 | 24 | .list li span { 25 | padding-bottom: 20px; 26 | } 27 | 28 | .icon { 29 | height:100px; 30 | padding-bottom: 20px; 31 | } 32 | -------------------------------------------------------------------------------- /src/scenes/home/landing/moreInformation/moreInformation.css: -------------------------------------------------------------------------------- 1 | .moreInformation { 2 | display: flex; 3 | flex-flow: row wrap; 4 | flex-grow: 1; 5 | width:80%; 6 | justify-content: space-around; 7 | } -------------------------------------------------------------------------------- /src/scenes/home/landing/moreInformation/moreInformation.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import Section from 'shared/components/section/section'; 3 | import ClipPathImage from 'shared/components/clipPathImage/clipPathImage'; 4 | import familyImage from 'images/Family-1.jpg'; 5 | import milImage from 'images/Mil-1.jpg'; 6 | import volunteerImage from 'images/Volunteer-1.jpg'; 7 | 8 | import styles from './moreInformation.css'; 9 | 10 | const MoreInformation = () => ( 11 |
12 |
13 | 18 | 23 | 28 |
29 |
30 | ); 31 | 32 | export default MoreInformation; 33 | -------------------------------------------------------------------------------- /src/scenes/home/landing/partners/partners.css: -------------------------------------------------------------------------------- 1 | .partners { 2 | display: flex; 3 | flex-direction: column; 4 | align-items: center; 5 | width: 80%; 6 | } 7 | 8 | .partnerLogos { 9 | width: 80%; 10 | display: flex; 11 | flex-wrap: wrap; 12 | justify-content: space-around; 13 | } 14 | 15 | .partnerLogos > div { 16 | margin: 2rem; 17 | } 18 | 19 | .partnerLogos img { 20 | height: 100px; 21 | filter: grayscale(100%); 22 | transition: 0.2s ease-in-out; 23 | } 24 | 25 | .partnerLogos img:hover { 26 | filter: grayscale(0%); 27 | } 28 | 29 | @media screen and (max-width: 650px) { 30 | .partners { 31 | width: 90%; 32 | text-align: center; 33 | } 34 | 35 | .partnerLogos { 36 | width: 90%; 37 | justify-content: space-between; 38 | } 39 | 40 | .partnerLogos > div { 41 | margin: 1rem 0; 42 | width: 50%; 43 | display: flex; 44 | text-align: center; 45 | } 46 | 47 | .partnerLogos img { 48 | width: 70%; 49 | height: auto; 50 | filter: grayscale(0); 51 | margin: 0 auto; 52 | } 53 | } 54 | 55 | .contactUs { 56 | text-align: center; 57 | } 58 | -------------------------------------------------------------------------------- /src/scenes/home/landing/successStories/successStories.css: -------------------------------------------------------------------------------- 1 | .successStoriesContent { 2 | display: flex; 3 | flex-flow: row wrap; 4 | align-items: center; 5 | justify-content: space-around; 6 | } -------------------------------------------------------------------------------- /src/scenes/home/landing/successStories/successStories.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import Section from 'shared/components/section/section'; 3 | import ImageListItem from 'shared/components/imageListItem/imageListItem'; 4 | import image1 from 'images/Jon-Deng.jpg'; 5 | import image2 from 'images/Jameel-Matin.jpg'; 6 | import image3 from 'images/Sean-McBride.jpg'; 7 | import content from './successStoriesContent.json'; 8 | import styles from './successStories.css'; 9 | 10 | const SuccessStories = () => ( 11 |
12 |
13 | 18 | 23 | 28 |
29 |
30 | ); 31 | 32 | export default SuccessStories; 33 | -------------------------------------------------------------------------------- /src/scenes/home/landing/topcodeBanner/_topcodeBanner_notused.css: -------------------------------------------------------------------------------- 1 | .partners { 2 | display: flex; 3 | flex-direction: column; 4 | align-items: center; 5 | width: 80%; 6 | } 7 | 8 | .partnerLogos { 9 | width: 80%; 10 | display: flex; 11 | flex-wrap: wrap; 12 | justify-content: space-around; 13 | } 14 | 15 | .partnerLogos > div { 16 | margin: 0 50px; 17 | } 18 | 19 | .partnerLogos img { 20 | height: 100px; 21 | filter: grayscale(100%); 22 | transition: .2s ease-in-out; 23 | } 24 | 25 | .partnerLogos img:hover { 26 | filter: grayscale(0%); 27 | } 28 | 29 | 30 | @media screen and (max-width: 650px) { 31 | 32 | .partners { 33 | width: 90%; 34 | text-align: center; 35 | } 36 | 37 | .partnerLogos{ 38 | width: 90%; 39 | justify-content: space-between; 40 | } 41 | 42 | .partnerLogos > div { 43 | margin: 0; 44 | width: 50%; 45 | display: flex; 46 | text-align: center; 47 | 48 | } 49 | 50 | .partnerLogos img { 51 | width: 70%; 52 | height: auto; 53 | filter: grayscale(0); 54 | margin: 0 auto; 55 | } 56 | 57 | } 58 | 59 | .contactUs { 60 | text-align: center; 61 | } 62 | -------------------------------------------------------------------------------- /src/scenes/home/landing/topcodeBanner/topcodeBanner.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import topcodeLogo from 'images/partnerLogos/logo_topcoder_with_name.svg'; 3 | import AdBanner from 'shared/components/adBanner/adBanner'; 4 | 5 | const topcodeBanner = () => ( 6 | 13 | ); 14 | 15 | export default topcodeBanner; 16 | -------------------------------------------------------------------------------- /src/scenes/home/leadershipCircle/leadershipCircle.css: -------------------------------------------------------------------------------- 1 | .level { 2 | font-weight: bold; 3 | } 4 | -------------------------------------------------------------------------------- /src/scenes/home/mentorRequest/mentorRequest.css: -------------------------------------------------------------------------------- 1 | .MentorRequest { 2 | display: flex; 3 | align-items: center; 4 | justify-content: center; 5 | text-align: justify; 6 | padding: 2rem; 7 | } 8 | -------------------------------------------------------------------------------- /src/scenes/home/mentorRequest/mentorRequest.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import styles from './mentorRequest.css'; 3 | 4 | export default function mentorRequest() { 5 | return ( 6 |
7 | 11 |

12 | Please request for mentorship by joining Operation Code's Slack team. From there, 13 | typing and entering the following in any channel: 14 |

/mentor
15 | This will queue a bot to send you a direct message. Fill out that form and expect to 16 | contacted shortly afterward (usually less than 48 hours). 17 |

18 |
19 | ); 20 | } 21 | -------------------------------------------------------------------------------- /src/scenes/home/ourPrograms/gettingStarted/gettingStarted.css: -------------------------------------------------------------------------------- 1 | .timeline { 2 | width: 90%; 3 | margin: 50px auto; 4 | } 5 | 6 | .segment { 7 | display: flex; 8 | } 9 | 10 | /* Step Number (left column) */ 11 | .stepNumber { 12 | flex: 1; 13 | position: relative; 14 | text-align: right; 15 | white-space: nowrap; 16 | } 17 | 18 | .stepNumber > h3 { 19 | position: absolute; 20 | width: 100%; 21 | top: 14px; 22 | padding-right: 10px; 23 | } 24 | 25 | /* Vertical Line w/ Bubbles (middle column) */ 26 | .vertLine { 27 | position: relative; 28 | padding: 0 20px; 29 | } 30 | 31 | .line { 32 | position: absolute; 33 | transform: translateX(-50%); 34 | width: 2px; 35 | top: 0; 36 | height: 100%; 37 | background-color: #d7d7d7; 38 | } 39 | 40 | .bubble { 41 | width: 15px; 42 | height: 15px; 43 | border-radius: 50%; 44 | border: 2px solid #7d7d7d; 45 | background-color: white; 46 | position: absolute; 47 | transform: translateX(-50%); 48 | top: 25px; 49 | } 50 | 51 | /* Events (right column) */ 52 | .timelineEvent { 53 | flex: 8; 54 | } 55 | 56 | @media screen and (max-width: 680px) { 57 | .stepNumber > h3 { 58 | top: 24px; 59 | font-size: 1.1rem; 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /src/scenes/home/ourPrograms/mentorVolunteers/mentorVolunteers.css: -------------------------------------------------------------------------------- 1 | .iconList { 2 | align-items: flex-start; 3 | display: flex; 4 | flex-flow: column nowrap; 5 | justify-content: space-between; 6 | } 7 | 8 | .characteristics { 9 | align-items: center; 10 | display: flex; 11 | justify-content: flex-start; 12 | margin: 1rem 0; 13 | } 14 | 15 | .iconContainer { 16 | display: flex; 17 | justify-content: center; 18 | padding: 0 25px 0 0; 19 | min-width: 75px; 20 | } 21 | -------------------------------------------------------------------------------- /src/scenes/home/ourPrograms/mentorshipProgram/mentorshipProgram.css: -------------------------------------------------------------------------------- 1 | .flexContainer { 2 | width: 100%; 3 | display: flex; 4 | flex-flow: row; 5 | justify-content: space-around; 6 | padding: 15px 0 0 0; 7 | } 8 | 9 | .featureHeading { 10 | width: 30%; 11 | text-align: center; 12 | display: flex; 13 | justify-content: center; 14 | align-items: center; 15 | font-weight: 700; 16 | } 17 | 18 | .featureHeading > p { 19 | margin-left: 20px; 20 | } 21 | 22 | .iconStyle { 23 | color: #000; 24 | } 25 | 26 | .featureDescription { 27 | width: 70%; 28 | } 29 | 30 | @media screen and (max-width: 768px) { 31 | .flexContainer { 32 | flex-flow: column; 33 | } 34 | 35 | .featureHeading { 36 | width: 100%; 37 | } 38 | 39 | .featureDescription { 40 | width: 100%; 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /src/scenes/home/ourPrograms/ourPrograms.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import QuoteBanner from 'shared/components/quoteBanner/quoteBanner'; 3 | import MentorshipProgram from './mentorshipProgram/mentorshipProgram'; 4 | import MentorVolunteers from './mentorVolunteers/mentorVolunteers'; 5 | import GettingStarted from './gettingStarted/gettingStarted'; 6 | 7 | const OurPrograms = () => ( 8 |
9 | 13 | 14 | 15 | 16 |
17 | ); 18 | 19 | export default OurPrograms; 20 | -------------------------------------------------------------------------------- /src/scenes/home/policy/policyBanner.css: -------------------------------------------------------------------------------- 1 | .banner { 2 | display: flex; 3 | justify-content: center; 4 | width: 100%; 5 | } 6 | 7 | .bannerText { 8 | font-size: 18px; 9 | margin-top: 1rem; 10 | max-width: 80%; 11 | text-align: center; 12 | } 13 | 14 | @media screen and (max-width: 767px) { 15 | .bannerText { 16 | font-size: 14px; 17 | } 18 | } 19 | 20 | .bannerLink, 21 | .bannerLink:visited { 22 | color: inherit; 23 | text-decoration: none; 24 | } 25 | 26 | .bannerLink:hover { 27 | color: #249CBC; 28 | text-decoration: none; 29 | } 30 | -------------------------------------------------------------------------------- /src/scenes/home/policy/policyBanner.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import styles from './policyBanner.css'; 3 | 4 | const policyPageLink = '/policy'; 5 | 6 | // replace commented out bannertext below with new text if this component is needed for reuse in the future 7 | 8 | const PolicyBanner = () => ( 9 |
10 |

11 | {/* On April 19, 2018, we're heading to Washington, D.C. to modernize the G.I. Bill.{' '} */} 12 | 13 | Click here for details! 14 | 15 |

16 |
17 | ); 18 | 19 | export default PolicyBanner; 20 | 21 | -------------------------------------------------------------------------------- /src/scenes/home/press/civicXBadge/civicXBadge.css: -------------------------------------------------------------------------------- 1 | .civic { 2 | display: block; 3 | margin: 0 auto; 4 | } 5 | 6 | @media (max-width: 767px) { 7 | .civic { 8 | width: 100%; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/scenes/home/press/civicXBadge/civicXBadge.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import PropTypes from 'prop-types'; 3 | import OutboundLink from 'shared/components/outboundLink/outboundLink'; 4 | import civicX from '../../../../images/civic-x.png'; 5 | import styles from './civicXBadge.css'; 6 | 7 | const CivicXBadge = ({ sourceUrl = 'http://cvcx.org/veterans-solutions-lab/' }) => ( 8 |
9 | 10 | Operation Code is a graduate of the CivicX Accelerator. 15 | 16 |
17 | ); 18 | 19 | CivicXBadge.propTypes = { 20 | sourceUrl: PropTypes.string.isRequired 21 | }; 22 | 23 | export default CivicXBadge; 24 | -------------------------------------------------------------------------------- /src/scenes/home/press/press.css: -------------------------------------------------------------------------------- 1 | .flexContainer { 2 | width: 100%; 3 | display: flex; 4 | flex-flow: row wrap; 5 | justify-content: space-around; 6 | padding: 15px 0 0 0; 7 | } 8 | 9 | .flexContainer > div { 10 | padding: 0 30px 50px 30px; 11 | } 12 | 13 | .column { 14 | width: 375px; 15 | } 16 | 17 | .column > h4 { 18 | text-align: center; 19 | } 20 | 21 | .brandingLink { 22 | font-size: 1.5rem; 23 | } 24 | 25 | .header { 26 | text-align: center; 27 | } 28 | 29 | @media screen and (min-width: 415px) and (max-width: 1280px) { 30 | .column { 31 | width: 300px; 32 | } 33 | } 34 | 35 | @media screen and (max-width: 414px) { 36 | .column { 37 | width: 250px; 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /src/scenes/home/press/pressBranding/pressBranding.css: -------------------------------------------------------------------------------- 1 | .wide { 2 | height: auto; 3 | width: 100%; 4 | } 5 | 6 | .tall { 7 | height: 100%; 8 | width: auto; 9 | margin: 0 auto; 10 | display: block; 11 | } 12 | 13 | img[alt^="Small"] { 14 | transform: scale(.6); 15 | } 16 | 17 | .logos { 18 | padding-top: 15px; 19 | display: flex; 20 | flex-flow: row wrap; 21 | justify-content: space-around; 22 | align-items: center; 23 | } 24 | 25 | .logos > .imgBox { 26 | padding: 25px; 27 | height: auto; 28 | width: 45%; 29 | max-width: 560px; 30 | } 31 | .logos a{ 32 | color: #249cbc; 33 | text-decoration: none; 34 | } 35 | 36 | @media screen and (min-width: 415px) and (max-width: 1280px) { 37 | .logos > .imgBox { 38 | width: 350px; 39 | } 40 | } 41 | 42 | @media screen and (max-width: 414px) { 43 | .logos > .imgBox { 44 | width: 300px; 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /src/scenes/home/press/pressBranding/pressBranding.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { Link } from 'react-router-dom'; 3 | import styles from './pressBranding.css'; 4 | 5 | function PressBranding() { 6 | return ( 7 |
8 | View Our Branding 9 |
10 | ); 11 | } 12 | 13 | export default PressBranding; 14 | -------------------------------------------------------------------------------- /src/scenes/home/press/pressPhotos/pressPhotos.css: -------------------------------------------------------------------------------- 1 | .photos { 2 | padding-top: 15px; 3 | display: flex; 4 | flex-flow: row wrap; 5 | justify-content: space-around; 6 | align-items: center; 7 | } 8 | 9 | .photos > img { 10 | padding: 25px; 11 | } 12 | 13 | .photos > img { 14 | width: auto; 15 | max-height: 368px; 16 | } 17 | 18 | @media screen and (min-width: 415px) and (max-width: 1280px) { 19 | .photos > img { 20 | width: 350px; 21 | } 22 | } 23 | 24 | @media screen and (max-width: 414px) { 25 | .photos > img { 26 | width: 300px; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/scenes/home/press/pressPhotos/pressPhotos.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import CodeConferencePic from '../../../../images/CodeConferenceLA.jpg'; 3 | import RedHatSummitPic from '../../../../images/RedHat-Summit.jpg'; 4 | import NodeSummitPic from '../../../../images/Node-Summit.jpg'; 5 | import AngelHackBostonPic from '../../../../images/AngelHack-Boston.jpg'; 6 | import UtahMeetupPic from '../../../../images/Utah-Meetup.jpg'; 7 | import styles from './pressPhotos.css'; 8 | 9 | function PressPhotos() { 10 | return ( 11 |
12 | David Molina speaks to Code Conference LA 2016 attendees. 13 | Operation Code members pose at Red Hat Summit 2017 14 | Conrad Hollomon presents in front of the Node Summit 2016 audience. 15 | Operation Code developers pose at AngelHack Boston 2017. 16 | Ken Collier leads a discussion at the Utah Operation Code meetup. 17 |
18 | ); 19 | } 20 | 21 | export default PressPhotos; 22 | -------------------------------------------------------------------------------- /src/scenes/home/press/pressReleases/pressReleases.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/scenes/home/press/pressReleases/pressReleases.css -------------------------------------------------------------------------------- /src/scenes/home/press/pressReleases/pressReleases.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OperationCode/operationcode_frontend/320053d0e6ed587c36f886ddd631dcc7ca6ef3f2/src/scenes/home/press/pressReleases/pressReleases.js -------------------------------------------------------------------------------- /src/scenes/home/press/pressVideos/pressVideos.css: -------------------------------------------------------------------------------- 1 | .pressVideos { 2 | padding-top: 15px; 3 | display: flex; 4 | flex-flow: row wrap; 5 | justify-content: space-around; 6 | align-items: center; 7 | } 8 | .pressVideos iframe { 9 | padding: 25px; 10 | } 11 | 12 | /* Video iFrame Media Queries */ 13 | @media screen and (max-width: 960px) { 14 | .pressVideos iframe { 15 | width: 666px; 16 | height: 375px; 17 | } 18 | } 19 | 20 | @media screen and (max-width: 720px) { 21 | .pressVideos iframe { 22 | width: 444px; 23 | height: 250px; 24 | } 25 | } 26 | 27 | @media screen and (max-width: 480px) { 28 | .pressVideos iframe { 29 | width: 333px; 30 | height: 187.5px; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/scenes/home/press/pressVideos/pressVideos.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import styles from './pressVideos.css'; 3 | 4 | function PressVideos() { 5 | return ( 6 |
7 |