MyUSI Platform

1 January 2018 Web App
Archived Latest release: 1 June 2019

A modular platform for managing the academic life of a university: a GraphQL-based, actor-oriented backend and a component-based frontend, piloted on the research service

Overview

MyUSI was a platform for managing the many concerns of a university — research grants, faculties and institutes, staff roles and affiliations, study programs — under a single architecture rather than as a collection of disconnected applications. It was deliberately built as a set of macro-modules: a core that carries the infrastructure every module needs, and modules that plug into it, so that the platform can grow one service at a time.

The first of such modules was built for USI’s research service, and it doubled as the pilot that shaped the architecture underneath it.

Architecture

The platform is split across a backend and a frontend, each organized into separate repositories along the same core/module boundary.

The backend is composed of an aggregating module that wires the dependencies together and exposes the platform’s main endpoints; a commons module holding the library components shared by all backend modules; an authentication module carrying the core identity features together with the cross-cutting domain concepts — faculties, institutes, staff roles, affiliations, and the like; and one module per domain service, the first of which implemented the whole feature set of the research service.

The frontend mirrors that structure: an aggregating module that assembles the existing modules and surfaces the backend’s main features, a commons module of shared UI components, a charting library exposing customizable and reusable visualizations, and the domain frontend for the research service.

Backend and frontend communicate over GraphQL. Inside the backend, components follow an actor-based architecture (at the time, using Akka) and interact through asynchronous messages, which keeps the modules loosely coupled and lets each of them potentially scale and fail independently.

A separate module, the research service importer, was built alongside the platform to ingest the legacy data held in spreadsheets, detect inconsistencies in it, and support the data-quality work that migration to the platform required.

Several of the modules were developed within the research service pilot, but they are not specific to it: the backend commons, the authentication module, and the frontend commons are infrastructural components of the MyUSI architecture.

Research Service Module

The research service module was fully implemented and enabled tracking of research projects and their budget.

Screenshot of the main page of the myUSI research service module, listing research projects
The main page of the research service module

The platform allowed as well visual analytics of projects over time and over university faculties and institutes.

Screenshot of the visual analytics views of the myUSI research service module
Visual analytics over the research projects data

The platform supported a mechanism of change requests that can be initiated by the project PI and reviewed by the research service, mainly to support data quality improvement.

Other Modules

We started implementing as well the teaching module, which allowed to manage bachelor and master programs, and the friction module, which supported the quality service on managing student complaints and other kind of issues. For these modules we fully modeled their domain and implemented a prototype frontend.

Projects

1 January 2018 Project Tech Lead

myUSI Research & Teaching Support Platform

Management and analytics for the University

myUSI Research & Teaching Support Platform