One project. Two teams. Eight interns. Their mission? To complete the project set before them in four sprints of three weeks each.

With plenty of resources surrounding them, and the best work environment around, it’s time for the interns to step up to the task and create Workshop.

The team uses Github as a tool to collaborate on the project while tracking individual changes. Interns Sam Carlson, Graham Goudeau, and Riley Stewart comprise the back end team, working with the service components. Interns Chris Hooks, Rachel Armstrong , Brittany Roth, and Bridget Johnson make up our front end team, creating the User Interface (UI). Our eighth intern, Celeste Grubb, is responsible for making sure these teams stay on task while working together, as well as keeping everyone else up-to-date by blogging about all that goes on.

Each team works together to create their side of the project, and compiles their work, making sure both ends are communicating and working in sync together. The back end mainly uses Java as the primary coding language to develop the LRS and components of Workshop, with MySQL providing the database. Many high-demand, reliable pieces of software running on server backends are written in Java. Team leader Riley Stewart noted that “it (Java) is the best language for that job, in that it creates a good, steady, reliable programs, and it’s good for building a RESTful service.”

The front end of the team is building a single-page application using AngularJS and Bootstrap. They have split into two smaller teams to build the UI:  Broth and Rachel working together and Bridget and Chris working together. Broth and Rachel design the site’s physical look and set up using Bootstrap, while Chris and Bridget use AngularJS, a javascript framework, to build the site’s dynamic components. It wasn’t a language they were originally familiar with, but Chris and Bridget took the time to learn AngularJS through hours of study on CodeAcademy and StackOverflow.

The decision to use AngularJS was made well before the interns arrived at Rustici, due to its good code structure and clean integration with the backend. Each team plays a role in creating Workshop. The back end creates the behind the scenes routing that allows Workshop to be a virtual workshop for Tin Can, while the front end creates what the customer sees and associates as Workshop.

There are multiple people at Rustici that helped plan and start this project before the interns arrived for the summer. The basic setup was laid out so the interns would have an easier time getting into the project, allowing them to focus on creating the project rather than being burdened by setting everything up. There are often problems in the developer’s environment when creating a new product, particularly bugs that can’t be found until the code is pushed to the production environment. Last year’s interns faced numerous bugs and other problems in their working environment, which lead John Mensel and Brian Miller to begin working on a way to fix this issue. They created a set of common configurations they could apply to any environment, whether development or production, to make the environments as similar as possible.

To help prepare and create these improved environments, John Mensel used three products in concert: Ansible, Vagrant, and Packer. Ansible is a system that allowed them to describe Workshop’s infrastructure as code, the end result of which is that the development, quality assurance, and production environments are all built upon the same foundation. This ensures that there is minimal configuration drift when deploying code in different environments. Vagrant uses Ansible to create a virtual machine that runs the dev environments locally on the interns’ workstations. Packer takes the configurations from Ansible and builds portable images that run on Amazon Web Services. Packer allowed them to build configurations that can be used in multiple environments, and eliminate much of the manual labour that would otherwise be required to stand up QA, testing, or production environments. Packer also allows us to build OpenStack, VMWare, and a host of other image types, which allows our stack to run on almost any virtualization platform, and not just Amazon Web Services.

These were each created and setup in the environments before the interns arrived. These precautions got rid of bugs and eliminated a considerable amount of steps, allowing the interns to focus on writing a great application rather than working on the particulars of its infrastructure.

With these tools and resources, these gifted interns already have a head start on creating Workshop. With the help of Brian Miller to guide them through the project, and tools to help create and communicate, these interns are moving forward steadily and surely. Their skill in design and development will be heavily tested as they work hard in creating this web-application, but they have a plan, a plan to conquer and create Workshop.