Skip to content

History

hemangandhi edited this page May 23, 2018 · 3 revisions

The History of LCS

In which we pay our respect to our ancestors.

The upcoming HackRU is the 15th. In fact, HackRU is the third oldest collegiate hackathon. (Or so I've been told.)

The first HackRU was in the Fall of 2011. The oldest code I could find is a tad newer, for the third HackRU. From there, every new webmaster made their own mark on HackRU until this repository.

Eventbrite RU

HackRU was first run as an eventbrite. The source code for the static site is on GitHub.

The above repo was forked and updated until 2013. For some reason, it's under USACS.

At this point, there was also a resume drop in php.

The fall 2013 site relocated yet again.

2012 Spring Code Samples

I could not find the main site, but under the HackRU organization, this very one, there were some skeletons for coding and a schedule.

This would be the second HackRU and is an idea we have yet to fully implement or update.

HackRU 2014

The first HackRU with a database is Spring 2014's. It used SQLite and PHP. It's on a personal GitHub and a version is live online.

The fall site is also up online and seems to be the same PHP code base.

RU on Rails: 2015

A Heroku-deployed rails app ran HackRU for 2015 - seemingly the Spring and the Fall.

This is the first time a clear MVC pattern can be seen. All the future HackRUs seem to have this, though may be not LCS.

Flask RU: 2016

We find Spring 2016 and Fall 2016's flask site in a personal GitHub.

This supports MLH sign-up and many of the features in LCS.

Camelot: 2017

From Spring 2017, another re-write of HackRU took over: Camelot. This moved the code to JavaScript from Flask and Python. It used express and moved HackRU off SQL and onto MongoDB. The best back-up of Camelot is archived under the frontend repo since for Fall 2017, the website was divided into a frontend and a backend. The last Camelot backend is on this GitHub and the last frontend is this commit on the frontend repo.

The last feature added here was a voting system so that organizers and directors could read applications and accept the best.

LCS: the Future?

The current code is all LCS code - so this whole wiki describes all the features (most old and a few new).

LCS is unique in that it's also run HackHERS 2018 and HackRU Spring 2018.

Hence, instead of summarizing that, I want to pick a bone: HackRU is not so complicated that we needed 4 different backends.

The Sad Story

The only re-write that was a technical necessity is perhaps the initial Ruby-on-rails or PHP one (though, arguably, in a few years, that would need a re-write as a maintainability issue). This is because MLH sign-in was needed.

This leads to a problem, specifically a flaw in the Camelot to LCS re-write. Because while the FaaS architecture may be "sexy" or whatever, it is needless work. The only reason the effort was put in was because nobody sat down and documented the shit out of their code-base. So nobody knew what to expect. Camelot could've been everything LCS is and likely more. But nothing was documented, so inheritors of the code-base were uncomfortable with it.

This needs to stop and there are two things that might do it:

  1. Documentation.
  2. Integration of underclassmen.

Though every HackRU backend has hoped to be the last, we hope the above two policies will make this be the final state of HackRU's backend.