## Inspiration

Our idea for FindSpot was born out of a deep empathy for the challenges faced by individuals with accessibility needs when navigating indoor spaces. While outdoor navigation apps abound, there is a significant gap in solutions tailored specifically to this marginalized group. FindSpot aims to bridge this gap by providing clear and accessible indoor navigation instructions, whether it's finding a classroom in a school or locating a food outlet in a busy food court.

## What it does

FindSpot allows for quick and easy navigation to a desired room in the E7 building by presenting the user with a simple to use interface. Once a room is selected, we use the user's phone to locate where they are, and find the shortest path to it, while avoiding all the obstacles in the way.

## How we built it

The front-end of the application was built with React Native. To find the shortest path to the destination, we used Python as well as some libraries to expedite the process.

## Challenges we ran into

The biggest challenge by far was the routing part of the project. This was because while, in theory, we knew that we needed to implement an algorithm, we didn't know how to integrate it into the React Native application. This caused an issue towards the end, where we had everything almost ready, but we didn't think about how the Python back-end would communicate with the React Native front-end application.

## Accomplishments that we're proud of

The routing algorithm is the thing that we're most proud of. While the algorithm itself is not new from us, implementing it was quite challenging. Finding a common ground where we could include all the features we wanted (GUI, tracing of path) while retaining the pathing algorithm's functionality was no easy task, but we managed to pull through in the end.

Furthermore, the front-end of the React Native application was no easy task either. React Native is notorious for being picky when it comes to running certain code on specific devices, not to mention the overall availability of the React Native packages out there (some libraries do explicitly support React Native, even though they should). It was a fun, yet challenging experience to develop for that platform.

## What we learned

Meticulous planning is something that we learned. Moving forward, we should better plan the project that we want to implement during the hackathon. While we managed to get most of the features we wanted for the project, it felt very rushed and many things did not work as expected. We therefore had to make many compromises for things to work the way we wanted them to, which is definitely something to avoid for the next time we'd be attempting this hackathon.

## What's next for FindSpot

* Fix all the bugs! This goes without saying for every project, but there are currently many functionalities that are not perfect and/or convoluted because we did not have enough time to polish the experience.
* Implement the placeholder icons. Some icons were there for show, because again, we did not have enough time to implement all the features that we wanted. We therefore opted to fill the void with placeholder icons which illustrate how we want the app to look without providing additional functionality.
## Inspiration

Whether it be your local Tims or even upbeat restaurants, it is no secret that almost all food places have food waste, a lot of which could be eaten by people who want and need it. However, due to lack of infrastructure in most restaurants for such an operation, most of that food is still thrown out at the end of the day. But *what if...*

## What it does

Foodfriends is a web app created to link any place with food waste to local organizations so that volunteers can go pick up the food and deliver them to "food waste centres", where that food would then be redistributed to people who need it.

## How we built it

We used React Native, Javascript, Html and CSS for the front end, and for the backend we used Flask and Google Cloud. We also used the Google Maps API (a part of google cloud) to build our map system functionality.

## Challenges we ran into

The biggest challenge we ran into was the difference in timezones between members of our team, which posed a huge obstacle in terms of communication and lead to several people leaving and several new people being recruited over the course of the hackathon.

## Accomplishments that we're proud of

We were able to get this app built despite all of the various changes in team members!

## What we learned

The backend devs on our team were forced to work with a bit of frontend and vice-versa, which lead to all of us discovering how truly little we know in the world of software development! Overall, I personally learnt a completely new workflow to work with my teammates, and I'm sure they did the same too!

## What's next for FoodFriends

The next step for FoodFriends is finding some food places and some "friends" (volunteer organizations) that want the food! (i.e expanding our userbase)
## Inspiration

The vicarious experiences of friends, and some of our own, immediately made clear the potential benefit to public safety the City of London’s dataset provides. We felt inspired to use our skills to make more accessible, this data, to improve confidence for those travelling alone at night.

## What it does

By factoring in the location of street lights, and greater presence of traffic, safeWalk intuitively presents the safest options for reaching your destination within the City of London. Guiding people along routes where they will avoid unlit areas, and are likely to walk beside other well-meaning citizens, the application can instill confidence for travellers and positively impact public safety.

## How we built it

There were three main tasks in our build.

1) Frontend:
Chosen for its flexibility and API availability, we used ReactJS to create a mobile-to-desktop scaling UI. Making heavy use of the available customization and data presentation in the Google Maps API, we were able to achieve a cohesive colour theme, and clearly present ideal routes and streetlight density.

2) Backend:
We used Flask with Python to create a backend that we used as a proxy for connecting to the Google Maps Direction API and ranking the safety of each route. This was done because we had more experience as a team with Python and we believed the Data Processing would be easier with Python.

3) Data Processing:
After querying the appropriate dataset from London Open Data, we had to create an algorithm to determine the “safest” route based on streetlight density. This was done by partitioning each route into subsections, determining a suitable geofence for each subsection, and then storing each lights in the geofence. Then, we determine the total number of lights per km to calculate an approximate safety rating.

## Challenges we ran into:

1) Frontend/Backend Connection:
Connecting the frontend and backend of our project together via RESTful API was a challenge. It took some time because we had no experience with using CORS with a Flask API.

2) React Framework
None of the team members had experience in React, and only limited experience in JavaScript. Every feature implementation took a great deal of trial and error as we learned the framework, and developed the tools to tackle front-end development. Once concepts were learned however, it was very simple to refine.

3) Data Processing Algorithms
It took some time to develop an algorithm that could handle our edge cases appropriately. At first, we thought we could develop a graph with weighted edges to determine the safest path. Edge cases such as handling intersections properly and considering lights on either side of the road led us to dismissing the graph approach.

## Accomplishments that we are proud of

Throughout our experience at Hack Western, although we encountered challenges, through dedication and perseverance we made multiple accomplishments. As a whole, the team was proud of the technical skills developed when learning to deal with the React Framework, data analysis, and web development. In addition, the levels of teamwork, organization, and enjoyment/team spirit reached in order to complete the project in a timely manner were great achievements

From the perspective of the hack developed, and the limited knowledge of the React Framework, we were proud of the sleek UI design that we created. In addition, the overall system design lent itself well towards algorithm protection and process off-loading when utilizing a separate back-end and front-end.

Overall, although a challenging experience, the hackathon allowed the team to reach accomplishments of new heights.

## What we learned

For this project, we learned a lot more about React as a framework and how to leverage it to make a functional UI. Furthermore, we refined our web-based design skills by building both a frontend and backend while also use external APIs.

## What's next for safewalk.io

In the future, we would like to be able to add more safety factors to safewalk.io. We foresee factors such as:
 Crime rate
 Pedestrian Accident rate
 Traffic density
 Road type