Giter VIP home page Giter VIP logo

reach4help / reach4help Goto Github PK

View Code? Open in Web Editor NEW
89.0 89.0 71.0 40.96 MB

We are Reach4Help: a tech nonprofit connecting people in need with volunteer help in 38+ countries across Canada, the US, Europe and Asia

Home Page: https://reach4help.org/

License: MIT License

JavaScript 9.48% CSS 0.21% HTML 0.66% TypeScript 86.22% Dockerfile 0.01% Less 0.01% Jupyter Notebook 1.62% Python 1.78% Procfile 0.01%
coronavirus covid-19 react volunteers

reach4help's Introduction

Reach4Help released under the GPL license PRs welcome! Contributor Covenant

All Contributors

Who We Are

Reach4Help is an open-source and volunteer-run initiative connecting people in need with volunteers who can help during the COVID-19 pandemic and beyond. Through the development of open-source and accessible tools like our global map of aid organizations for volunteers, people in need, and volunteer organizations alike, we’re building a large-scale network of help.

Our vision is to create a global network of resilient local volunteers organizations to empower and support their communities through the COVID-19 pandemic and future crises beyond. Ultimately, our goal is to ensure that anyone, anywhere can reach for help.

How You Can Contribute

We're currently looking for help on the project in several fields, especially in React development, design and marketing. If you’d like to help, please take a look at the Onboarding Steps. You can find more details on how to prepare the environment and the guidelines on how to contribute to the repo by looking at the instructions for contributing. We'd be honored to have you join our humble abode!

Projects

A global interactive map visualizing over 10,000 volunteer organizations supporting communities in need around the world! We're looking for help reaching out to more organizations and for developing the map further (especially in optimizing loading all those data points). Check it out live here!

Alongside organizations like the COVID-19 Help Hub in Montréal, India One Alliance headquartered in Delhi and EMK Center in Dhaka, we're currently prototyping a platform to automate the menial tasks of volunteer coordination and request management, thereby cutting down valuable time and money for these organizations. Going forward, our goal is to engage more organizations in the design and development of this platform to make sure we can scale it effectively for various charitable campaigns, from food distribution for needy communities to vaccination drives for the elderly.

Our website highlighting the project and our hardworking team of volunteers. Check it out live here!

Our first app matching individual people in need with individual nearby volunteers who can help. With over 300 volunteers and users across the world, this became a successful proof of concept for us to take the project to the next stage, involving community aid organizations directly. Our backend layer manages all the data for our main app. Check it out live here!

Development

This is our mono-repo, containing all the sub-projects we're working on. If you haven't already, please take a look at our instructions for contributing before proceeding. We also expect everyone to abide by our Code of Conduct. Thank you!

Preparing the repository

We use Yarn workspaces to manage this repository, so all NPM packages, for all directories, can be installed using the following command in the root directory. First, install yarn globally:

npm install --global yarn

Then, install the packages in the root directory:

yarn install

Adding new NPM Packages to the monorepo

To add a new project to the repo, simply create a new folder and its package.json file, then add it to the "workspaces" property in the package.json file in the root of this repository.

At this point running yarn add or yarn install in any of the sub directories should update the appropriate package.json, and update the yarn.lock in the root of the repo.

Contributors ✨

Thanks goes to these wonderful people (emoji key):


David Alecrim

💻 📖 🤔 🚧 👀 📆

Sam Lanning

💻 📖 🤔 🚧 👀 🖋 📆

Pedro Filipe

💻 📖 🤔 🚧 👀 🖋 📆

Luis Filipe

📖 💻 🤔

Dan Sabin

👀 💻 🤔 🚧 📖

João Marques

💻 🤔 📖 👀

Rúben Gonçalves

💻 🤔 👀

Wilson Rodrigues

💻 🤔 📆 🚧 📖

Nuno Alexandre

🤔 💻

Micael Rodrigues

💻 📖 👀

Mathieu Deous

📖

cinthyaejh

🎨

PatriciaMiranda

🎨

Rita Serra

🎨

Telmo Dias

🤔 📖 💻 👀 📆 🎨

Burhan Tuerker

💻

Joseph Ashwin Kottapurath

💻 👀 🤔 📖

Dilpreet Johal

💻

Mitchell Verter

💻

Winggo Tse

💻

sharmmad

💻

skspade

💻 ⚠️

Thomas Huynh

💻

Juozas Gaigalas

💻

Shayan Chowdhury

💻 🤔 👀 📖 📆

Esther Handy-Malouin

📓

milkrong

💻

gorostiaga

📆 🤔

Ethan-Strominger

💻 🤔

Alex 'DeMiNe0' Vanino

🤔 📖

14ssharp

💻

Warisul Imam

💻

Divyesh Parmar

💻

alexjball

💻

Ansh Saini

💻

Danai Nanou

💻

Hazal Büşra Yoleri

💻

Crue Jameson (Eric Gerlach)

💻

Felix Chin

💻

hajarNasr

💻

Jan Sepke

💻

Mohamed Atta

💻

Danieleclima

💻

Tim Leonard

📆 💻 👀

Katherine Rodriguez

💻 🤔

Lakshmi-Jayakumar

💻

Sebastián Sameghini

💻

This project follows the all-contributors specification. Contributions of any kind welcome!

reach4help's People

Contributors

allcontributors[bot] avatar ashwinkjoseph avatar cinthyaejh avatar comoser avatar dbenamy avatar dependabot[bot] avatar djohal avatar ethanstrominger avatar fulin426 avatar hp4k1h5 avatar htuerker avatar jensren avatar jpmarques66 avatar kfo42 avatar luisfilipept avatar mcverter avatar mdeous avatar mdeous-datadog avatar micaelr95 avatar olibooty avatar puzzledbytheweb avatar rbgoncalves avatar reach4help-iam-bot avatar s0 avatar sabind avatar sharmmad avatar shayantist avatar ssameghini avatar telmodias avatar winggo avatar

Stargazers

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

Watchers

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

reach4help's Issues

Get Guidance for GDPR

  • Find someone that knows about GDPR (Europe and California)
  • Add them to the project or ask for some guidelines
  • Create user data security policy document
  • Document Information security technical requirements

ZenHub Information

This information is updated automatically. To modify it, please use ZenHub.

Design views for MVP

Following #53, we need to convert the wireframes into actual designs. The initial app will be a responsive web application, meaning that people can use it in both browsers and desktops, but will be primarily for mobile users, so it's important we get the mobile design down first.

The current UX workflow we're working from is here: https://www.lucidchart.com/invitations/accept/199b5856-1958-4cd7-a708-a9abfbebedb8

For now, these views are ready to be turned into designs:

  • Essential Info / all 4 views
  • Intro

ZenHub Information

This information is updated automatically. To modify it, please use ZenHub.

Investigate how Uber / DoorDash / Lyft protects people against random users picking them up / delivering goods

This is needed for the more PIN-centric approach detailed here: https://github.com/neighborhood-assistance/info/blob/master/meetings/team_leads/2020-03-17.md

Google doc for collecting research points: https://docs.google.com/document/d/1MyT_hI4SbVieUqnkMEuhSLLsGqEUOc_bMxW54XDx8Io/edit?usp=sharing


ZenHub Information

This information is updated automatically. To modify it, please use ZenHub.

Research other similar apps / solutions that are being made for the same purpose

How are they doing things, what are their user flows, how do they differ from ours, what are their target audiences etc etc...


ZenHub Information

This information is updated automatically. To modify it, please use ZenHub.

Applications framework security review

  • Know which backend framework will be used
  • Check for known CVEs
  • Check for security issues in bug tracker
  • Emit usage best practices for secure development

ZenHub Information

This information is updated automatically. To modify it, please use ZenHub.

Create landing page Using Gatsby + Netlify

Gatsby starter:

Project name:

COVID Aid

Project domain:

covidaid.app

Descriptions / Texts

Here (In Progress): https://docs.google.com/document/d/1pOps_3McLZjdVHJwDutm2kHI1zl4nJ52EbwT6V5yRiE/edit#heading=h.sd2j2tgv9yh7

Repo

https://github.com/covidaidapp/covidaid

Checklist

  • Look into some Gatsby Starters that look like a good start for us
  • Share starters with David, to pass on to implementors
  • Delegate work to the taskforce doing the landing page
  • Create landing page
  • Deploy landing page

ZenHub Information

This information is updated automatically. To modify it, please use ZenHub.

App threat modelling

  • List app interactions and workflows
  • Determine possible misuses and threats
  • Define possible countermeasures
  • Implement countermeasures
  • Feedback loop (check success and gaps left, and go back to 1st step)

ZenHub Information

This information is updated automatically. To modify it, please use ZenHub.

Contacting Nextdoor

@schowdhury8
(submitted a contact form and contacted the CEO thru LinkedIn)


ZenHub Information

This information is updated automatically. To modify it, please use ZenHub.

Register a Google for Nonprofits account

https://www.google.com/nonprofits/

This will allow us to use G Suite for free, and get more maps api credits (which may be necessary for the maps project).

It's likely that we won't be able to get this unless we're a registered non-profit in some country, which I imagine takes a while. Though a post on slack indicates that it may be immediate: https://helpfulengineering.slack.com/archives/CUVPGT54J/p1584332529096600

In any case, I've reached out to @googlenonprofit on twitter over DM to see if they have any flexibility on this, will update here...


ZenHub Information

This information is updated automatically. To modify it, please use ZenHub.

Blocked By:

Outline technical points related to required infrastructure

as required by this - https://helpfulengineering.slack.com/archives/C010313P4A3/p1584370207418100

We have free AWS Credits so we might have to take this into account

So far:

  • Dev, staging, prod instances to potentially scale.
  • Autoscaling groups, VPCs, and load balancers for those instances
  • Database instances for each environment
  • Jenkins (or equivalent) instance for CI/CD and deployments

Checklist

  • Specify environment requirements for dev, stage and prod
  • Check with legal about US/ROW data transportation and storage requirements
  • Specify infra location requirements
  • EU data MUST be stored within the EU and not transferred outside (GDPR)
  • Connection strings and configuration should be stored in private/encrypted config management
  • Stage should be load tested to see at what point we need to scale.
  • Stage should be pen tested before release to Production

ZenHub Information

This information is updated automatically. To modify it, please use ZenHub.

Setup redux

Following #40, configure redux as the base for data flow in web-client;


ZenHub Information

This information is updated automatically. To modify it, please use ZenHub.

gatsby 2.15.22 dependency vulnerable to XSS

The serialize-javascript package on which our current version of gatsby depends is vulnerable to XSS.
To fix it, gatsby should be updated to at least 2.18.10 (see snyk output below), but this breaks graphql queries. As this dependency might go away in the future, dependencies should be checked again once it has, and we'll figure out what to do if there are still issues/errors.

Snyk output:

Upgrade [email protected] to [email protected] to fix
✗ Cross-site Scripting (XSS) [High Severity][https://snyk.io/vuln/SNYK-JS-SERIALIZEJAVASCRIPT-536840] in [email protected]
  introduced by [email protected] > [email protected] > [email protected]

yarn start output after updating gatsby to 2.18.10:

❯ yarn start
yarn run v1.22.4
$ yarn develop
$ gatsby clean && gatsby develop
info Deleting .cache, public
info Successfully deleted directories
success open and validate gatsby-configs - 0.035s
success load plugins - 0.038s
success onPreInit - 0.002s
success initialize cache - 0.010s
success copy gatsby files - 0.046s
success onPreBootstrap - 0.009s
success createSchemaCustomization - 0.001s
success source and transform nodes - 0.012s
success building schema - 0.118s
success createPages - 0.001s
success createPagesStatefully - 0.044s
success onPreExtractQueries - 0.001s
success update schema - 0.021s

 ERROR #85901  GRAPHQL

There was an error in your GraphQL query:

Unknown type "ContentfulFixed".

File: ../node_modules/gatsby-source-contentful/src/fragments.js:20:37


 ERROR #85901  GRAPHQL

There was an error in your GraphQL query:

Unknown type "ContentfulFixed".

File: ../node_modules/gatsby-source-contentful/src/fragments.js:34:47


 ERROR #85901  GRAPHQL

There was an error in your GraphQL query:

Unknown type "ContentfulFixed".

File: ../node_modules/gatsby-source-contentful/src/fragments.js:48:46


 ERROR #85901  GRAPHQL

There was an error in your GraphQL query:

Unknown type "ContentfulFixed".

File: ../node_modules/gatsby-source-contentful/src/fragments.js:61:46


 ERROR #85901  GRAPHQL

There was an error in your GraphQL query:

Unknown type "ContentfulFixed".

File: ../node_modules/gatsby-source-contentful/src/fragments.js:77:55


 ERROR #85901  GRAPHQL

There was an error in your GraphQL query:

Unknown type "ContentfulFluid".

File: ../node_modules/gatsby-source-contentful/src/fragments.js:92:37


 ERROR #85901  GRAPHQL

There was an error in your GraphQL query:

Unknown type "ContentfulFluid".

File: ../node_modules/gatsby-source-contentful/src/fragments.js:106:47


 ERROR #85901  GRAPHQL

There was an error in your GraphQL query:

Unknown type "ContentfulFluid".

File: ../node_modules/gatsby-source-contentful/src/fragments.js:120:46


 ERROR #85901  GRAPHQL

There was an error in your GraphQL query:

Unknown type "ContentfulFluid".

File: ../node_modules/gatsby-source-contentful/src/fragments.js:133:46


 ERROR #85901  GRAPHQL

There was an error in your GraphQL query:

Unknown type "ContentfulFluid".

File: ../node_modules/gatsby-source-contentful/src/fragments.js:149:55


 ERROR #85901  GRAPHQL

There was an error in your GraphQL query:

Unknown type "ContentfulResolutions".

File: ../node_modules/gatsby-source-contentful/src/fragments.js:161:43


 ERROR #85901  GRAPHQL

There was an error in your GraphQL query:

Unknown type "ContentfulResolutions".

File: ../node_modules/gatsby-source-contentful/src/fragments.js:171:53


 ERROR #85901  GRAPHQL

There was an error in your GraphQL query:

Unknown type "ContentfulResolutions".

File: ../node_modules/gatsby-source-contentful/src/fragments.js:181:52


 ERROR #85901  GRAPHQL

There was an error in your GraphQL query:

Unknown type "ContentfulResolutions".

File: ../node_modules/gatsby-source-contentful/src/fragments.js:190:52


 ERROR #85901  GRAPHQL

There was an error in your GraphQL query:

Unknown type "ContentfulResolutions".

File: ../node_modules/gatsby-source-contentful/src/fragments.js:202:61


 ERROR #85901  GRAPHQL

There was an error in your GraphQL query:

Unknown type "ContentfulSizes".

File: ../node_modules/gatsby-source-contentful/src/fragments.js:213:37


 ERROR #85901  GRAPHQL

There was an error in your GraphQL query:

Unknown type "ContentfulSizes".

File: ../node_modules/gatsby-source-contentful/src/fragments.js:223:47


 ERROR #85901  GRAPHQL

There was an error in your GraphQL query:

Unknown type "ContentfulSizes".

File: ../node_modules/gatsby-source-contentful/src/fragments.js:233:46


 ERROR #85901  GRAPHQL

There was an error in your GraphQL query:

Unknown type "ContentfulSizes".

File: ../node_modules/gatsby-source-contentful/src/fragments.js:242:46


 ERROR #85901  GRAPHQL

There was an error in your GraphQL query:

Unknown type "ContentfulSizes".

File: ../node_modules/gatsby-source-contentful/src/fragments.js:254:55


 ERROR #85901  GRAPHQL

There was an error in your GraphQL query:

Cannot query field "contentfulAbout" on type "Query".

GraphQL request:3:9
2 |       query HelmetQuery {
3 |         contentfulAbout {
  |         ^
4 |           name

File: src/components/Helmet.js:11:9


 ERROR #85901  GRAPHQL

There was an error in your GraphQL query:

Cannot query field "contentfulAbout" on type "Query".

GraphQL request:3:9
2 |       query FooterQuery {
3 |         contentfulAbout {
  |         ^
4 |           name

File: src/components/Footer.js:31:9


 ERROR #85901  GRAPHQL

There was an error in your GraphQL query:

Cannot query field "contentfulAbout" on type "Query".

GraphQL request:3:11
2 |         query AboutMeQuery {
3 |           contentfulAbout {
  |           ^
4 |             aboutMe {

File: src/sections/About.js:50:11


 ERROR #85901  GRAPHQL

There was an error in your GraphQL query:

Cannot query field "contentfulAbout" on type "Query".

GraphQL request:3:11
2 |         query SiteTitleQuery {
3 |           contentfulAbout {
  |           ^
4 |             name

File: src/sections/Landing.js:49:11


 ERROR #85901  GRAPHQL

There was an error in your GraphQL query:

Cannot query field "siteMetadata" on type "Site".

GraphQL request:14:13
13 |           site {
14 |             siteMetadata {
   |             ^
15 |               deterministicBehaviour

File: src/sections/Landing.js:60:13


 ERROR #85901  GRAPHQL

There was an error in your GraphQL query:

Cannot query field "contentfulResources" on type "Query".

GraphQL request:3:11
2 |         query ResourcesQuery {
3 |           contentfulResources {
  |           ^
4 |             resourcesListV2 {

File: src/sections/Resources.js:41:11


 ERROR #85901  GRAPHQL

There was an error in your GraphQL query:

Cannot query field "contentfulAbout" on type "Query".

GraphQL request:3:11
2 |         query ProjectsQuery {
3 |           contentfulAbout {
  |           ^
4 |             projects {

File: src/sections/Projects.js:184:11


 ERROR #85901  GRAPHQL

There was an error in your GraphQL query:

Cannot query field "siteMetadata" on type "Site".

GraphQL request:4:11
3 |         site {
4 |           siteMetadata {
  |           ^
5 |             isMediumUserDefined

File: src/sections/Writing.js:140:11


 ERROR #85901  GRAPHQL

There was an error in your GraphQL query:

Cannot query field "allMediumPost" on type "Query".

GraphQL request:8:9
7 |         }
8 |         allMediumPost(limit: 7, sort: { fields: createdAt, order: DESC }) {
  |         ^
9 |           totalCount

File: src/sections/Writing.js:144:9


 ERROR #85901  GRAPHQL

There was an error in your GraphQL query:

Cannot query field "mediumUser" on type "Query".

GraphQL request:26:9
25 |         }
26 |         author: mediumUser {
   |         ^
27 |           username

File: src/sections/Writing.js:162:9


 ERROR #85901  GRAPHQL

There was an error in your GraphQL query:

Cannot query field "contentfulTeam" on type "Query".

GraphQL request:3:11
2 |         query TeamQuery {
3 |           contentfulTeam {
  |           ^
4 |             description {

File: src/sections/Team.js:43:11

failed extract queries from components - 0.457s
success write out requires - 0.038s
success write out redirect data - 0.006s
success onPostBootstrap - 0.001s
⠀
info bootstrap finished - 3.262 s
⠀
success run queries - 0.025s - 4/4 162.86/s
⠀
You can now view covidaid-site in the browser.
⠀
  http://localhost:8000/
⠀
View GraphiQL, an in-browser IDE, to explore your site's data and schema
⠀
  http://localhost:8000/___graphql
⠀
Note that the development build is not optimized.
To create a production build, use gatsby build
⠀
success Building development bundle - 2.186s

ZenHub Information

This information is updated automatically. To modify it, please use ZenHub.

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.