Dancing for Our Stars is an annual charity drive for Bridgeway Academy, a school in Dartmouth, Nova Scotia that focuses on providing educational support for students with learning disabilities. Framed as a dance competition between various local celebrities, the event collects donations in the form of votes supporting individual dancers.
DancingForBridgeway.com is where supporters go to make online donations, track their favourite dancers' progress, browse photos, receive updates from the event organizers, and view a real-time leaderboard for every dancer in the competition. With a responsive design, this is made possible from any device ranging from smartphones to desktop PCs.
The site is backed by a CouchDB document store that houses transaction logs and donor data. Lasso is particularly well-suited to handle this NoSQL solution, as CouchDB's REST interface fits perfectly with Lasso's robust Include_URL tag. The result is a series of simple one-line HTTP requests that read and write data effortlessly. The same is true when working with Stripe, which processes credit card transactions over a REST API.
As a website that has facilitated tens of thousands of dollars in donations, security has been paramount. All content is delivered over SSL. This posed an interesting challenge when dealing with social media services and mixed content from HTTP-only CDNs. To get around mixed-content browser warnings, we used Lasso to build pass-through proxies to 3rd party APIs that had no SSL endpoints. In one instance, to deliver photo galleries from Tumblr, we used Lasso's built-in caching features to download Base64 image data, cache the results, and serve the images from our domain with the correct content headers. This image caching proxy took 10 lines of code to write, and features this gem:
file_serve($data, -type="image/" + $url->split(".")->last);
Lasso's core values of security, speed and simplicity made it an ideal scripting language for Dancing for Our Stars. From the ease of implementing SSL proxies, the speed afforded by the built-in caching, and the simplicity and conciseness of its syntax when interacting with REST APIs, this project demonstrates why Lasso's core values have made it our go-to language for web development.
Thousands of end users have said very little! According to our analytics console, more than half our visitors stay and have a look around, using a variety of devices, browsers and operating systems. Our comprehensive logging system alerts us of any errors encountered during the donation process, and allows us to monitor further actions visitors take. In almost all instances, our validation scripts provide effective, useful feedback that helps visitors correct their mistakes on their own.
Traffic has increased steadily as we lead up to the event in September. As we see increased load on the server, Lasso shows no signs of slowing down.
"This is the second year that Torusoft has been involved with Dancing for Our Stars. Last year, we went with a third-party payment gateway that offered a templated solution based on PHP. It made custom designs and features like a real-time leaderboard difficult. This year, Torusoft built everything from the ground-up using Lasso instead of PHP. We were able to move away from our old payment gateway, implement a custom responsive design, and run custom reports on donor information. Not only has this solution been a better fit than what we had before, but it was completed a whole month earlier than last year."