Inspiration

Network infrastructure is something a lot of us take for granted, but in disasters or highly chaotic situations, it can fail, leaving people with no way to communicate. Hurricanes, riots, or even just extra crowded football games can make communication impossible. And in our highly connected world, it's increasingly more of a problem when we CANT connect to each other. We wanted to make something that would let people communicate with or without any sort of infrastructure.

What it does

Allows people to send messages over a mesh net of wifi-direct. It uses message passing functions to ensure that even if a target is out of your range, you can chain to other people and have them send the message where you cant. It also uses encryption based on chat room names so messages are completely secure in transit.

How we built it

We used Xcode and Swift to make it. The encryption was done with RNCryptor, a cross language AES encryption library. The UI was done using SwiftUI.

Challenges we ran into

Sending data with encryption was difficult. We also had troubles changing our UI to use SwiftUI.

Accomplishments that we're proud of

Every message is encrypted. Messages can be sent even if the target is not directly in range using message passing. The UI is pretty and actually looks like a messaging app.

What we learned

We learned the new version of Swift and SwiftUI. We also learned a lot about networking and wifi-direct. We also figured out a lot of stuff about encryption.

What's next for SafetyNet

We would like to improve the UI a little bit. We also want notifications and the ability to receive messages when offline. We would also like to add in the ability to connect to infrastructure if it is available. This would potentially let people connect to the internet even if they cannot directly connect.

Built With

Share this project:

Updates

Submission history