Skip to content
This repository has been archived by the owner. It is now read-only.
An in/out tracking app for iOS 7+ that uses iBeacon and Geofencing.
Objective-C Other
Branch: master
Clone or download
Latest commit f08ebc0 Jul 16, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
PunchClock.xcodeproj added global config Nov 18, 2014
PunchClock.xcworkspace Initial Commit Jul 8, 2014
PunchClock Remove HockeyApp Oct 2, 2015
.gitignore slight change Jul 28, 2014
LICENSE Initial Commit Jul 8, 2014
Podfile Remove HockeyApp Oct 2, 2015
Podfile.lock Remove HockeyApp Oct 2, 2015 Update Jul 16, 2019
StyleSettings.plist standardized formatting with objective-clean Jul 9, 2014
setup add a setup script Jul 10, 2014


PunchClock is an in/out tracking app for iOS 7+ that uses iBeacon and Geofencing.

PunchClock Screenshot

PunchClock cannot operate on its own - It requires the PunchClockServer.


In order to build PunchClock you'll need run the install script:

  • $ ./setup

This script sets up a constants.h file, two .xcconfig files and runs pod install

The constants.h file will need to be customized for your environment. It's meant to allow you to run PunchClock against a local copy of the server during development and a production server after release. If you don't plan to use the Hockey or push notifications you can set those things to nil.

Code-signing is managed in the two xcconfig files. You'll need to paste in your provisioning profile UUIDs or you can manage code-signing in the workspace directly but you'll need to be careful about pushing these changes back in any subsequent pull-requests.


When PunchClock is first launched you'll be prompted for your name which will get stashed in the keychain and used as the key in the server-side database. This is a pretty naive way to go about things but it Works For Us™. The app will then ask the server for a list of all of the people and will get back some JSON showing everyone's status as well as who is watching who. Tapping the bell icon will mark you as tracking that person and you'll receive a push notification when their status changes. If you're being watched by anyone then there will be an eye icon next to their name. Tapping the chat icon in the top-left will allow you to send a message to anyone marked as "In".

The Information tab simply shows you the data that Core Location is returning. It can be useful for fine-tuning the placement of iBeacons and geo-fence settings. Tapping your name here allows you to change it. Note: the server doesn't currently manage name changes automatically - you'll end up with a new record.


PunchClock is no longer being updated

Bug Reporting

PunchClock is an unsupported, unofficial Panic product.

You can’t perform that action at this time.