Brutally Roll Your Own Back-End

lamp-stack (1)

Brutally Roll Your Own Back-End is a video series in which we’ll build a complete push notification application for a small local business. Follow along with me as we initialize a linux server, and install a LAMP stack to host the back end of the application. Then we’ll build that back end using PHP scripting. We’ll build an administration application which is used to configure the back end and send push notifications, as well as a mobile application (Android only, for now) which is used to register and receive the notifications. Just for fun, we’ll also throw in a reward-points system…

Sign up with linode here

Sign up for Linode by clicking here!

If you select linode to host your back end, as I suggest in part 2 of this video series, please consider signing up through my referral link above. I host my servers (including this site) on linode, and this will help pay the bills! If you already have an account, you can enter this referral code: fb41cc68526abce4ffa14bfd797d5c4cc684f192  Your support is appreciated!

Source Code:

As I’ve mentioned previously, the project that we’re building in this video series is being built in real time with the videos. This is unprepared, unscripted, off-the-cuff coding. I had originally considered not releasing any of the videos until they were complete, and even when I decided against that, and began releasing videos as they were recorded,  I still considered not releasing the source code until the series was done. However, many of you have asked me for the source code, and so I’ve decided to open it up early.

Please consider the following:

  1. The sources are incomplete, and may change dramatically if the project should take a turn.
  2. The sources may also be slightly out of sync with the videos at times, until the series is done.
  3. The server that I am using is temporary and will be decommissioned when the series is recorded. It’s passwords are not set as they are in the video series, however, at least one password and a couple of API keys are hard coded into the source code. Please change these so as to not interfere with the server that I’m using to record the videos. If impact on the server threatens to derail the video series, I’ll simply commission a new server and freeze the source at that point. Please play nice with others.

The source code is contained within my public repository here:


You’ll need a subversion client to download these sources, and while there is a subversion client built into the RAD Studio IDE, I would still like to recommend TortoiseSVN for anyone unfamiliar with subversion.


[ Part-1 ]  An introduction to Brutally Roll Your Own Backend.
[ Part-2 ]  Configuring a LAMP stack using Brolly.
[ Part-3 ]  The PHP work begins, and we start building a database.
[ Part-4 ]  The PHP work continues, we’ll build an end-point.
[ Part-5 ]  More PHP work as we complete the reusable end-point code.
[ Part-6 ] Broken promise! An hour more of PHP to add permissions and filtering on doRead()
[ Part-7 ] Getting to Delphi at last! Consuming our end-points.
[ Part-8 ] Event driven model, pushing HTTP into separate threads, and a U.I. “still responding” animation.
[ Part-9 ]
 Lets get that error checking in, and add the locations end-point.
[ Part-10 ] 
We add an input dialog for altering the regions and locations data.
[ Part-11 ]  We complete the CRUD Client class with all methods.
[ Part-12 ] We complete the admin panel, and begin fleshing out the roaming panel of the truck app.
[ Part-13We adapt both the PHP and Delphi code, to handle loyalty points and shift tracking.
[ Part-14 ] Prevent duplicate vouchers being generated, correctly allocate voucher points based on the currency spent. Very short start on the mobile notification application.
[ Part-15 ] Building the notification app UI.
[ Part-16 ] Repairing a small design flaw in the UI, and adding code to register the device with our server.
[ Part-17 ] We write the code for registering devices against the devices end-point.
[ Part-18 ] We write the code for loyalty points balances.
[ Part-19We make a start on the sign-up and sign-in functions.
[ Part-20 ] We continue to flesh out the sign-up / sign-in functionality.
[ Part-21 ] Final Part! – We complete the sign-up / sign-in functionality, add the ability to redeem loyalty points, and add the PUSH notification code. Feature complete Alpha!

Thanks for watching!