Skip to content
live fullstack

Macquarie College ICT Platform

Internal tools for school operations — printables, forms, AI chat, and support workflows

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

  • Shared platform patterns across forms, printables, AI chat, and support tools
  • AI-powered RAG chat with inline citations and follow-up suggestions
  • Non-technical operators can update workflows without depending on ad-hoc engineering changes
  • Testing and demo infrastructure reduced regression risk across internal apps

Need a product or system like this shipped properly?

Send the product surface, workflow, bottleneck, or delivery problem. I will tell you whether it fits a focused review, bounded build, or implementation sprint.

Start a request