Architecture, challenges and solutions
The system is made up of a mobile app written under the phonegap framework and a web API written in PHP with some parts created in Python. The main challenge for the mobile app was interfacing with native iOS and Android functionalities that the Phonegap project was not mature enough to handle at the time of implementation (such as camera manipulation). The main challenge serverside was handling all of the push notifications and push notification requests that get sent between the two apps. A cron, and a background process framework were established in order to batch push notification requests together and reduce overhead.