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.
For the first time this year, Dancing for Our Stars is now fully built in Lasso 9. It's backed by a CouchDB document store that houses transaction logs, donor data and tax receipt information. 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.
This year, we added an additional feature to this project: the ability to auto-generate tax receipts for all credit card donations, so donors immediately recieve a PDF of their donation receipt via email. In Lasso, it took a mere 50 lines of code to fill out a PDF template, attach it to an email and generate a permanent link so donors and administrators could download receipts securely at their convenience.
As a website that has facilitated hundreds of thousands of dollars in donations over three years, 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 and generating PDF tax receipts, this project demonstrates why Lasso's core values have made it our go-to language for web development.
We've managed the Dancing for Our Stars website for the past 3 years, and have seen traffic increase steadily every year. As this year's event approaches, we've seen more visitors - and more donations - than ever before.
With only a few days to go, Bridgeway has already raised twice as much as they had at the same time last year. Server activity is continuous, at all times of day, from all manner of device and browser. We've seen a huge increase in performance and reliability after switching from Lasso 8.5 to Lasso 9, allowing us to better meed the demands of this increased audience.
"Torusoft has been involved with Dancing for Our Stars for three years. Over that time, we have moved the website away from its original, PHP-based templated solution into a fully custom Lasso project. Having Torusoft build the website from the ground-up has allowed us to exert full control over the design, and add exciting new features like a real-time leaderboard and backend controls much more effectively. The addition of automated tax-receipt generation this year has been a huge help for our administration, and has helped us stay more focused on raising funds for Bridgeway Academy."
©LassoSoft Inc 2015 | Web Development by Treefrog Inc | Privacy | Legal terms and Shipping | Contact LassoSoft