My Chicago Python Mentorship Project Presentation: Django, AWS, Braintree, Twili-oh my!
Well, it’s been over three months since I embarked on the journey that is the Chicago Python Mentorship Program. I first wrote about the experience back in September. The program culminated in an evening of festivities and a series of five minute presentations by ten mentees of the Fall 2017 cohort. I was of the ten fortunate enough to be chosen to present:
So, there it is. I created a Django application that is hosted on an Amazon Web Services (AWS) Elastic Cloud Compute (EC2) instance. Speaking of AWS, the project also uses Route53 to manage DNS, AWS Certificate Manager (ACM) for an SSL certificate, and an Applciation Load Balancer (ELBv2). nginx is used as a web server and reverse-proxy while gunicorn serves as the WSGI HTTP server.
The application leverages the Braintree API to void or refund any number of transactions. Simply upload a CSV of Braintree transaction IDs. The application will generate a comprehensive CSV logging the results of the Braintree void or refund attempts. It will also send the user an SMS notification when the job is complete, courtesy of the Twilio API.
I was committed to writing the application while implementing SOLID design principles and Test Driven Development. Thanks to that commitment, I learned about functional testing and implemented Selenium Web Driver, unittest, and Django’s TestCase.
The applicaiton is getting real-world use at Braintree and my colleagues and I continue to improve and maintain it.
This has been a successful program. I accomplished nearly all my goals and even tacked on a few bonus achiements:
- a functioning, live tool that helps my friends, family, and/or colleagues accomplish a meaningful task,
- built this tool using Test Driven Development (TDD) from the outset,
- applied the concepts articulated in Practical Object-Oriented Design in Ruby,
- gained intermediate understanding of Django,
- gained practice using a webdriver like Selenium,
- practiced the agile methodology,
- used AWS (route53, ELB, EC2, S3)
and IoT (stretch), built a Progressive Web App (stretch),- BONUS: learned about and applied nginx and gunicorn
- BONUS: added Twilio
- BONUS: added HTTPS
If you have any interest at all in advancing your skills in software development while learning about Python and working with a dedicated mentor, I strongly encourage you submit an application to the Chicago Python Mentorship Program.