The last post of this internship.
Time to look back on everything I’ve contributed to Punchmark.
Added functionality to automatically unsubscribe customers from Punchmark’s automates SMS messaging platform. The functionality not only had to comply with the CTIA Short Code Handbook but also required a lot of backend mapping from customer to phone number to stores involved in the subscription.
Facebook API Upgrade
Punchmark was running on v2.1 of Facebook’s API wich was set to expire this August. I worked to ensure that all calls to Facebook API across the site were ported to the newest API standard (at the time v2.6).
Created a function to strip potentially malicious text from form entries and implemented it across hundreds of files site-wide. There were several conflicts that resulted in broken pages. I learned a lot about testing and linting before pushing through the cleanup involved with this task.
Instagram API Implementation
Punchmark missed the memo about Instagram’s new API change in June of this year. As a result, all calls to Instagram’s API were failing. I created a server side (explicit) authentication flow to allow customers to authenticate their Instagram accounts. Through this process, the user grants the permissions for use to view their recent posts and we generate and store an authentication token to use when pulling their data.
API Streamlining and Caching
I created modular classes and functions for API requests across all platforms that punchmark uses (Google+, Pinterest, Facebook, Instagram, and Yelp).
Also cached results from API calls to common pages for the server to refer to in the sort term to prevent unnecessary expensive requests on each page load. In the event that the API becomes unusable, the Punchmark team can refer to the resources stored in the cache temporarily.
Lastly, this was something that I had started but was unable to finish during my time. Stuller is a jewelry vendor that provides and API for all of their products. I was working to use Stuller’s API to pull their product inventory and convert it to our own product format for use by website clients.