Spring Term Final Update

Problem:

  • Location sharing apps are great, but may compromise on privacy.
  • Is there a way to check on your friends and family – in a noninvasive, convenient, and accessible way?

Solution:

  • Burrowed Time lets you share your location status (e.g. home) from pre-selected regions with friends and family.
    • Example user cases:
      First-year student with overprotective parents
      The Weasley’s

Technical Overview

  • Front end
    -App: Swift, Xcode
    -Data updated via user input (manual) and CoreLocation (automatic, entry/exit monitoring, notifies database)
  • Back end
    -Built on AWS with Python
    -SQL database
    -Data updated through API calls
  • Hardware
    -Raspberry Pi controller running Python
    -HDMI output to display
    -Stepper motor turns clock hand
    -Push button dial cycles through people

Accomplishments

  • Invitation system to add a friend to a group
  • App display to fit on multiple screen sizes
  • Stylistic changes for cleaner, intuitive UI
  • Testing on phones for feedback on the app
  • But not for interaction between users yet
  • Hardware (ahead of schedule!)
  • Raspberry Pi controls clock
  • Rotary encoder to control cycling through people or locking on a single person
  • Stepper motor to point clock hand

Unexpected Challenges

  • Apple certifications to test app on phone
  • Underestimated time required to style the app on the UI side and make it more accessible
  • Front-end, back-end integration
  • Setting up Python virtual environment
  • Finding reliable rotary encoder drivers

Next Steps

  • Live testing using multiple phones
  • Fixing unintuitive sections of UI
  • Making database calls asynchronous
  • Debugging code
  • Deleting/changing location names
  • Integrating invitation system with app
  • Building wooden casing for clock
  • Resolving potential motor overheating

 

Clock Demo:

Watch as we manually cycle through the members of our group, and the clock will adjust it’s the information displayed.

Winter Final Report

We are overall satisfied with our progress this term, particularly with the current UI and functionality of the app. Some of our more significant technical accomplishments include figuring out how to save dictionaries holding user and region data to the phone, syncing contacts with the app in order to import friends into a group directly from contacts, using a tab view to load dynamic information, adding custom functionality to the map such as the ability to edit the overlay radius of the annotations, and adapting asynchronous Alamofire requests to our synchronous data flow.

We are at most a week behind our proposed timeline, as there were some unexpected challenges that we had to address. Since we found out that Apple only allows us to monitor 20 locations at a time, most of our implementation of the database and location services had to be restructured as we describe above, which took up a lot of our time in the second half of the term. Additionally, our personal developer certifications were revoked by Apple, which means we can’t currently test the app on our phones and have to rely on the simulator until we set up the Dartmouth-provided keys.

We hope to solve this issue, and finish up connecting the front end to the back end, within the first week of spring term. After that, the month of April will be devoted to finalizing any remaining functionality and testing with multiple mobile phones and live location data. From there we plan to split into two streams, one focused on iterating the app prototype and the other devoted to the companion hardware. The physical clock will require a Raspberry Pi connected to a digital screen and a clock hand controlled by a Servos motor, housed in a wooden enclosure. The remainder of the term will focus on integrating the hardware with the software and improving the application based on user testing.

Spring Term Status update

Pitch: Have you ever wanted to verify the location or safety of a loved one or friend?   The options currently available for you are to call or text them and wait for a response, track their location on Find My Friends, or follow them everywhere they go. Burrowed Time seeks to provide a mobile application AND clock, to provide that peace at mind within preset locations. This way, you do not have to rely on a response from a text or phone call, and you do not have to be constantly tracked on Find My Friends. Locations within which you can be verified at (or not) are predetermined by each particular group.

Back-end front-end overview, challenges faced, current status

GUI Design: Each group you are a part of is on a different page which you horizontally scroll through. On each of the group pages, you then see the location of each member as long as it is a part of your preset locations. If they are not “on the clock” (they are outside of a preset location), they will be registered as “Travelling”.

Data Sources: Our data comes from two places, user input through the settings and group setup, and the location data being updated and checked at certain intervals. User data concerns user name, phone number, and visibility for now. But they also input names for people to add to their groups and their phone numbers which is creates a Person object stored on the phone, and each of these Person objects are put into Group objects. A Group object has a GroupName and a list of Persons. Each user, subsequently has a GroupList object attributed to their account, and each Group in their GroupList will make up the pages on the UI. Our group lists are stored on the phone for quick access, and every time we load the view we check that the lists stored on the phone are the same as those on Amazon Web Services, our database for all information.

Demo: Live or recorded

Goals for end of the term: App finished. Map, friends, and back-end implemented. Fully functional on a phone. Have transfer of data from AWS accessed by the Raspberry Pi for the start of the clock development. By the March 8th final presentation have a full phone demo of our app. We will proceed in the spring term, to build a beautiful clock which is connected to the Amazon Web Services and will display each member of that clock, with their location as it pertains to the clock locations. In essence, it will embody the spirit of the Weasley’s clock from the Harry Potter books and movies (See below). Unlike their traditional clock, ours will be dynamic to the locations set within that group. 

Family Clock in the Weasley's Burrow
Family Clock in the Weasley’s Burrow