Just to name a few… browser compatibility, router limits, web pages timing out when there was too much going on in the background, students being confused about the instructions we were giving, and the constant possibility of a user messing something up in new and exciting ways.
Specific to myself, there were some pretty poor database relations that cost us a lot of time. I made some pretty major errors in the backend. Initially, we thought things were going to be loading very slowly because we were unaware of how SQL queries in the website worked. In an attempt to save time, I wrote a very suboptimal for-loop that tried to be all encompassing and ended up masking a lot of other problems that should have come out during testing.
Still though, we live and we learn. And believe me, I did learn a lot. I picked up a lot of front end web-development. I knew absolutely nothing about HTML, CSS, or PHP before this summer. I managed to get PHP working with SQL pretty well, to the point where I felt comfortable handling database queries and displaying them on the website.
I learned a lot about how databases work on an industrial scale. For instancing, backing things up is very important. It’s important to have working copies of everything so you can do version control if need be. Also, it’s nice to have multiple servers so if you need to do maintenance on one of them, your website will still function under the miracle of Amazon AWS. At the end of all this, I’d like to think I helped build something a little bigger than I am.