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 nodejs
+angular
, uses firebase
for the sockets and is sponsored by ObjectRocket
for mongodb.
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
Note: you will need node
and 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: http://localhost:3000/
- All server files live in the
/server
directory. - Controllers live in the
/server/controllers
directory. - General app config lives in the
/server/app.js
file.
- Try to use npm where possible, record dependencies in
package.json
or use the--save
flag withnpm
- All frontend files live in the
/public
directory. - Angularjs components are split up in to
features
in the/public/features
directory. - Inside each feature can be controllers, services, styles and views related to that specific feature.
- Each feature may include an
init.js
file to initialize routes and services. - Generic styles & services can live in
/public/style
&/public/services.js
. - The main angular app config lives in
/public/app.js
- The layout file is rendered in jade and passes session and user info from the backend to the frontend. This lives in
/public/index.jade
- Try to use bower where possible, record dependencies in
bower.json
or use the--save
flag withbower
- Other 3rd party code can live in
/public/vendor
.
The frontend is built with angularjs
, which is pretty simple if you have experience with a javascript MVC framework. Jquery
, underscore
& Twitter Bootstrap
are also included.
- Create a new directory for the feature
/public/features/myfeature
. (it may be easier to copy an existing one) - Modify
init.js
to set up your routes and rename the controllers etc. - Edit
/public/app.jade
in the// ========= Features =========
section to add your new feature. (it may be easier to copy an existing one) - You can modify
/public/features/menu/menu.html
to add your new feature to the top menu.
The mapping lib leafletjs
is included and some example code can be found in the map
feature directory. ( leaflet
functions all start with L.
)
- http://leafletjs.com/
- https://github.com/missinglink/relief.io/blob/master/public/feature/map/IndexController.js
The backend is built with nodejs
. If you have experience with ruby
or PHP
etc you should be fine copy->pasting to get you started. The server is based on expressjs
& the sockets are using firebase
.
- Create a new controller in
/server/controllers
or a service in/server/services
. (it may be easier to copy an existing one) - Edit
/server/app.js
in the// Controllers
or// Services
section to add your new feature. (it may be easier to copy an existing one)