copaDB

CS 373 aka Software Engineering is a course taught at UT in which we group up in teams of five and create a website from the ground up. The main idea was to create a database-like website that would be used like IMDB in order to track something. My group chose to track Copa America 2015, and thus copadb.me was born.

copadb screenshot

Quick Stats:

  • When: July 2015
  • Where: UT Austin
  • How:
    • Webserver hosted on Rackspace
    • Fully Qualified Domain Name given via Namecheap
    • Backend server runs off Nginx communicating to Django via uWSGI
    • Continuous Integration hosted using TravisCI
    • REST API implemented using Django’s rest_framework app
  • Other team members:
    • Database implemented using SQLite
    • Data models created and populated via web scraping
    • Frontend implemented with JQuery/Bootstrap/AngularJS
    • Search feature implemented using watson

Since our class ended up being uneven, my team ended up being the only group of four. This ended up being one of our biggest struggles since no one in our team was familiar with the tools we were currently working with and as a result we weren’t able to make up for a lost teammate. Still, working through some nights whenever we can we were able to keep up with the rest of the class, even if it wasn’t as pretty. As the backend person most of my duties involved making sure the webserver was up and running smoothly, pulling updates from master whenever needed, permissions were set correctly, and Django could serve our HTML.

To turn in files we had to submit a GitHub url and the commit SHA. However, part of the specs required us to have our models.py as part of the top-level directory. Reading into Django, I figured this meant our GitHub repo needed to be hosting our specific app folder. Since phase one only required us to have our ideas, models, and server set we could just host static files. Once we became required to submit unit tests I quickly found that I couldn’t do that from within the app folder. In the end, I had to make another repository for the Django root directory and link our app folder as a Git subdirectory.

Written on July 26, 2015