## Inspiration

This project was inspired by my love of walking. We all need more outdoor time, but people often feel like walking is pointless unless they have somewhere to go. I have fond memories of spending hours walking around just to play Pokemon Go, so I wanted to create something that would give people a reason to go somewhere new. I envision friends and family sending mystery locations to their loved ones with a secret message, picture, or video that will be revealed when they arrive. You could send them to a historical landmark, a beautiful park, or just like a neat rock you saw somewhere. The possibilities are endless!

## What it does

You want to go out for a walk, but where to? SparkWalk offers users their choice of exciting "mystery walks". Given a secret location, the app tells you which direction to go and roughly how long it will take. When you get close to your destination, the app welcomes you with a message. For now, SparkWalk has just a few preset messages and locations, but the ability for users to add their own and share them with others is coming soon.

## How we built it

SparkWalk was created using Expo for React Native. The map and location functionalities were implemented using the react-native-maps, expo-location, and geolib libraries.

## Challenges we ran into

Styling components for different devices is always tricky! Unfortunately, I didn't have time to ensure the styling works on every device, but it works well on at least one iOS and one Android device that I tested it on.

## Accomplishments that we're proud of

This is my first time using geolocation and integrating a map, so I'm proud that I was able to make it work.

## What we learned

I've learned a lot more about how to work with React Native, especially using state and effect hooks.

## What's next for SparkWalk

Next, I plan to add user authentication and the ability to add friends and send locations to each other. Users will be able to store messages for their friends that are tied to specific locations. I'll add a backend server and a database to host saved locations and messages. I also want to add reward cards for visiting locations that can be saved to the user's profile and reviewed later. Eventually, I'll publish the app so anyone can use it!
## Inspiration

Walking is a sustainable and effective form of transit whose popularity is negatively impacted by perceived concerns about boredom and safety. People who are choosing between multiple forms of transit might not select walking due to these issues. Our goal was to create a solution that would make walking more enjoyable, encouraging people to follow a more sustainable lifestyle by providing new benefits to the walking experience.

## What it does

Our web app, WalkWithMe, helps connect users to other walkers nearby based on times and routes, allowing them to walk together to their intended destinations. It approximately finds the path that maximizes time spent walking together while also minimizing total travel distance for the people involved. People can create accounts that allows them to become verified users in the network, introducing a social aspect to walking that makes it fun and productive. Additionally, this reduces safety concerns as these are often less pronounced in groups of people versus individuals while walking; this is especially true at night.

## How we built it

We used react.js for the frontend, Sonr and Golang for the backend. We hosted our website using Firebase. Our map data was generated from the Google Maps API.

## Challenges we ran into

Our frontend team had to completely learn react.js for the project. We also did not have prior experience with the Sonr and Google Maps API. We needed to figure out how to integrate Sonr into the backend with Golang and Google Maps API to find the path.

## Accomplishments that we're proud of

We are proud of developing and implementing a heuristic algorithm that finds a reasonable path to walk to the destination and for creating an effective backend and frontend setup despite just learning react and Sonr in the hackathon. We also overcame many bugs relating to Google's geocoding API.

## What we learned

We learned react.js to display our interactive website efficiently, how to integrate Sonr into our project to store profile and location data, and how to use Google Maps to achieve our goals with our program.

## What's next for WalkWithMe

We have many ideas for how we can take the next step with our app. We want to add a tiered verification system that grants you credit for completing walks without issues. The higher you are in the rating system, the more often you will be recommended walks with smaller groups of people (as you are viewed as more trustworthy). We also want to improve the user interface of the app, making it more intuitive to use. We also want to expand on the social aspect of the app, allowing people to form walking groups with others and deepen connections with people they meet. We also want to add geolocation trackers so that users can see where their group members are, in case they don't walk at a similar speed toward the meet-up location.
## Inspiration

Living in the big city, we're often conflicted between the desire to get more involved in our communities, with the effort to minimize the bombardment of information we encounter on a daily basis. NoteThisBoard aims to bring the user closer to a happy medium by allowing them to maximize their insights in a glance. This application enables the user to take a photo of a noticeboard filled with posters, and, after specifying their preferences, select the events that are predicted to be of highest relevance to them.

## What it does

Our application uses computer vision and natural language processing to filter any notice board information in delivering pertinent and relevant information to our users based on selected preferences. This mobile application lets users to first choose different categories that they are interested in knowing about and can then either take or upload photos which are processed using Google Cloud APIs. The labels generated from the APIs are compared with chosen user preferences to display only applicable postings.

## How we built it

The the mobile application is made in a React Native environment with a Firebase backend. The first screen collects the categories specified by the user and are written to Firebase once the user advances. Then, they are prompted to either upload or capture a photo of a notice board. The photo is processed using the Google Cloud Vision Text Detection to obtain blocks of text to be further labelled appropriately with the Google Natural Language Processing API. The categories this returns are compared to user preferences, and matches are returned to the user.

## Challenges we ran into

One of the earlier challenges encountered was a proper parsing of the fullTextAnnotation retrieved from Google Vision. We found that two posters who's text were aligned, despite being contrasting colours, were mistaken as being part of the same paragraph. The json object had many subfields which from the terminal took a while to make sense of in order to parse it properly.
We further encountered troubles retrieving data back from Firebase as we switch from the first to second screens in React Native, finding the proper method of first making the comparison of categories to labels prior to the final component being rendered. Finally, some discrepancies in loading these Google APIs in a React Native environment, as opposed to Python, limited access to certain technologies, such as ImageAnnotation.

## Accomplishments that we're proud of

We feel accomplished in having been able to use RESTful APIs with React Native for the first time. We kept energy high and incorporated two levels of intelligent processing of data, in addition to smoothly integrating the various environments, yielding a smooth experience for the user.

## What we learned

We were at most familiar with ReactJS- all other technologies were new experiences for us. Most notably were the opportunities to learn about how to use Google Cloud APIs and what it entails to develop a RESTful API. Integrating Firebase with React Native exposed the nuances between them as we passed user data between them. Non-relational database design was also a shift in perspective, and finally, deploying the app with a custom domain name taught us more about DNS protocols.

## What's next for notethisboard

Included in the fullTextAnnotation object returned by the Google Vision API were bounding boxes at various levels of granularity. The natural next step for us would be to enhance the performance and user experience of our application by annotating the images for the user manually, utilizing other Google Cloud API services to obtain background colour, enabling us to further distinguish posters on the notice board to return more reliable results. The app can also be extended to identifying logos and timings within a poster, again catering to the filters selected by the user. On another front, this app could be extended to preference-based information detection from a broader source of visual input.