Skip to content
CK/SYSTEMS
live fullstack

Macquarie College ICT Platform

Internal tools monorepo powering school operations — printables, forms, AI chat, visit tracking, and more

Role

Lead Developer

Timeframe

2024 - Present

Stack

Next.js React TypeScript Payload CMS Prisma OpenAI Puck Editor Playwright Tailwind CSS

Overview

A pnpm monorepo housing all internal ICT tools for Macquarie College. Each app serves a distinct operational need — from generating printable posters to AI-assisted tech support — while sharing a common design system and utility packages.

Shared Packages

The monorepo includes 13 shared packages, grouped by concern:

UI & Design System

  • mc-ui — Shared component library providing form fields (text, select, date pickers), layout primitives, data display components, and feedback elements used across all apps
  • mc-canvas-editor — Canvas and Puck editor integration layer that wraps the Puck visual editor with app-specific configuration and block registration

Auth & Access Control

  • mc-rbac — Role-based access control with framework-specific adapters for NextAuth, Astro, and Payload CMS. Each adapter exposes middleware, session converters, and permission checkers so apps can enforce the same role hierarchy regardless of framework
  • mc-google-auth — Google OAuth integration providing login flows and session management for staff-facing apps

Content & Storage

  • mc-print — Print block definitions, printable instance logic, and Puck data utilities shared by Printables Studio and any future print-enabled app
  • mc-email — Transactional email templates built on Resend, used by Misadventure Portal for request notifications
  • mc-storage — File storage abstraction for uploads (Vercel Blob, local filesystem) with a consistent API across apps
  • mc-docs — Internal documentation content (100+ articles) consumed by both the Docs app and the RAG Chat retrieval pipeline
  • mc-jamf — Jamf MDM integration for querying device inventory and management status

Developer Tooling

  • mc-config — Shared ESLint, TypeScript, and build configuration presets
  • mc-types — Cross-package TypeScript type definitions for domain entities and API contracts
  • mc-utils — Common utility functions (date formatting, string helpers, validation)
  • mc-interactive-components — Reusable step and wizard components consumed by Interactive Guides

Cross-Cutting Patterns

  • Domain-Driven Design — Visit Tracking and Device Loans use explicit domain layers (/domain, /infrastructure, /application) with entities, value objects, and services separated from framework code
  • RBAC Adapter Patternmc-rbac defines roles and permissions once, then adapts them to NextAuth session callbacks, Astro middleware, and Payload access control functions
  • Mutation Testing — Stryker configs in Visit Tracking, Device Loans, Student Forms, and mc-print enforce mutation score thresholds (up to 100% on critical domain logic)
  • E2E Testing — Playwright suites across apps with demo recording infrastructure that generates the video walkthroughs shown on sub-project pages
  • Lighthouse CI — Performance and accessibility checks integrated into CI for Visit Tracking and other apps

Architecture

MacquarieCollege/
├── apps/
│   ├── printables/          # Puck-based document studio
│   ├── student-forms/       # Form builder + submission portal
│   ├── rag-chat/            # AI tech support chat
│   ├── ict-portal/          # Payload CMS admin hub
│   ├── interactive-guides/  # Step-by-step setup wizards
│   ├── visit-tracking/      # ICT support visit logs
│   ├── device-loans/        # Laptop loan management
│   └── misadventure/        # Extension request portal
├── packages/
│   ├── mc-ui/               # Shared component library
│   ├── mc-rbac/             # Role-based access control
│   ├── mc-google-auth/      # Google OAuth
│   ├── mc-print/            # Print/PDF utilities
│   └── ...                  # 9 more shared packages
└── pnpm-workspace.yaml

Outcomes

  • 8 production apps in a single monorepo
  • 13 shared packages (UI, auth, RBAC, printing, email, storage)
  • AI-powered RAG chat with inline citations and follow-up suggestions
  • Playwright demo recording infrastructure for portfolio showcases

Need a workflow like this shipped properly?

Send the workflow, bottleneck, or delivery problem. I will tell you whether it fits a governed workflow audit, starter build, or implementation sprint.

Request consulting
Newsletter

Short notes on building AI agents in production.

One email when something worth sharing ships. No fluff, no daily cadence, no recycled growth-thread noise.

Primary use: consulting updates, governed AI workflow lessons, and major project writeups.