Giter Club home page Giter Club logo

cyf-react's Introduction

Code Your Future


CircleCI

This is the official CYF website live at codeyourfuture.io

Requirements

  • node

Setup

$ yarn # install project dependencies
$ yarn start # start application on localhost:3000

Present

To present merge your changes to staging branch. CI will build and then deploy it to GitHub pages (check web-static-[staging,production] repos):

Currently, there is only one release candidate branch staging accessible on:

Contribute

Development workflow is tracked on CYF Github Project

Github issues for errors or improvements are welcomed.

To contribute please follow instructions:

  • select a task from Todo list, assign your name and move the task to In Progress list.
  • checkout staging and pull the latest changes
  • create a new branch from staging, named after your task
  • when you're finished, submit a PR to the staging branch for review and move the task to In Review list (currently, we have only one review environment, so if you see another PR make sure its safe to merge to staging)
  • the code is approved by adding LGTM to comment
  • after the PR is approved the reviewer, or contributor merges PR
  • after merging and a successful deploy, get someone to review the page in the (staging environment)[staging.codeyourfuture.io], to make sure that everything works
  • Then, submit a PR from staging to master
  • when the PR is merged to master, automatic build on CircleCI deploys the website
  • briefly look on the web to see your changes are fine; http://codeyourfuture.io/
  • move task fro in Review to Done

Thank you.

Backend features using AWS Lambda

Please read this.

cyf-react's People

Contributors

absmugz avatar ameerkabir avatar amwam avatar beeman avatar bexb1 avatar bryceosterhaus avatar claudiamatosa avatar cyfbot avatar dahfool avatar danielgreane avatar dpiatek avatar felixmeziere avatar foaly-nr1 avatar jslopezgithub avatar juancaicedo avatar juanpasolano avatar kabaros avatar lasthokage avatar leggsimon avatar matt-paul avatar misaogura avatar pedroguima avatar samatar26 avatar seraphineyoung avatar willwright82 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

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

cyf-react's Issues

Improve Donate Page

  • On /donate, Remove text and add basic for page to go live.
  • Move Social icons from NavBar to Footer
  • Add Donate Link in NavBar
  • Copy the give once/give monthly from here https://www.charitywater.org/donate with sort of "coming soon" in the monthly
  • Use Stripe API to implement Monthly feature

Social media buttons

Increase size of the social media buttons in the footer and add them to the header bar next to the donate button.

Branch Deployment

Implement branch deployments eg now.sh
Discussed and agreed way forward

Create CodeYourFuture favicon

Variations:

  • Small (<CYF>)
  • Medium (for mobile icons, etc)
    <Code>
      Your
     Future
    

SVG:

<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg version="1.0" xmlns="http://www.w3.org/2000/svg" width="1013px" height="320px" viewBox="0 0 10130 3200" preserveAspectRatio="xMidYMid meet">
<g id="layer1" fill="#3f3f3f" stroke="none">
 <path d="M4500 2839 c-118 -21 -234 -97 -287 -187 -55 -93 -65 -155 -70 -429 l-5 -253 -39 0 -39 0 0 -100 0 -100 240 0 240 0 0 100 0 100 -41 0 -42 0 5 228 c6 265 18 320 77 359 44 30 98 30 142 0 59 -39 71 -94 77 -359 l5 -228 -42 0 -41 0 0 -100 0 -100 225 0 225 0 0 100 0 100 -40 0 -40 0 0 204 c0 113 -5 240 -11 283 -27 199 -101 309 -247 366 -56 22 -210 31 -292 16z"/>
 <path d="M6660 2839 c-118 -21 -234 -97 -287 -187 -55 -93 -65 -155 -70 -429 l-5 -253 -39 0 -39 0 0 -100 0 -100 240 0 240 0 0 100 0 100 -41 0 -42 0 5 228 c6 265 18 320 77 359 44 30 98 30 142 0 59 -39 71 -94 77 -359 l5 -228 -42 0 -41 0 0 -100 0 -100 225 0 225 0 0 100 0 100 -40 0 -40 0 0 204 c0 113 -5 240 -11 283 -27 199 -101 309 -247 366 -56 22 -210 31 -292 16z"/>
 <path d="M8065 2831 c-69 -17 -126 -64 -160 -130 -11 -21 -21 -75 -26 -137 -4 -57 -13 -112 -19 -124 -13 -24 -49 -40 -91 -40 l-29 0 0 110 0 110 45 0 45 0 0 100 0 100 -250 0 -250 0 0 -100 0 -100 45 0 45 0 0 -325 0 -325 -45 0 -45 0 0 -100 0 -100 293 0 c388 1 472 16 554 102 43 44 64 108 65 193 1 53 -4 80 -21 113 -22 43 -87 98 -128 108 -31 8 -29 19 7 34 34 14 96 79 110 115 5 14 12 54 16 90 8 74 27 101 50 70 8 -10 14 -34 14 -52 l0 -33 56 0 57 0 -7 88 c-11 133 -55 210 -135 232 -41 11 -151 12 -196 1z m-202 -625 c45 -19 68 -48 73 -93 10 -81 -54 -143 -148 -143 l-48 0 0 125 0 125 45 0 c25 0 60 -6 78 -14z"/>
 <path d="M3110 2720 l0 -100 50 0 50 0 0 -325 0 -325 -50 0 -50 0 0 -100 0 -100 455 0 455 0 0 170 0 170 -135 0 -135 0 0 -70 0 -70 -110 0 -110 0 0 130 0 130 140 0 140 0 0 100 0 100 -140 0 -140 0 0 95 0 95 75 0 75 0 0 100 0 100 -285 0 -285 0 0 -100z"/>
 <path d="M5400 2720 l0 -100 60 0 60 0 0 -325 0 -325 -60 0 -60 0 0 100 0 100 -115 0 -115 0 0 -200 0 -200 505 0 505 0 0 200 0 200 -115 0 -115 0 0 -100 0 -100 -55 0 -55 0 0 325 0 325 60 0 60 0 0 100 0 100 -280 0 -280 0 0 -100z"/>
 <path d="M8440 2720 l0 -100 50 0 50 0 0 -325 0 -325 -50 0 -50 0 0 -100 0 -100 460 0 460 0 0 170 0 170 -135 0 -135 0 0 -70 0 -70 -115 0 -115 0 0 100 0 100 140 0 140 0 0 105 0 105 -140 0 -140 0 0 120 0 120 115 0 115 0 0 -70 0 -70 135 0 135 0 0 170 0 170 -460 0 -460 0 0 -100z"/>
 <path d="M6704 1575 c-119 -26 -229 -98 -290 -190 -107 -161 -124 -446 -38 -617 29 -58 29 -58 0 -58 -22 0 -42 30 -165 248 l-141 247 0 78 0 77 45 0 45 0 0 100 0 100 -245 0 -245 0 0 -100 0 -100 45 0 45 0 0 -81 0 -82 -147 -243 -148 -244 -37 0 -38 0 0 -100 0 -100 260 0 260 0 0 100 0 100 -36 0 -35 0 32 57 c18 32 47 89 64 129 l31 71 66 -129 65 -128 -38 0 -39 0 0 -100 0 -100 205 0 205 0 0 81 0 81 41 -40 c104 -105 214 -147 384 -147 61 0 135 6 165 14 241 59 370 248 370 541 0 356 -191 551 -535 549 -49 0 -117 -7 -151 -14z m206 -248 c45 -29 68 -71 85 -153 27 -126 12 -281 -34 -373 -24 -47 -54 -70 -103 -78 -48 -7 -99 38 -129 115 -19 48 -23 77 -23 187 -1 148 15 212 67 272 50 57 86 65 137 30z"/>
 <path d="M7760 1579 c-118 -21 -234 -97 -287 -187 -55 -93 -65 -155 -70 -429 l-5 -253 -39 0 -39 0 0 -100 0 -100 240 0 240 0 0 100 0 100 -41 0 -42 0 5 228 c5 186 9 237 24 282 47 135 201 135 248 0 15 -45 19 -96 24 -282 l5 -228 -42 0 -41 0 0 -100 0 -100 488 0 c516 1 597 6 678 48 91 47 135 126 136 247 1 53 -4 80 -21 113 -22 43 -87 98 -128 108 -31 8 -29 19 7 34 34 14 96 79 110 115 5 14 12 54 16 90 8 74 27 101 50 70 8 -10 14 -34 14 -52 l0 -33 56 0 57 0 -7 88 c-16 188 -83 250 -261 239 -89 -5 -142 -26 -186 -74 -46 -49 -61 -91 -70 -199 -4 -57 -13 -112 -19 -124 -13 -24 -49 -40 -91 -40 l-29 0 0 110 0 110 45 0 45 0 0 100 0 100 -250 0 -250 0 0 -100 0 -100 45 0 45 0 0 -325 0 -325 -55 0 -55 0 0 204 c0 113 -5 240 -11 283 -27 199 -101 309 -247 366 -56 22 -210 31 -292 16z m1103 -633 c45 -19 68 -48 73 -93 10 -81 -54 -143 -148 -143 l-48 0 0 125 0 125 45 0 c25 0 60 -6 78 -14z"/>
 <path d="M455 1290 l-230 -108 -3 -108 -3 -109 227 -113 c125 -62 230 -110 235 -105 12 13 92 164 88 167 -2 1 -82 38 -176 81 -95 43 -173 81 -173 84 0 3 79 41 176 85 99 44 173 83 171 90 -2 6 -14 41 -27 79 -16 45 -29 67 -39 66 -9 0 -119 -50 -246 -109z"/>
 <path d="M5016 1372 c-10 -16 -56 -145 -53 -148 3 -3 211 -98 312 -143 l49 -22 -174 -80 c-96 -43 -177 -83 -181 -87 -9 -8 79 -172 92 -172 5 0 108 50 229 110 l221 110 -3 111 -3 111 -234 109 c-128 60 -237 109 -242 109 -4 0 -10 -4 -13 -8z"/>
 </g>
<g id="layer2" fill="#d12f2f" stroke="none">
 <path d="M1245 1574 c-222 -35 -375 -177 -420 -392 -42 -198 9 -410 131 -542 71 -76 132 -116 217 -142 105 -32 213 -14 294 48 l33 25 15 -35 15 -36 120 0 120 0 0 215 0 215 -135 0 -135 0 -6 -27 c-18 -86 -58 -139 -112 -150 -81 -16 -129 13 -174 105 -31 63 -33 73 -33 172 0 94 3 110 27 155 48 91 97 125 183 125 59 0 126 -34 188 -97 l49 -48 88 95 c49 52 89 98 90 102 0 15 -91 94 -152 131 -35 21 -92 47 -128 58 -64 20 -213 32 -275 23z"/>
 <path d="M2224 1565 c-231 -50 -367 -227 -381 -496 -15 -282 118 -498 352 -572 83 -26 256 -30 345 -8 241 59 370 248 370 541 0 356 -191 551 -535 549 -49 0 -117 -7 -151 -14z m206 -248 c45 -29 68 -71 85 -153 27 -126 12 -281 -34 -373 -24 -47 -54 -70 -103 -78 -48 -7 -99 38 -129 115 -19 48 -23 77 -23 187 -1 148 15 212 67 272 50 57 86 65 137 30z"/>
 <path d="M2960 1450 l0 -100 50 0 50 0 0 -325 0 -325 -50 0 -50 0 0 -100 0 -100 278 0 c305 0 370 8 476 58 175 83 270 224 283 422 14 222 -79 414 -244 503 -108 58 -176 67 -500 67 l-293 0 0 -100z m561 -132 c79 -44 121 -148 121 -298 0 -114 -25 -196 -74 -248 -44 -45 -72 -58 -140 -66 l-58 -7 0 327 0 327 57 -7 c31 -4 73 -16 94 -28z"/>
 <path d="M4040 1450 l0 -100 50 0 50 0 0 -325 0 -325 -50 0 -50 0 0 -100 0 -100 460 0 460 0 0 170 0 170 -135 0 -135 0 0 -70 0 -70 -115 0 -115 0 0 100 0 100 140 0 140 0 0 105 0 105 -140 0 -140 0 0 120 0 120 115 0 115 0 0 -70 0 -70 135 0 135 0 0 170 0 170 -460 0 -460 0 0 -100z"/>
 </g>

</svg>

Asset strategy

Currently images are in a number of directories across the repo. It would be good to clean this up

Re-enable manifest.json

Depends on #16.

Under the public folder, there is a file called _manifest.json, which prompts mobile users to add their websites to their home screen. This is currently disabled. In order to re-enable, remove the leading _, update the text and favicon and commit.

Add Gtag Events

These events are to be fired when the buttons are clicked, or the form is submitted successfully.

Homepage
gtag('event', 'submit', {
'event_category': 'student-lead',
'event_label': 'homepage'
});

https://codeyourfuture.io/students
gtag('event', 'submit', {
'event_category': 'student-lead',
'event_label': 'students'
});

https://codeyourfuture.io/apply/student
gtag('event', 'submit', {
'event_category': 'student-lead',
'event_label': 'form-completion'
});

Styleguide

To come up with a styleguide for CYF including typography, colours, etc

Separate content from components

Currently most content is contained within pages. However, some is within src/content, which is a good first step for seperation, so add the remaining content into this directory into JSON files

Components

  • As-seen
  • Banner
  • Footer
  • What we teach

Absolute links do not work

At the footer section, the social media links (e.g. twitter, facebook, etc) do not work at all. You can find the same behavior at the as seen in section, apparently is the Router configuration because is handling the absolute links as relative putting a / (slash) as a prefix:

screen shot 2019-01-23 at 11 51 13 am

Social Media Links aren't accessible

Currently users can only click on the link to redirect them to the social media websites which excludes users using the keyboard or assistive technologies

Add Rob to the "Meet the team" page

When doing this, make sure that the "Become a volunteer" link adapts to the new number of columns.

Info:
Rob Gelb
Employment, Company Links

Photo:
rob headshot square small

Separate Content From Pages

Currently most content is contained within pages. However, some is within src/content, which is a good first step for seperation, so add the remaining content into this directory into JSON files

Pages

  • About Us
  • Donate
  • Partners
  • Students
  • Team
  • Volunteers

ES lint configuration error

When you commit the code, it turns out that it runs prettier hook and the configuration of that one and the one that shows in the console when you run the application is completely different

Install Facebook Pixel

Step 1:

  • Insert this code just above the closing
<script> !function(f,b,e,v,n,t,s) {if(f.fbq)return;n=f.fbq=function(){n.callMethod? n.callMethod.apply(n,arguments):n.queue.push(arguments)}; if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0'; n.queue=[];t=b.createElement(e);t.async=!0; t.src=v;s=b.getElementsByTagName(e)[0]; s.parentNode.insertBefore(t,s)}(window, document,'script', 'https://connect.facebook.net/en_US/fbevents.js'); fbq('init', '360714251123367'); fbq('track', 'PageView'); </script>

Step 2:

<script> fbq('track', 'CompleteRegistration'); </script>

Add the event code to the HTML element for the Submit button.

Complete Registration

<script type="text/javascript"> $( '#$submitButton' ).click(function() { **insert_event_code_here;** ... </script>

Improvements on /apply/student

  • Add recaptcha
  • Have mobile-friendly country dropdown or auto-fill
  • Make placeholder work for all fields
  • Have better form validation for phone numbers (We need to accept phone from any country but check that we have a phone)
  • In the code: Catch all errors in Lambda to not have a success when adding the student actually failed
  • In the code: Fix how form validation works: make it independent of order the rules are defined in
  • In the code: Improve cors in lambda to prevent sources that are not codeyourfuture.io to call it
  • Put the motivation field in a page after the required fields
  • Add "where they heard about us" question
  • Change city choice
  • Remove the "write to us blabla@codeyourfuture" instruction after submission

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.