Following on our monthly “push” challenges and our previous 2 mini hackathons, it was time for our big 12 hour hackathon. The day started off with the team arriving early in the morning to enjoy breakfast while listening to and discussing potential ideas that could be built during the hackathon. After the listening to the various pitches from the various project leaders, each team member had 2 votes or “pledges” that they could give out to projects that they thought were good ideas. At the end of this process, the project leaders could choose their team round robin style from the pledges that their project received. The projects that we selected were:
Syntranet aimed to digitize some of our office processes such as applying for leave and booking boardrooms at the office. The team went with the .NET stack using Nancy to expose a RESTful API that was accessed through the front end which was built with Bootstrap and Angular.
Cow Connect aimed to detect a cow’s estrus (heat) cycle to enable farmers to manage their cattle reproduction processes more effectively. This technology could also potentially detect early signs of sickness amongst cattle. Data was collected through Bean devices which incorporate Bluetooth Low Energy to transmit data to central node. Once the data has been received by the central node, it can be analyzed by farmer using the software that the team developed. The Cow Connect team went the .NET stack using Web API to expose a RESTful API that was accessed through a front end which was built using Bootstrap and Angular.
Nimble testing aimed to help the automate the process of doing unit testing on big projects. Developers face many challenges when working on large code bases, one of these challenges is doing regression testing after fixing defects or adding new features. The automated testing framework would go through the system and take screenshots every time changes were made to project. These screen shots would be grouped by date and then the current screenshots were compared to the previous screenshots using image analysis and differences between screen shots would be highlighted. A developer could easily spot any errors or unintentional effects that their changes had on the functionality and appearance of a project.
Vktor aimed enable offline internet in areas or devices that did not have internet connectivity by a using bridge system to devices such as a mobile phones which had access to the internet at some point before arriving at the current location or device. This system could be useful to sync data between devices such as automated locks that were not necessarily connected to a network. Initially 2 teams formed around this idea and were initially split into building the app and infrastructure but as the day progressed they amalgamated into one big team split into different focus areas. The data team leveraged our existing cloud and Cassandra database infrastructure and implemented a distributed ledger system using Node.js that would manage the sending and receiving of data between the cloud, mobile phones and offline devices. Due to the data being transmitted through potentially unsafe channels, security was a concern and the crypto team implemented an ephemeral encryption scheme leveraging public key cryptography to encrypt data so that the relay device such as a mobile phone could not read or modify the data. The mobile team built an iOS app using XCode that would manage the process of receiving the encrypted data from the cloud and then relay the data to an offline device using Bluetooth low energy.
At the end of the day, each team demonstrated what they did and the challenges that they experienced throughout the day. Cow Connect won the prize for the best project and best presentation and were rewarded with a team lunch.
We look forward to our next exciting team building event!
By: Jared Naude, Synthesis Software Technologies