GithubHelp home page GithubHelp logo

cleancoindev / wt-hackathon-emergency-shelter Goto Github PK

View Code? Open in Web Editor NEW

This project forked from crazyrabbitltc/wt-hackathon-emergency-shelter

0.0 0.0 0.0 63.99 MB

WindingTree Hackathon in Prague Oct 24th-25th, 2018.

License: MIT License

HTML 0.84% JavaScript 90.11% CSS 9.05%

wt-hackathon-emergency-shelter's Introduction

WT-Hackathon-Emergency-Shelter

WindingTree Hackathon in Prague Oct 24th-25th, 2018.

Team Name: Emergency Shelter

Update: We were fortunate enough to win not one, but two prizes at the WindingTree hackathon. We want to extend a big thanks to the WindingTree team, and all participants for such a great experience.

Team Members:

Dennison Bertram - [email protected] (github: crazyrabbitLTC) Skylar Weaver - [email protected] (github: skylarweaver)

Project Description:

Across the world, the increasing frequency and intensity of natural and human made disasters in the form of SuperStorms, Earthquakes and war means an increasing number of people are left homeless and in urgent need of emergency shelter.

Here is a screencast of our Emergency Shelter Index in action: Emergency Shelter Index Screencast

Problem:

While emergency organizations try to address the most dire of circumstances, they are frequently resource stretched and unable to meet every emergency housing crises on the globe.

By leveraging the Winding Tree Hotel index, Emergency Shelter seeks to tap into a global pool of volunteers willing to open their doors to assist those in need and solve the problem of emergency housing in emergency situations.

Solution:

Emergency Shelter is a meta-contract building on-top of the WindingTree Hotel Index. Currently the WindingTree hotel index deploys new instances of Hotel Contracts, complete with a manager address and URI for the data feed. The Emergency shelter Contract takes a novel approach by calling the WindingTree Hotel index to create a new hotel contract instance which is managed, rather than by a "manager" by the Emergency Shelter contract itself.

By doing so, Emergency Shelter creates "Hotel Instances" to represent emergencies, abtrascting the scope of an entire emergency under one "Hotel Instance" to be indexed and returned by the WindingTree API. Volunteers then submit "Shelters" directly to the Emergency Shelter contract which registeres and associates each "shelter" by "emergency".

This nature of this abstraction keeps the WindingTree Hotel Index uncluttered while centralizing Emergency offerings and solving several unique challanges:

Emergency "Shelter" accomodations will rarely, if ever, be submitted with metadata that meets the standards of the WindingTree Hotel Index: Shelters will rarely include more than a simple contact info and basic description- no photos, amenities, or swimming pool offerings.

WindingTree Hotel Index assumes that the hotel manager (the ETH responsible for managing the deployed Hotel Contract) will be an interested and motivated manager. With Emergency Shelter, this job is delegated to the manager of the "Emergency" which will most likely be an interested and motivated individual or Aid organization. In the Hotel Contract URI the "Emergency Manager" can keep relevant information up-to-date in a centrazlied format regarding emergency.

Following on that, when associating shelters by emergency, the emergency manager can remove from the WindingTree Hotel Index ALL of the availible shelters at the end of an emergency by simply deleting the associated Hotel Contract. As it is the nature of emergencies that individauls feel highly motivated at the outset but then lose interest as time goes on, if individuals were to directly register their shelter with the WindingTree Hotel index, the majority would most likely fail to delete their listing at the end of an emergency which would result in polution of the Hotel Index by zombie listings which would be impossible to delete,alter or manage.

Difficulties:

In the process of developing the Emergency Shelter smart contract, we discovered an problem and suggested a solution to the WindingTree Team. As currently written, the WT-Index contract does not return the address of a Hotel Contract once createn, meaning there is not a secure way to programatically be sure at creation time, the address of the hotel created. This is important to fully implement the functionality of deleting a Hotel Instance contract from the WindingTree Database, in this case, when an emergency has passed, as the smart contract is not aware of the address of the Hotel Contract that it directly manages.

What we Learned:

To create Emergency-Shelter required diving into the WindingTree contracts to understand the shape and format of WindingTree's database. We learned the way in which WindingTree is organized and have some suggestions as to how the system usability and security can be improved. In particualar it would be very helpful in our opinion if WindingTree expands support for 3rd party solidity contracts that can interact with the core WindingTree contract base. This would open up many possiblites for a richer more dynamic smart-contract controlled travel ecosystem.

Notes:

Ropsten Deployment of WindingTree Contracts: 0x933198455e38925bccb4bfe9fb59bac31d00b4d3 (For deployment of EmergencyShelter Contract)

wt-hackathon-emergency-shelter's People

Contributors

crazyrabbitltc avatar skylarweaver avatar sweaverdeloitte avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.