Inspiration
Sometimes after a hiking trip together, friends would want to share photos with each other instantly. However, there is no wifi coverage immediately available, and they would have to wait until they get home to share with each other. Sometimes you want to quickly transfer files between mobile devices. Sometimes, you want to avoid being spied on by the NSA. Our app will help in those situations!
What it does
This application sends data between devices using cameras, QR codes, and lots of algorithms. There is no wifi, bluetooth, or radio signals involved!
How we built it
We built the app with React Native, mostly written with Javascript.
Challenges we ran into
One major challenge was the speed of information transfer. We had a working prototype 12 hours before the deadline, but it took potentially unlimited time to transfer any file. Our algorithm, which simply looped over the data to be sent over frame by frame, doesn’t work well when we cannot communicate with the receiver to guarantee or confirm the information received.
We decided to implement fountain codes, which are used in communication protocols ranging from live TV to torrenting networks. This brought another host of issues, including conflicts with the kinds of characters that are allowed to be sent over the QR code system.
Accomplishments that we're proud of
We are proud that our app is actually functional. Even though there were a lot of challenges and confusing bugs we faced, we kept going and pulled through in the last few hours. In addition, we are really proud that we managed to improve our algorithm’s speed with the implementation of fountain code.
What we learned
We learned about fountain codes, which enabled faster QR code communication and more reliability in challenging lighting conditions. Algorithms like that are used to transfer data over unstable connections with built-in error-correcting.
What's next for QTR
Next, we expect to add support for desktop computers to enable convenient and quick file transfer between computers and mobile phones. We also want to continue looking for better algorithms and ways to make our program more efficient.
Log in or sign up for Devpost to join the conversation.