Education

SMU Research Portal

Built and delivered a full-stack platform for Singapore Management University to manage academic research publications and citation records, automating file validation and submission tracking across 8 schools and notifying administrators when documents are missing.

Full Stack Engineer2-person team4 mosWeb
The Challenge

SMU administrators were tracking document submissions manually across 8 schools and multiple academic sessions with no centralized system to validate files, identify gaps, or notify the right people when submissions were incomplete. As the volume of publication and citation records grew, the manual process became unreliable and difficult to scale across schools and stations.

As publication records grew, administrators had no reliable way to know which files were missing without checking manually across every school and station.

What I Did

Led frontend implementation and backend development using Strapi CMS, covering content APIs, scheduled integration pipelines, document validation, automated notifications, and deployment across testing and production environments.

Built file management dashboard

Built a file management dashboard using Next.js showing academic file submission data across schools and stations, with bulk ZIP download support for administrators to export multiple documents at once.

Built backend APIs and content management

Built and configured Strapi CMS as the backend layer, handling content APIs for publication records, file metadata, school and station data, and user management consumed by the frontend.

Implemented scheduled integration pipelines

Implemented scheduled jobs in Strapi CMS that cross-referenced academic CSV records against PDF files in VM directories, uploaded documents to AWS S3, and detected missing records across ~14.8K publications and ~363K citation records.

Built automated integration result notifications

Implemented email notification workflows that ran after each integration job, sending each administrator a report of whether their assigned schools and stations had missing files or completed integration successfully.

Resolved large document download reliability

Reworked the document export process using streaming to prevent browser timeouts and memory issues when downloading large PDF and ZIP files.

Owned deployment and operational setup

Configured Docker, Nginx, and GitHub Actions pipelines across testing and production environments on AWS EC2, and wrote technical documentation covering deployment steps and system configuration for the client team to maintain the platform after handover.

Results

~14.8K

Publications Managed

Publication records managed through the platform

~363K

Citation Records

Citation and document records processed through validation workflows

8

Schools Supported

Schools using the platform for publication and file management

Automated

File Validation

Missing file checks handled automatically through CSV validation workflows

Visuals
What I Learned
  • 1

    Automated notifications change how quickly problems get resolved. Sending email reports after each integration run meant administrators found and fixed missing files the same day rather than catching them weeks later during manual checks.

  • 2

    Streaming should be planned early for large file downloads. Loading large files into memory worked in development but caused timeouts in production, which showed that the download approach needs to be decided at the architecture stage.

  • 3

    Centralizing the integration pipeline simplifies long-term ownership. Keeping validation, file uploads, and notifications inside one system meant failures were easier to trace and the client team could take over without needing to understand multiple services.

  • 4

    Designing for the user question, not the integration process. Administrators needed to know what was missing and where, not how the integration worked, so building the dashboard around that single question made it more useful than a generic data view.