You've heard of Chrome, but now there's Zinc!

Inspiration

Our team was inspired when we realized that we were often left helpless when travelling and could not locate a wifi hotspot - or one that was not secured by a password. We realized that we would still usually have cell service, and could use an alternate connection to access the internet. We were further inspired when we realized that this would be easily applied in developing countries where hotspots and wifi connections are even more limited.

What it does

Zinc browser allows the user to connect to external web servers through SMS means. A URL (or Google search) is requested within the browser, which is then sent through SMS to Twilio (as a web address). The Twilio API then continues to deliver this URL to our own backend server hosted in a location with wifi. This server then sends the URL to the specified external server. Once the request is received by the external server, this server then delivers the HTML and CSS code in packets and chunks (using a process called ‘transfer encoding: chunked’) of the webpage to our own server, and in turn back to Twilio, and finally back to the browser (through SMS), where the file is read and transformed again into a webpage.

How we built it

We began with setting up Twilio SMS and communication API as the backbone for our no-data connection. We then built and deployed our mobile browser with java using the android development studio to our device. Our backend server was probably the largest challenge in this hack. We used javascript to program our server to process the request from Twilio, submit the Get request to the specified web server, and then encode the html and css data to be sent back to the browser through Twilio.

Challenges I ran into

There were multiple instances, in which we did not know how our own backend server and the external server would retrieve or deliver data. Processes and elements, such as chunked encoding and HTTP headers had to be learned and we had to use these essential elements prior to using them for the program.

Accomplishments that I'm proud of

What I learned

Starting from scratch, we learned a lot about basic web communications - how browsers communicate with web servers, TCP and HTTP, and how browser engines receive information.

We also learned to work as a team!

What's next for Zinc

We want to optimize the processes of our back end server so that data can be sent in a ‘lazy-loading’ fashion. This would make our browser load smoother and make the experience more pleasant. For the browser itself, it can definitely revolutionize how those in developing countries use their technology and the accessibility towards resources. We are looking towards expanding this project so that the browser will uphold a unique and fluid front-end design

Built With

Share this project:
×

Updates