Skip to content
A dedicated app for victims and first reponders during a disaster
JavaScript CSS
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.vscode
dist
src
.babelrc
.bashrc
.editorconfig
.eslintignore
.eslintrc.js
.firebaserc
.gitattributes
.gitignore
.travis.yml
README.md
database.rules.json
firebase.js
firebase.json
jsconfig.json
package-lock.json
package.json
webpack.config.babel.js
yarn.lock

README.md

Rescue POC

Rescue POC is a single-page-app that utilizes Facebook's React, and Google's Material Design. It utilizes the latest ECMAScript standard, ES6, with Babel transpilation tool, and Webpack 2 module bundler.

Travis Dependency Status Maintenance Website

Core Libraries

  • Firebase Google's cloud hosted non-relational database.
  • React Intl provides React components and an API to format dates, numbers, and strings, including pluralization and handling translations.
  • React Redux helps with using Redux by mapping state to props and function props to dispatching actions.
  • React Router is a declarative routing tool for React.
  • React is a declarative, efficient, and flexible JavaScript library for building user interfaces.
  • Redux Form is a higher-order component using react-redux to keep form state in a Redux store.
  • Redux is a predictable state container for JavaScript apps.
  • Component Libraries
    • Material-UI is a set of React components for Material Design Lite.
    • React-MDL is a set of React components for Material Design Lite.

Setup Env

NPM Scripts

  • yarn run start: install and deploy development server with hot-reload and hot unit tests
  • yarn run build: build the production bundle
  • yarn run lint: lint the entire src directory with autofix
  • yarn test: execute unit tests with code coverage

Git

We utilizes industry best-practices with feature branch workflow via Github Flow. This allows us to accomplish fast-paced, high-quality, parallel development. Feature branch workflow aids our primary objectives, prioritizing user-centric ideals, that our stakeholders and end-users have directed, with stable and always deploy-able source code. For more information about the workflow see Github Flow.

Github Flow:

  • Create the branch. Make sure it begins with the feature/, hotfix/, bugfix/, semver/ prefix.
  • Add commits
  • Open a Pull Request
  • Review & Collaborate changes
  • Deploy and Test
  • Merge

Workflow Awareness

The following links provide enhanced awareness throughout the App Agile process:

Merging from Master

Best practice is to perform merging when working tree is clean. Use caution to first commit any unfinished work still desired, or reset git working tree. Choose git stash and save working tree until ready. Alternatively, reset working tree with git reset --hard.

Staying up-to-date with the latest from master is beneficial to parallel development. Remote master represents the most stable and approved iteration of the product. When working in parallel development, updates to master may effect current implementation. Work with the latest from master by merging the latest from master into feature/{name} as frequently as possible, but only when necessary.

Merging from Master Procedure

  • git reset --hard or git stash
  • git checkout master
  • git pull
  • git checkout "feature/{name}"
  • git merge master
  • No Conflicts: Auto-merge Successful
  • Conflicts: Resolve Conflicts and run:
    • git add .
    • git commit -m "merge master"
    • git push

Merging to Master

  • Make sure your feature branch is not behind master. This may be viewed from the Branch Status view in the Behind/Ahead column.
  • Verify that your feature branch builds successfully on TravisCI Status.
  • Check your coverage against master (also available on TravisCI Status. Make sure the coverage in your feature branch is greater than or equal to the coverage in master.
  • Resolve or reply to all Pull Request comments.
  • Use the Merge button on the Pull Request to merge back to master.
  • Once the test is successful and no further changes needed for sign off delete the original feature branch.

ESLint

We use Airbnb ESLint rules for lint/syntax errors, along with prettier for automated formatting and lint error fixing.

Exceptions

Atom

  • Install Atom
  • Optional: Install Recommended Packages
  • Optional: Disable packages for security guide lines and optimal performance

Install Packages

Find Packages here. However, it is recommended to install packages directly from Atom Package Manager. It can be accessed via ctrl/cmd+shift+p. The following packages work with our ecosystem to provide additional awareness and advantages to development workflow:

  • atom-css-clean
  • autoclose-html
  • autocomplete-json
  • autocomplete-modules
  • busy-signal
  • docblockr
  • file-icons
  • highlight-selected
  • html-entities
  • html-to-css
  • html-to-javascript
  • intentions
  • language-babel
  • linter
  • linter-eslint
  • linter-htmlhint
  • linter-ui-default
  • markdown-preview-enhanced
  • pigments
  • prettier-atom
  • terminal-panel
  • todo-show
You can’t perform that action at this time.