How Geofencing and Laziness Gave Birth to AFKme

  • Scope:
  • Web Development
  • Mobile Development

The idea for this app was born out of pure laziness and forgetfulness. I’d had a recurring problem with our Slack channel #worktime. I kept forgetting to use it… The idea behind it is to notify others when you are away from your keyboard and such. Whenever I was going out for a lunch or switching to remote work I kept forgetting to write a message there. One time I was browsing articles on reddit and I encountered one about geofencing. The concept was known to me for a while but I’d always thought it wasn’t that useful. It hadn’t given it much thought but later it struck me. This could potentially fix my “AFK problem”. Luckily, hackathon was coming and I figured it would be a great little project for it. So did others and that’s how it came to be.

Once we formed a team we started brainstorming. Our MVP had to have at least one functionality. When you go out of the office it is supposed to somehow enable you to post a message to #worktime channel. It should use geofencing to set up a perimeter around the office. Once you’ve crossed the boundary it should send a local notification asking you whether to send a message. Having that we decided to expand the idea a little.

In our initial approach we used a hardcoded 45min afk message. The next logical step would be to let the user select how long he is planning to be away. To solve this we introduced a settings screen where you could set you default afk times. Perhaps the user sometimes would like to write something more verbose. That’s why we used rich notifications and let him reply with a custom message. As a bonus, we added an option for quickly sending “Working remotely”.

As a final nice-to-have feature we wanted to simultaneously post a message and set the Slack status to a corresponding emoji. With that the work began.

The MVP didn’t take that much time to complete. We were working without a designer so we weren’t concerned that much with the aesthetics. The biggest obstacles were geofencing limitations and Slack integration. Unfortunately, geofencing accuracy was far lower than we anticipated. The documentation states that used areas should have radiuses of at least 100m. Also, it sometimes takes up to 2 min for the system to trigger the boundary cross notification. Connection to WiFi greatly increases the accuracy but we couldn’t rely on that. Once implemented, we tested it by repeatedly driving in and out on a bicycle. I think it was at least a couple kilometers. For Slack integration we used a ready-to-use oauth solution with SDK.

In the middle of the hackathon a wild designer appeared. He loved the idea and wanted to help. Quickly, the app was beautified. Also, because of him we added one final feature. He was working from home and wanted to use the app as well. Previously, we were using a hardcoded geofence around our Wroclaw’s office but in the end we allowed for the location to be customized to any place in the world.

In the end, after a night without sleep we had a working app. Both iOS and Android. We even did a livestream to prove that it was actually working. It was lots of fun to build it and we loved that we solved an actual problem of people in our office.

Similar Posts

See all posts