Before intersession, we went up to New York for the day to hang out-- we made plans to meet in Port Authority, and though we'd never been, we assumed we'd be able to find each other. What we didn't grasp, of course, was that 200,000 other people might get in the way (the throughput that Port Authority sees each weekday). Arrow rose out of this; we saw the need to dynamically connect two users with a simple interface (just an arrow pointing the way); current map apps don't point you in the direction you need, a problem exacerbated by crowded spaces and in close proximity.

How it works

We created our own server with Apache, and used PHP to continuously update two files with location input. Each file is associated with a user ID corresponding to one of the 'participants', and each person views the other's location information file. Using HTML geolocation, arrow locates each phone and stores its coordinates and its bearing, which dynamically change as each person moves. The UI is simple; users enter the app by clicking the arrow at the entrance page, which links to the arrow that directs them to their goal. This arrow spins so that it always points to the target in real time, taking into account the bearing and coordinates of both users. We optimized the current version for mobile, specifically the Android operating system with working GPS.

Challenges I ran into

We initially intended to implement this as an iOS app but ran into problems with Xcode and Apple licensing. Mathematically relating the bearing and coordinates with the angle of displacement for the arrow also proved a significant challenge.

Accomplishments that I'm proud of

This is our first hackathon and experience developing anything at all-- we're proud to have produced arrow in the time that we did.

What I learned

We gained a greater appreciation for back-end developing and insight into this process, from the genesis and evolution of our idea to practical concerns about implementation, both the basic and the more involved.

What's next for arrow

We hope to improve arrow's stability/precision and add to its functionality. We envision adding an account system, whereby users could specifically target each other. We also plan to include a distance-indication tool, so that users know their proximity to each other.

Share this project: