Academic Programs REST API

Strategic design and implementation of an open standards based solution for the academic programs’ synchronized management.

In higher education institutions, the continuous execution of academic extension activities, continuous education programs and postgraduate studies is a fundamental part of their mission.

From short seminaries to complex masters and PhD programs, the whole academic offer of a university is vast and it is subject to constant modifications. Consequently, it is crucial that the university has a base catalogue in order to publish its endeavor.

In a decentralized organization, where faculties lead the creation initiative of diplomate programs and others alike, to have an “official” list is not enough. It is also necessary to automate and synchronize the data edition in order to always have updated information.

To face this challenge, the creation of a web service for consultation and academic programs synchronization between the Universidad del Desarrollo faculties and the corporate portal allowed us to create a centralized and always up-to-date registry of all its possibilities. This web service became a flexible, powerful tool that allows us to optimize the editorial work and promote various initiatives that benefit from its information.

Exploring a solution

There have been some attempts to solve the problem of having out-of-date information. This problem has been addressed in a fragmented way, since there were no common definitions regarding the relevant information for the entire academic offer.

Moreover, since it was addressing apparently unrelated requirements, there wasn’t a standardized technical basis but various ad-hoc methods that did not allow its reuse.

We went for a mature API, adhered to REST principles and based on open standards that would allow us to document its data and to integrally face the problem in an efficient way and with an evolutive vision.

Esquema de madurez REST de Richardson
Richardson Maturity Model (Martin Fowler)

On this basis, we determined that defining a generic type of “academic program” as an API resource would be more useful, while the “type of program” is only a distinctive property of every academic program.

The next task consisted in the identification of relevant data for every type of program. Then, we defined if filling in the data was compulsory (or optional) and the specific shape of those data. For example, a date, a simple or a rich text box, an option inside a group of alternatives, among others.

With these definitions clear, we continued with the API’s read and write methods implementation.

How we did it?

The use of the WordPress JSON REST API infrastructure made various implementation tasks easier:

  1. The registration of different routes and the associated verbs used to generate endpoints corresponding to every HTTP verb, together with a basic (but extensible) authentication and authorization system.
  2. Input and output parameter registration integrated with the JSON Schema to document and apply validation to data.
  3. Hyperlinks to facilitate the discovery, to present semantic relations and to embed other documents that complement the API information (WordPress partially implements the Hypertext Application Language standard).

The use of standards promoted by the API design allows the generation of continuously updated technical documentation using open source tools, which make communication easier with other teams that make use or want to make use of the service.

What do we use it for?

One of the most valuable and positive results has been the possibility to use the API to solve multiple challenges, which at the same nourish the development and guide the evolution of the API. The ones we highlight are:

01 Lifelong learning program browser

The Lifelong learning program browser allows us to explore and browse inside the academic offer according to types of programs (PhDs, masters, diplomates, etc.) and study areas, showing the most significant attributes of each program, the link to its corresponding site and forms that let the users send questions to the program coordinator.

The implementation consists of a vue.js javascript app that allows instant search inside every program.

02 Data synchronization

We maintain several internal WordPress plugins that allow the academic program management on diverse projects. These plugins are used as Composer dependencies.

We use the API writing and deleting endpoints to reflect the editions that the units make to the programs, with the purpose of maintaining the information updated.

The same endpoints are also used by other teams in order to feed the programs central catalogue with its own information.

03 Blocks

By the time WordPress started its most radical transformation yet through the development of the block editor (Gutenberg), we immediately bet on making true that vision of the future that allows a unique level of flexibility. Thus, the development of an own block collection became a core part of our strategic proposal.

The academic program API allows us to easily incorporate the information in multiple sites, which ensures that the data is always updated according to the current offer.

04 Landings

The academic programs API was a fundamental element which made publishing and promoting programs easier for the people interested in complementing their professional training. This was achieved through the building of multiple web sites whose purpose is to generate conversions through contactability.

Whether used to present information about particular programs or multiple programs thematically related, the possibility to rely on updated information from a single source of truth hugely simplifies the task of making the academic offer available.

In addition, thanks to different attributes of each program, it is possible to generate automatic lists on the basis of filters such as: faculties, campuses, modalities, types of programs, among others. This allows the presentation of information through flexible relations between programs that can be based on thematic affinity, the location where it’s given, study field or any other criteria available in its attributes.

You have any doubts?

Contact us

hola@bloom.lat