myPoolMate

myPoolMate (https://mypoolmate.com) was developed for swimovate.com to augment their range of PoolMate watches.

The Brief

Swimovate wanted to build a database and website that their customers could upload their swimming data to, so that it could be used to replace their existing client software application and could be the basis of a central data repository and social network. The data from the watch can be used to "gamify" the swimming experience and add a fun, collaborative element to a swimmer's pool sessions. The site needed to integrate with social networks (Facebook in the first instance) so that swimmers could share their swims on their social profile, and thereby receive support for their efforts.

Technology

The website is built using PHP and MySQL. The responsive pages adapt to any form factor device with page components dropping into a longer page as the width of the device becomes restricted.

The starting point was a template from html5up.net, and custom elements were added to display the data and content that are required to run the site. This was used to minimise the development costs and to get the website active in a reasonable timeframe.

Database

The database was implemented in MySQL, with stored procedures used for all data access and called using the PHP PDO library.

myPoolMate main page

Data Graphs

myPoolMate graph example

Graphing was implemented using the flot.js library, which provides a good range of graphing options and supports all the widely used browsers.

Security

Hashed passwords example

Sensitive fields are salted and encrypted to AES standard using the Rijndael-256 algorithm. In the case of the user's password, one-way encryption is applied repeatedly so that the password cannot be decrypted at all.