Adventures in Laravel

My wife runs a dance studio that we had built in our backyard. It is a 12×20 Tuffshed and I called it Denver Dance. We decked it out and it is a dance studio where she teaches hip hop, pole, and aerial. I have no skills in any form of physical movement so my part in this story is all tech related. I built her site, I filmed her video content and took all the photos that she needed to get her name out there ( and get some good SEO of course ).

At the time, I used a WordPress plugin called Event Espresso for class registration. The options for this type of software require monthly fees of $80.00 or more, but this plugin was a one time purchase and had a lot of great features. I don’t think it was built for the type of application we used it for, but I made it work. It had a nice calendar and had size limits, took payments, etc. At the time you had to purchase separately add-ons such as the calendar, recurring events, and some other things I wanted, but it was still better than paying a monthly fee, when I was hosting the site and database. My wife didn’t like some features and it was not super easy to modify classes. Each month I would hear her griping about the up coming month because she had to create new classes and set it all up and sometimes it wouldn’t work. As good as this plugin was, I felt it was time to get off my butt ( or sit on it a lot longer at night ) and build something more tailored to her ( and other dance studios really ).

I am a java developer by day, with a mix of .Net and javascript. It would have been real easy to architect the hell out of this in a Java stack with fancy things that I have at my disposal as a Java developer. The problem is, I didn’t want to pay for a host provider that offered Java to deploy…actually let me rewind, I researched the idea and even considered options like Googles App Engine and deploying to Amazon AWS. I did the required week of building sample apps and tinkered with examples and wrote prototypes, but I didn’t feel like this was the solution. Could I have made a Java application work? Sure, but I have been building Java applications since JDK 1.3 and this was my spare time. I wanted to try something new. Something to take me out of my comfort zone. Enter PHP

“I will never use PHP. I don’t like it and I think its a mess”

I am paraphrasing a status update I posted on Facebook years ago. When I was building custom templates in WordPress, I just hated PHP. Variables with no types? What the heck is that all about? I felt like PHP ( and still do I guess ) is like the wild west. It just seems too unstructured for me, but here’s the wrinkle: you can deploy a “web application” on any host out there. I use Media Temple to host all my domains and it would require no extra cost or host provider to build something using PHP. I did my research and was pushed into something called Laravel by a coworker. I looked it up and played around with it and found it something that I not only enjoyed, but felt was the right answer to my programming challenge while also providing me with the new programming smell that was itching my brain for a while.

Throw in a nice montage of me reading the docs, followed by a bunch of hours watching some great tutorials on Laracasts and voila, I am like Neo from the Matrix and I know Kung Fu.

With the history out of the way, I can now explain the requirements for this new product I was embarking on:

  • Free
  • No extra hardware or services to deploy
  • Classes are easy to create and maintain
  • Classes are easy to sign up for
  • Payments are easy and not limited to PayPal
  • Secure
  • Mobile Friendly
  • Services for Students (text notifications, reminders)
  • Services for instructors (cancel class notifies students, alerts to minimum class sizes)
  • Waiting lists!!

My technology stack for this project boiled down to this:

  • Laravel 5.2(I actually started in 4, but migrated to 5.2…and of course 5.3 is now out)
  • MySQL (free databases on MT)
  • Stripe (payment gateway)
  • Twilio
  • Themeforest for custom theme (I am not a web designer..except for the Denver Dance website, the only site I am not ashamed of)

I am a fairly recent convert from the Eclipse IDE to IntelliJ IDE for java development, so I decided to switch from doing my PHP work in Sublime to PHPStorm. Its a really great IDE that I am glad I chose to use it.

Armed with experience, an itch to branch off to new territory, and just enough training to be dangerous, I ventured off to build a nice solution for one of the hardest clients I have had to work with 😉

Tune in next time as I delve into the process ( spoiler alert, the site is already live so you should know it has a happy ending )