NUS IT · Network Automation
I helped build 3 internal platforms that automate the NUS network team's compliance, delivery and procurement work across 6 university systems, with 150+ REST endpoints and 167 backend tests.
01The problem
NUS IT's network team tracked compliance, deliveries and purchases by hand across six separate systems. There was no single view, and no single record of who changed what.
02What I did
I worked across all three platforms as an intern on the network automation team. My biggest pieces were the login and access system and the engine that keeps data in sync with the six systems.
03What made it hard
University security rules: single sign-on, rotating tokens, protection against forged requests, and access set page by page. Each of the six systems also behaves and fails differently, and the audit log had to hold up for real auditors.
04How it works
Flask back ends and React front ends over MySQL. The sync engine runs at most 8 jobs at a time, so one bad sync can only do limited damage, and operators can stop any sync mid-run.
05Other options I ruled out
Background jobs you can't cancel would have been simpler, but an operator watching a sync go wrong needs a stop button. One set of roles for the whole app would also have been simpler, but different pages needed different access.
06How I tested it
167 backend tests covering the sync engine, logins and each integration, run before every release.
07Results
All three platforms are in production and the network team uses them every day.
08A note on what's shown
The code is internal to NUS, so this page describes the design rather than showing source. Any demo uses made-up data, never real hostnames or tickets.