Inspiration

Heroku, Dais, Docker Machine, and other platform as a service providers.

What it does

A user is able to fill out a form including title, author, and description fields, and attaches a zip file containing their project repository. The project is then deployed via Docker containers, and displayed in a project list. Users are then able to look through this project list, click on a link, and view their respective project, hosted by our app. This would be beneficial for organizations schools wishing to showcase their students' work.

How we built it

We take zip files uploaded by our users, and then we unzip them, build a Docker image for them, and deploy the Docker container to the cloud.

Challenges we ran into

The Docker Golang bindings were super challenging. Port publishing was nontrivial, as was adding a dynamic hostname lookup as users uploaded their projects. Most of our team was largely unfamiliar with the Go backend, so it took a large effort for the team to become familiar. Time was spent guiding and educating the team, to ensure that not only did we know what was working, for the large part we knew how things were working as well.

Accomplishments that we're proud of

We are proud of being able to bring this together for the most part, overnight. About six hours ago, we weren't quite sure how we were going finish. Being able to combine the complexity of the backend with that of the front end was difficult, but worth the effort.

What we learned

The three of us that had never worked in Go before learned all about how Go serves static files, bringing together both the front end and backend. We also learned more about how to go about using Docker in conjunction with Go.

What's next for HackSpot

We would like to be able to allow multiple users to have their own profiles, able to submit their projects as an organization. We would also like to enhance the visual features of the site, specifically integrating the project list with thumbnail-style snapshots to give a preview of the page.

Built With

Share this project:
×

Updates