Recently I was chatting with some developer friends and we happened across an idea for a fun little web app that we instantly knew would have to be written. We were discussing how crazy the current US Presidential election cycle seems to be this year and we were lamenting the seemingly outlandish things one specific candidate was getting away with saying.
The idea was to build a web/mobile application that would allow you to send your friends/enemies anonymous text messages containing a sampling of the crazy quotes Donald Trump has uttered in this election cycle.
Politics aside, I instantly knew this would be a cool project to get up and running quickly and would allow me to explore some cool technologies. I had some criteria that I wanted to meet before I set out to create the app.
- I wanted it coded/tested/deployed in under 6 hours
- I wanted to spend less than $100
- I wanted it to be awesome
- I wanted every quote to be legitimate. Each quote must be cited.
- I wanted it to be completely anonymous. The receiver can not be aware of the sender.
- I wanted the receiver to be aware of when the other party received each message.
- I wanted the sender to be aware of any responses from the receiver.
The app is now up and running and you can check it out at: https://www.trumptexting.com
I think I came pretty close! For criteria 1, I went slightly over my 6 hour constraint ending up at 7 hours, but I can live with that.
Getting a usable site up and running, even an admittedly small one, is an accomplishment. This couldn't have been done in such a short time frame had it not been for building on platforms and services that are readily available. Building on the shoulders of giants.
I plan to write a series of posts outlining the details of how TrumpTexting.com was built. However, to get things started here are the technologies used.
- ASP.net MVC + C# + Visual Studio 2015.
- Windows Azure - App Service and SQL Server instance. Really outstanding.
- Bootstrap + Bootstrap them from WrapBootstrap.
- loggly + Log4Net for logging and log management.
- PetaPoco for the data layer. Simple. Fast.
- FluentScheduler for sending SMS on a schedule.
- The excellent Twilio service for sending/receiving SMS
- Stripe for payments.
- Clicky for web analytics
The number of libraries and services free to anyone on the net is truly astounding. The barrier to entry for building production ready applications, not just trivial quote sending apps, is very low and getting lower all the time.