Person’s Museum

The “Museu da Pessoa” was a cultural initiative funded by a non-governmental organization that involved several professionals in a multidisciplinary team.

The project aimed to create an interactive website that would make all the museum’s curatorial content public, while also inviting the public to contribute with new content.”

What

were the

requirements

?

About the demands involved in this project, those that were passed on to my care were those related to the entire structure of stories, the main item of the site, and can be seen below:

  • Create the layouts corresponding to the navigation page in the story records;
  • Create the layouts to the single post_type of stories;
  • Create the layouts to the single post_type of people;
  • Create the filters mechanism for advanced content search;
  • Integrate story data from the museum’s internal curation system;

What was accomplished?

As usual, the demands directed at me are often demands that require differentiated knowledge of how WordPress works and architecture, in general. So, in addition to the whole costumer’s data loading workflow, with approvals, among other things, I highlight two items that deserve a separate description:

1- Data Integration
Initially in the project it was foreseen that the data would remain in the museum’s curation system and would be dynamically loaded, according to the client’s navigation on the website, managing and listing data and showing the content properly. However, I was able to prove to the team that this idea could not be completed on this way. The high number of records, relationships and the complex filters requirement made the user experience very slow, even in the homologation scenarios, which would certainly not deliver production scalability. To resolve this issue, I implemented a data integration that imported and managed the mirrored system’s contents data, internally in the WordPress database, allowing the entire volume of data to be immediate available for delivery. I developed and made available a package of WebHooks via API that, after the first load, allowed the WordPress database to be automatically updated with small data packages, which were triggered whenever sensitive data was modified in the system. Thus, in a few minutes the data was already available on the website.

2- Advanced filter engine
After the decision to work with the data internally in the WordPress database, respecting its standardization, it was to be expected that we would not have major problems filtering the data. However, the high number of relationships and overlapping filters quickly reached the limitation of WordPress’ internal WP_Query resurce. In order for the functionality to deliver the expected results, even with numerous selected filters, I developed an alternative path to replace the WP_Query in certain loops with complex instructions executed directly in the database, through dynamically assembled SQL instructions that, by relying on pre-processed data, could delivered results even faster.

Let's see how it turned out

this session images will open purposely in a new tab avoiding the lightbox
Scroll to Top