## Inspiration

We wanted to create a multiplayer game that would allow anyone to join and participate freely. We couldn't decide on what platform to build for, so we got the idea to create a game that is so platform independent we could call it platform transcendent.. Since the game is played through email and sms, it can be played on any internet-enabled device, regardless of operating system, age, or capability. You could even participate through a public computer in a library, removing the need to own a device altogether!

## What it does

The game allows user-created scavenger hunts to be uploaded to the server. Then other users can join by emailing the relevant email address or texting commands to our phone number. The user will then be sent instructions on how to play and updates as the game goes on.

## How I built it

We have a Microsoft Azure server backend that implements the Twilio and SendGrid APIs. All of our code is written in python. When you send us a text or email, Twilio and SendGrid notify our server which processes the data, updates the server-side persistent records, and replies to the user with new information.

## Challenges I ran into

While sending emails is very straightforward with SendGrid and Twilio works well both for inbound and outbound texts, setting up inbound email turned out to be very difficult due to the need to update the mx registry, which takes a long time to propagate. Also debugging all of the game logic.

## Accomplishments that I'm proud of

It works! We have a sample game set-up and you could potentially win $5 Amazon Gift Cards!

## What I learned

Working with servers is a lot of work! Debugging code on a computer that you don't have direct access to can be quite a hassle.

## What's next for MailTrail

We want to improve and emphasize the ability for users to create their own scavenger hunts.
we built an interactive web application that allows users to learn about mail in ballots by scrolling using their hand movements!
## Inspiration

Have you ever wanted to search something, but aren't connected to the internet? Data plans too expensive, but you really need to figure something out online quick? Us too, and that's why we created an application that allows you to search the internet without being connected.

## What it does

Text your search queries to (705) 710-3709, and the application will text back the results of your query.

Not happy with the first result? Specify a result using the `--result [number]` flag.

Want to save the URL to view your result when you are connected to the internet? Send your query with `--url` to get the url of your result.

Send `--help` to see a list of all the commands.

## How we built it

Built on a **Nodejs** backend, we leverage **Twilio** to send and receive text messages. When receiving a text message, we send this information using **RapidAPI**'s **Bing Search API**.

Our backend is **dockerized** and deployed continuously using **GitHub Actions** onto a **Google Cloud Run** server. Additionally, we make use of **Google Cloud's Secret Manager** to not expose our API Keys to the public.

Internally, we use a domain registered with **domain.com** to point our text messages to our server.

## Challenges we ran into

Our team is very inexperienced with Google Cloud, Docker and GitHub Actions so it was a challenge needing to deploy our app to the internet. We recognized that without deploying, we would could not allow anybody to demo our application.

* There was a lot of configuration with permissions, and service accounts that had a learning curve. Accessing our secrets from our backend, and ensuring that the backend is authenticated to access the secrets was a huge challenge.

We also have varying levels of skill with JavaScript. It was a challenge trying to understand each other's code and collaborating efficiently to get this done.

## Accomplishments that we're proud of

We honestly think that this is a really cool application. It's very practical, and we can't find any solutions like this that exist right now. There was not a moment where we dreaded working on this project.

This is the most well planned project that we've all made for a hackathon. We were always aware how our individual tasks contribute to the to project as a whole. When we felt that we were making an important part of the code, we would pair program together which accelerated our understanding.

Continuously deploying is awesome! Not having to click buttons to deploy our app was really cool, and it really made our testing in production a lot easier. It also reduced a lot of potential user errors when deploying.

## What we learned

Planning is very important in the early stages of a project. We could not have collaborated so well together, and separated the modules that we were coding the way we did without planning.

Hackathons are much more enjoyable when you get a full night sleep :D.

## What's next for NoData

In the future, we would love to use AI to better suit the search results of the client. Some search results have a very large scope right now.

We would also like to have more time to write some tests and have better error handling.