A webapp to support the coordination of disaster relief efforts.
Relief.io was started during Hack4Good: Typhoon Haiyan to help with disaster relief in the Philippines with the intent to be used in any future disaster relief efforts.
The app is built with
firebase for the sockets and is sponsored by
ObjectRocket for mongodb.
Contributing to the project
Please help out where you can, we're happy for this repo to be the base for a bunch of projects that can all live at http://relief.io or you are free to fork it and create another site.
Join in the chat:
Please star the repo and spread the word on twitter! https://twitter.com/insertcoffee/statuses/399232533910409216
Setting up for development
Note: you will need
npm installed first.
The easiest way to install
node.js is with nave.sh by executing
[sudo] ./nave.sh usemain 0.10
Clone the repo, enter the directory and type:
$ npm install $ [sudo] npm install bower -g $ bower install $ npm start
You should now be able to access the server here:
- All server files live in the
- Controllers live in the
- General app config lives in the
- Try to use npm where possible, record dependencies in
package.jsonor use the
- All frontend files live in the
- Angularjs components are split up in to
- Inside each feature can be controllers, services, styles and views related to that specific feature.
- Each feature may include an
init.jsfile to initialize routes and services.
- Generic styles & services can live in
- The main angular app config lives in
- The layout file is rendered in jade and passes session and user info from the backend to the frontend. This lives in
- Try to use bower where possible, record dependencies in
bower.jsonor use the
- Other 3rd party code can live in
Developing a new feature
The frontend is built with
Twitter Bootstrap are also included.
- Create a new directory for the feature
/public/features/myfeature. (it may be easier to copy an existing one)
init.jsto set up your routes and rename the controllers etc.
// ========= Features =========section to add your new feature. (it may be easier to copy an existing one)
- You can modify
/public/features/menu/menu.htmlto add your new feature to the top menu.
Adding information to a map
The mapping lib
leafletjs is included and some example code can be found in the
map feature directory. (
leaflet functions all start with
The backend is built with
nodejs. If you have experience with
PHP etc you should be fine copy->pasting to get you started. The server is based on
expressjs & the sockets are using
- Create a new controller in
/server/controllersor a service in
/server/services. (it may be easier to copy an existing one)
// Servicessection to add your new feature. (it may be easier to copy an existing one)