Coding Experience
September 2017 - December 2018
At the start of my first year at the University of Michigan School of Information, I had never written a single line of code, nor understood what programs really did or produced. This soon changed, after taking an introduction to programming class and learning the coding language, Python. In this class, we focused on basic print statements, functions, loops, and an introduction to creating classes, Unit Testing, and using APIs in code. After enjoying the introductory class, I took my knowledge further with an intermediate programming class. It was in this course that I learned to write fully functional programs that elaborated on API use, produced a multi-table database using SQL, scraped and crawled a website to gather information, and utilized apps like Plotly, Flask, and Heroku to visualize and apply Python programming to the web.
For my final project in my intermediate programming course, I built a program that scraped and crawled the University of Michigan Museum of Art (UMMA)'s online collection of artwork, called the UMMA Exchange. This website has information about every piece of artwork in the UMMA’s collection, including each objects’s title, artist, creation date, medium, and other descriptive information about each item. My program takes a keyword from a user, and makes a search on the UMMA Exchange of that keyword. It then creates and adds information about all the artwork from that keyword search to a database using Classes. Then, using the user's prompts and SELECT statements, more information about a specified artwork is either returned to the user in the command line or terminal, or displayed on a graph using Plotly. I also wrote and implemented Unit Testing for this program, to ensure it runs as expected.
Another fundamental course in which I demonstrated my coding skills was SI 539: Design of Complex Websites. Over the course of the semester in this class, I learned the basics of HTML, CSS, and Java Script that provided me with the skill set to build my own, original, responsive website from scratch. For this project, I chose to re-design careyahnphotography.com, my photography business, Carey Ahn Photography's website. The completed site can be found here, and a brief demo of the desktop version is shown below!
In my second year, I returned to my knowledge of Python to build a site about Disney movies using the Django web framework for the class SI 664: Database Application and Design. I started the project with a model of the database I wanted to create, pictured right, cleaned the data using the Pandas library, and then wrote a SQL script to create new tables write csv files into a database. Using MySQL workbench to understand the data, the next step involved creating pages and content for the site, which I created using Django models, templates, and HTML structure. These pages pulled the information from the database to provide information about certain Disney movies and characters for the user. I also used Postman to incorporate an API that allowed a user to create, update, and delete content on the site. Finally, I styled the site using my [minimal] knowledge CSS. The GitHub repository for this project can be found here.
Finally, in SI 699: Developing Mobile Experiences, I tried my hand at mobile application development using the Ionic framework. For my final project, I teamed up with my two friends to create “Mission Ctrl” an application for space travelers to better understand the planets around them, or find supply ports to aid in their missions. Though this mobile application was built for a fictional use case, working through various design decisions to structure and display information in a useful way, both in our code and to the user in our interface, was a very valuable experience. My teammate implanted virtual reality into our mobile application so that users could view the planets around them, as demonstrated in the GIF to the left. My primary role for this project was writing code to add a functioning camera to our app so that users could add a photo to their profile or a planet’s page. I also structured our database of planets, people, and ports using Firebase. This project can also be found on GitHub.