/crisiscleanup-3-web

[OLD] Crisis Cleanup Version 3 Web Application based on Vue 2. This version was launched March 27, 2020 and retired March 10, 2023 when it was superseded by a Vue 3 version.

Primary LanguageVueApache License 2.0Apache-2.0

Crisis Cleanup

Crisis Cleanup is a collaboratative disaster relief platform that connects relief organization volunteers with people who need help. The Crisis Cleanup platform has been used to connected 631,620 volunteers from 1,919 organizations with 128,080 households in 55 states/provinces and 157 disasters in 7 countries; a new disaster every two weeks.

Crisis Cleanup works best in a collaborative environment where multiple voluntary organizations and agencies work together and coordinate efforts. Because these organizations do not take orders from one another, Crisis Cleanup is designed to facilitate Collaborative Accountability models of inter-agency interaction, rather than command-and-control operations, or or heirarchical accountability models of interaction.

Other Project Stats (As of 2020-10-17)

  • 25%: Increase in volunteer efficiency through re-engagement and elimination of time spent on travel, coordination, collaboration, and management.
  • 32,020: Households that could not have been helped without Crisis Cleanup.
  • 7.7 Million: Number of volunteer hours facilitated.
  • 1,920,000: Volunteer hours that would have otherwise been wasted in management, travel, and overhead without Crisis Cleanup.
  • $733.2 Million: Minimum total market value of services to survivors.
  • $1,161: Value of each cleanup volunteer to his/her community.
  • $183.3 Million: Market value of services to survivors that would have otherwise been wasted in travel, management, overhead, and standing in lines.
  • $60,839: Money Crisis Cleanup has saved survivors every single day since July 18, 2012.
  • $9,052: Average commercial value of service to each homeowner.
  • $157: Return on investment to survivors, for every $1 invested in Crisis Cleanup. How we calculate these statistics: http://blog.crisiscleanup.org/2017/10/how-we-calculate-value-of-services.html

Contributing

To preserve our ability to provide open source humanitarian disaster software, all contributions are subject to the terms of the relevant Contributor License Agreement (CLA) downloadable at crisiscleanup.org/contributions.

Please read CONTRIBUTING.md for important details.

Getting Started

Project Setup

Clone the repository to your machine and install the dependencies via:

 $ git clone https://github.com/CrisisCleanup/crisiscleanup-3-web.git
 $ cd ./crisiscleanup-3-web
 $ yarn install

Configuration

To enable all of Crisis Cleanup's features, you must create and populate a .env file.

A sample of what this should look like can be found here.

Running Locally

When modifying Crisis Cleanup, you can begin serving it via:

  $ yarn serve-dev
  $ sensible-browser http://localhost:8080 # defaults to port 8080

You can also serve the site via a docker service:

 $ docker-compose build
 $ docker-compose up dev # or prod for production

This will enable hot module reloading among other developer tools to aid you.

To preview a production build locally, execute:

 $ yarn serve
 $ sensible-browser http://localhost:8080 # default port

This will enable the code optimizations that would be present in a live environment.

Finally, you can compile a production-ready, minified version via:

  $ yarn build
  $ npx http-server ./dist
  $ sensible-browser http://localhost:8080

Testing

For unit tests, Crisis Cleanup uses Jest. You can run the full test suite via:

  $ yarn test:unit

For end-to-end testing, Cypress is utilized. You can run all e2e specs via:

  $ yarn serve
  $ yarn test:e2e  # or test:e2e:hl to run headlessly

Any recorded e2e test sessions can be found at: http://cypress.crisiscleanup.io

Linting

Utilizing prettier and ESLint, CrisisCleanup enforces strict code style guidelines.

You can automagically format your code to comply with:

  $ yarn format  # executes eslint --fix and prettier --write

Storybook

We use Storybook for building our components in isolation and for documentation.

You can run our storybook locally and add additional ones via:

  $ yarn storybook
  $ sensible-browser http://localhost:6006 # port defaults to 6006

The live storybook can be found at: https://storybook.crisiscleanup.io