Indesign Media runs several awards throughout the year for different markets in the Design and Architecture space. When I joined Indesign they were using a basic ruby application that had been cloned several times to serve the different requirements of the various awards and events the company ran. When I joined, no one left in the company had any experience with ruby, or the inner workings of the codebase, making any modifications to the code difficult.
The differing requirements of the various awards led to a situation where the development team was maintaining several slightly different versions of the same old codebase, with inconsistent bugs and functionality between them.
After going through a new event launch with the existing infrastructure, I began drafting the required features for a new platform to cover all internal business requirements while leaving the path open for a future opening of the platform to third parties. All existing providers of competition-management platforms were very expensive and provided many features that Indesign did not need.
This draft evolved into a full technical specification detailing the list of features, architecture, recommended technology choices, and planned phases of development. This was shared with the other members of the development team for feedback and then passed on to the management and event stakeholders for approval.
With approval, the project began the initial phase of development: getting the project up to the requirements to replace the existing platform in time before the launch of an upcoming event.
PostgreSQL was used as the database, and Redis for session storage to make possible future load-balancing easier. The Knex.js library was used for querying the database and managing database migrations.
The complex user interface components use Vue.js to manage the UI state seamlessly for the user.
Awardstack is hosted on an Amazon AWS EC2 instance behind an Nginx reverse proxy to more performantly serve static assets and manage the TLS certificates.