Architectural Decision Records (ADRs)

ADR 1: The Thick-Client Serverless Model

Context: The IT Department required a robust website to serve PDFs, manage event galleries, and offer a certificate lookup system. However, the department operates with a strict $0 cloud infrastructure budget.

Decision: Instead of a traditional LAMP stack, Node.js backend, or relying on AWS/Heroku, we decided to offload all computational logic and database querying to the user’s browser.

Consequences:


ADR 2: Google Drive as a Headless CMS

Context: GitHub Repositories have a strict 1GB size limit. We could not store gigabytes of academic PDFs or high-resolution gallery images locally in the repository.

Decision: We utilize Google Drive as our file storage and database. Faculty upload documents directly via the Google Drive UI on their phones or laptops. The website uses the Drive API v3 to dynamically render those folders into web interfaces.

Consequences:


ADR 3: Vanilla JavaScript & CSS over Modern Frameworks (React/Tailwind)

Context: The repository will be handed down to 1st and 2nd-year diploma students annually. Introducing complex build tools (Webpack, Vite) or steep learning curves (React, Vue, Tailwind CSS) would severely hinder maintainability.

Decision: We exclusively use Vanilla ES6+ JavaScript, Vanilla CSS, and standard Bootstrap 5 classes via CDN.

Consequences: