Deploying My First Web App or: How I Learned from Challenges and Love the Development Process

About Wingmates
Planning for a proper date or activity is time consuming. Stop planning. Start Dating. isn’t just the tagline for Wingmates; the idea was a culmination of stress, lack of time and well, lack of other existing solutions. Jeremy Antonio, Russell Molimock and I want to fix the issue: By simply entering a location (typically your city), we would provide a curated activity or location suitable for a date.
Our target audience are primarily folks who are busy. Single parents, people who work most of the day, university students and the like. The current iteration of Wingmates is able to address the needs of busy folks while keeping it accessible to other individuals as well.
Jeremy expertly crafted Wingmates frontend that everyone is presented with, making use of Bootstrap, with no prior experience. Russell worked extensively in backend handling thing such as our datetime objects and conversion (much more complex than it sounds). I focused on an SRE like role and worked in backend along with Jeremy as well. Between the three of us, we have over thirty-five years of dating experience and have still found the process time consuming, not necessarily in the right ways.
I myself can recall countless times trying to find and decide on a place to go whether it be first, second or subsequent dates. “Hmm… this place is a little too pricey” or hearing “You pick…No I don’t want to go there”, such thoughts or occurrences were becoming commonplace, and dating apps like Tinder or Bumble didn’t even offer suggestions after connecting people! Surely I wasn’t the only person to experience this, and years later when Jeremy, Russ and I were shooting the breeze we all voiced the same experiences leading to the idea then development of Wingmates.
Foundation of Wingmates
Initial thoughts and exploration of technologies led us to a general flow for Wingmates:


We ended up using a mix of technologies that were both new and familiar to us. Bootstrap was chosen for the frontend as it allowed us to quickly put together a somewhat polished looking interface that worked well with Jinja off the bat, while have no prior experience using the framework. Of course HTML and CSS styling were fundamentally essential to our site as well for the meat and bones of the styling. JQuery was a framework used in our frontend that was “new” to us but not completely unfamiliar thanks to Holberton School’s awesome coursework. We use it to simplify event handling with our backend, which is made of of Python and Django. While we currently don’t have a database for our purposes, we chose Django, a completely new framework, both to learn something new that is used in the industry and to simplify HTTP responses. One could say using this on top of Python was our core technology, as Wingmates currently revolves around making requests to APIs and serving responses.
Wingmates currently makes use of Yelp Fusion and Google Maps API to provide a curated selection of a restaurant or location showing the open and close times, price range, telephone number, address and user ratings out of five stars. A small Google Maps square is presented next to the result showing its location to nearby features with the ability to zoom in and out. More precisely we query fifty results from Yelps API and filter out those that are under four stars and randomly choose a result to return. We pull out the before mentioned information to display alongside the result. Additionally open and closing day/times for restaurants need to be converted to datetime objects in python, after pulling from Yelps API. We then convert them to strings to change military time into civilian time (if you will) before converting back to datetime objects to be displayed on our webpage. We host Wingmates through Google Cloud Platform’s compute engine due to the abundance of documentation and credits towards keeping our server online.
Technical Challenges and Advice for My Past Self
To set the stage for this project, we were given two weeks to complete a previously approved minimal viable product, or MVP, and a third week to polish the MVP or add additional features while creating a presentation for the project. With three days left until our presentation… Possibly the worst thing that could have happened, did. While we’re adding finishing touches to HTML/CSS and almost had SMS features integrated, we were all kicked off of the server. Trying to log back in resulted in a time-out. In the meantime we spun up a new virtual machine for our server and got to work since the last push was five days previous 😱. So we tightened our bootstraps and rebuilt what had been done over the past five days. As for the problem server, while various methods were used to ensure ports and SSH were still open, the cause has not yet been determined. So…
Never underestimate the stability that Git/GitHub provides, push everything! If something is not yet complete, make a new branch and still push.
Always make a script, module or the like to instantiate a server when starting fresh or for the worst case scenario; we definitely saved precious time by doing this.
Keep Calm and Talk It Out. Or be friendly with everyone. Jeremy, Russ and I had great rapport going into the project and it was a breath of fresh that even though we all were frustrated, we bounced back quick and understood our weakness to improve on.
Extra Tidbits and Such
Nick O’Keefe enjoys the outdoors almost as much as eating, when not reviewing algorithms for interviews. You can test out Wingmates by clicking here, or view the GitHub page here. You can also reach out to Nick with any questions via LinkedIn.
Stay tuned for future improvements to Wingmates like SMS reminder notifications and sorting by activity and price range. Postmortem to follow (hopefully soon!) when we solve the server issue.