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.

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

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.







