A prototypical triage management system based on commodity hardware and software components using a single-hop, ad-hoc network architecture with multi-master replication, a tablet-based device setup, and a mobile application for emergency services.
- Ensure that all dependencies are installed and available in your PATH
- Change to the
disasterApp
directory - Run
npm install
to install all client dependencies with npm - Run
gulp dist
to pack all client dependencies together - Modify the
.couchapprc
according to your CouchDB configuration - Run
npm run deploy
to push the application to your CouchDB instance - Access the disasterApp using the displayed URL
Due to an unresolved Erlang bug (see Connection to IPv6 link local address fails due to missing scope identifier) it is not possible to replicate to a remote database using an IPv6 link local address.
As a workaround Erlang's native IP implementation can be patched, by modifying the inet_set_address
method in otp/erts/emulator/drivers/common/inet_drv.c
.
This method is used to set the ip address for a connection.
To use link local addresses one has to set the sin6_scope_id
field in the sockaddr
struct, to the correct value.
Since this value is only used for link local addresses, any other communication is unaffected by this workaround.
(see also man 7 ipv6)
- Make sure that couchDB listens on all IPv6 addresses, by setting
chttpd.bind_address = ::
- Change to the
disasterBeacon
directory - Run
npm install
to install all dependencies with npm - Start the disasterBeacon with
node index.js
or any node process manager (e.g. pm2)
- Attach two WLAN USB dongles to the Raspberry Pi
- Configure one as an access point (e.g. using hostapd), through which a user device can be connected
- Configure the other one in IBSS mode
- Install all dependencies and follow the "Getting Started" instructions
- Dominik Meißner, Benjamin Erb, Rens van der Heijden, Kristin Lange, and Frank Kargl. 2016. Mobile triage management in disaster area networks using decentralized replication. In Proceedings of the Eleventh ACM Workshop on Challenged Networks (CHANTS '16). ACM, New York, NY, USA, 7-12. DOI: http://dx.doi.org/10.1145/2979683.2979689