Museum Finder


This tutorial will help you build a museum finder application that lists museums in the USA, based on certain criteria that the users choose.

The application fetches information from public datasets hosted by Catalyst that contain records of ratings and traveller type suitability of museums from various websites. The application processes these in parallel and emails the results to the user.

The application’s workflow is automated using a Catalyst Circuit, which orchestrates and executes each task to be carried out automatically. Refer to the Circuits help page for detailed help on Circuits.

The client application will look like this:


You can access a working application and test its functioning here:

Note: Please check the Spam folder of your email in case you did not receive the email in the Inbox.

The Museum Finder application contains the following fundamental Catalyst components:

  • Basic I/O Functions: Contains the following Basic I/O functions in the Java platform:
    • RatingProcessor: Processes the rating input provided by the user and selects museums that fulfil the criteria
    • TravellerTypeRatingProcessor: Processes the traveller type input provided by the user and selects museums that fulfil the criteria
    • MergeDataSet: Merges the results obtained from RatingProcessor and TravellerTypeRatingProcessor
    • Mailer: Emails the results to the user
  • Advanced I/O Function: An Advanced I/O function in the Node.js platform that automatically triggers the circuit to execute when the user submits the input form
  • Client: The front end of the application that is hosted on Catalyst through web client hosting

The Museum Finder application uses the following Catalyst feature:

  • Circuit: Automates the entire workflow

We will use the Catalyst web console and the Catalyst Command Line Interface (CLI) to build this application.

You will be given the code for the files to be included in the function and client components in this tutorial. You will just need to copy the provided code and paste it into the appropriate files as directed.

Application Architecture

  • When the user gives an input choosing the museum rating and traveller type suitability they require, the RatingProcessor and TravellerTypeRatingProcessor functions fetch two independent public datasets that contain records of ratings and traveller type of museums.
  • Both functions are processed in parallel, and results matching the criteria requested by the user are selected from both the datasets.
  • The results from RatingProcessor and TravellerTypeRatingProcessor functions are sent to the MergeDataSet function which selects the museums that are present in both the function’s results and merges them as one result.
  • This result is passed on to the Mailer function which sends the email to the user with the final museum list.
  • This entire workflow is automated by a circuit that we will configure in this application. After the user submits the input, the circuit automatically executes the functions, processes conditions, and generates results as depicted below:

Last Updated 2023-09-05 20:06:31 +0530 +0530

Min Time to Complete:

50 mins

Difficulty Level:



Serverless Cloud Scale


Functions Web Client Circuits