Inspiration

We were inspired by the lack of affordable data plans around Canada. Our nation is one of the most expensive1 when it comes to cell phone plans, and data is certainly no exception.

Our project seeks to remedy this by providing a free service to Canadians to find the weather, the news, or even just a funny joke.

Furthermore, for some Canadians, these prices are too far out of reach, and eat into more important things like food, housing, or childcare. For this reason, Canadians with accessibility issues that reduce their income, such as disabilities that made it difficult to work, generally choose cheaper plans, with less data, or even none at all. But texting is much more affordable, making it likely that they would have SMS.

Lastly, these same Canadians are sometimes limited by the cost of a smartphone, making it likely that some would have older, or less capable, cell phones, allowing no, or poor usage of data.

We believe our service could help these Canadian access services like directions on-the-go without the need for a prohibitively expensive data plan, or smartphone.

What it does

Text your search query to (289) 274-9428 and we will respond with a short list of results:

[0] Result 1
[1] Result 2
[2] Result 3
[3] Result 4
[4] Result 5

Text the number corresponding to the result you wish to learn more about and we will respond with more information.

Lorem ipsum dolor sit amet

We also support other commands

Such as

  • /date - date in loc
  • /directions - directions from A to B
  • /joke - a joke
  • /news - lst of news frm NYT
  • /time - time at loc
  • /translate ->
  • /weather - weather at loc

How we built it

We make use of

  • Google Cloud (GKE, Directions API, Geolocation API, Custom Search API, Translate API, Timezone API, etc.)
  • Docker
  • Flask
  • CockroachDB (postgresql-based)
  • NY Times Top Stories API
  • CloudFlare for Nameservers and Proxy
  • Domain.com for the .tech domain
  • WeatherBit Weather API
  • Twilio for SMS
  • jokeapi Through the use of multiple informative APIs, we are able to provide users with the functionality to search, find the weather, get directions, and more.
    We use Twilio to broker the SMS messages between a user and our Flask web server. The server listens for a POST request from Twilio, indicating a new message, and forwards the command on through several processing stages. We then forward the relevant bits of the command into an API call (or three), and receive some useful data. We process the result and return it back to Twilio as a reply.

For commands like /news or /search that rely on context for option choosing, we update our CockroachDB server and query it if the next command from the user matches a number.

Challenges we ran into

We ran into issues with Google Cloud's dashboard interface as it can get confusing when updating GKE drops, making it hard to deploy new changes to our server, and test.
We also ran into issues with docker-izing the project. Our project requires a few dependencies that had to be installed differently, making the construction of our Dockerfile more difficult.
Further, we had issues with html tags and unimportant "boilerplate" in the output of some API calls. This was fixed using the justext library.

Accomplishments that we're proud of

No member of our team has participated in more than one hackathon before, so for all of us, this experience was very new. Furthermore, most of us didn't have very much programming experience prior to this event, meaning we had a lot to learn.

We're proud to say that we made it work, and we're submitting it after the end of a long weekend.

What we learned

We learned Python, Flask, Postgresql (CockroachDB), some Docker, Google Cloud (GKE), HTML, CSS, and the power of teamwork.

What's next for Text It Search It

We hope to add more functionality, and switch over from Twilio to rolling our own SMS setup. This would reduce Twilio costs and allow us to provide the server to many people, free of charge.

Share this project:

Updates