Well MET

For a coding assessment assigned to me for a job interview, I was tasked with creating a desktop application compatible on MacOS that enables users to browse artworks at The MET.

By Lauren D. Bhagwandat

The App

Well MET is a MacOS desktop application that allows users to search and view artworks at the MET based on "classification" as defined by the MET.

Programming Technology

The tool was written in Python using PySide6, the MET REST API, and the requests library. Version control was done using Git.

Stakeholders

The intended audience for this application is the general public, particularly those interested in the Arts. It acts as a resource for individuals to browse collections at the MET, a very prominent art gallery in New York City.

Features

User Interface

The main window features a fixed search panel and two dockable panels: an Image Viewer and Artwork Details panel.

The search panel presents a line input, filters checkbox, and a tree view.

The top right panel is a graphics view for previewing artwork images.

The bottom right panel is used to display textual information regarding artwork.

The main navigation bar features a Window menu to show/hide the Image Viewer and Artwork Details panels.

Search

The current iteration of this application allows users to search for collections at the MET by their classification, as defined by the MET. For example, “Paintings,” “Etching,” “Ceramics,” and “Baskets.”

The filters section provides a checkbox that, when checked, only returns results that include images.

To execute the search, either press the Return/Enter key while the line input is in focus or LMB-click the Search button.

The tree view will list the resulting artworks, displaying their names and date created (i.e. when the piece was completed). Ten artworks will be generated at a time. More results can be generated by LMB-clicking the “Load more results” button below the view. Even though thousands of artworks may match the search criteria, a maximum of 80 results.

A single artwork can be viewed at a time be LMB-clicking the item in the results view. The user can traverse the results by using the up and down arrow keys.

Sort

Results can be sorted accordingly:

Artwork Name: Ascending order (i.e. A-Z) by LMB-clicking the “Artwork Name” header until the up arrow (^) appears on the far right of the header. Descending order (i.e. Z-A) by LMB-clicking the “Artwork Name” header until the down arrow (v) appears on the far right of the header.

Date Created: Ascending order by LMB-clicking the “Date Created” header until the up arrow (^) appears on the far right of the header. Descending order by LMB-clicking the “Date Created” header until the down arrow (v) appears on the far right of the header.

Image Viewer

If the selected artwork includes an image preview, it will automatically be displayed in the Image Viewer.

To view the full-sized image, RMB-click the image and select “Zoom In.”

To view the smaller image again, RMB-click the image and select “Zoom Out.”

Artwork Details

When a piece of artwork is selected in the search panel, the following information will automatically be displayed in the Artwork Details panel:

  1. The artwork’s title
  2. The artist’s name
  3. The date of creation
  4. The medium
  5. The dimensions
  6. The classification
  7. The credit line
  8. The accession number

UI Layout

Users can rearrange the UI by LMB-clicking the title bar of the Image Viewer or Artwork Details panel and dragging and dropping them into the top, left, bottom, or right sections of the main window. They can also be separated into floating dialogs by dragging and releasing them outside of the main window.

The Image Viewer and Artwork Details panels can be closed by either LMB-clicking their respective x button at the far left of the title header, RMB-clicking the title bar of either title header and unchecking the name of the panel the user wishes to close, or going to the Window menu and LMB-clicking to unchecking the name of the panel the user wishes to close.

The panels can be reopened by either RMB-clicking the title bar of the currently open panel (if any) and checking the name of the hidden panel, or going to the Window menu and LMB-clicking to check the name of the panel the user wishes to open.

Next Steps

Theme

I would like to style the UI for improved visual appeal. This would include icons such as an image for the program that would appear on the application item, as well as in the tray when the application is running.

Additional Header Sections

It would be great to allow for the addition or removal of more header sections in the results view so that the user is able to view more information about the listed artworks such as the artist’s name without having to select the artwork.

More Granular Searching

It would be nice to turn the search input into a combo box with an auto-completer so that it’s easier to enter a valid classification. I would also want the search to allow for any keywords for search queries beyond just classifications.

More Filter Options

I would like to add more filter options in the search panel such as combo boxes for selecting geographic location, date of creation, and department. I could also include more checkboxes to show only artworks with highlights, those on display, and/or those that are open access.

Zooming and Panning

It would be more intuitive to be able to zoom and pan within the Image Viewer through the mouse.

Additional Images

Some artworks have multiple images besides the preview image. It would be nice to allow the user to view all of the different images through the Image Viewer.

Image Download

I would like to add a button to allow for the download of an artwork’s image to save to disk.

Export

I would like to add an Export feature that exports a nicely-formatted PDF of the selected artwork’s image and details that can be saved to disk.

Settings and Configurations

I would like to implement a Settings window that provides options for the appearance of the UI such as the font size. It would also be great to save the current layout of the UI upon closing the application in a set of configurations so that the arrangement of the panels and visible header sections persist between sessions.

Resource Link

I believe it would also be useful to include the link to the artwork on the MET’s website (metmuseum.org).

Optimization

This application can be further optimized by implementing lazy loading of the results list rather than the user having to click a button to generate more results. It would also be more efficient if search results and viewed artwork images were cached so that repeated search queries aren’t computed and image loads aren’t recomputed.