Skip to main content

Project Synopsis

Summary of Spirits in the Gardens

Every year around Halloween at Iowa State, Reiman Gardens has an event called Spirits in the Gardens where they use detailed stencils to carve over 1000 pumpkins and place them around the Garden. At night, each pumpkin is lit up and the public can walk through and see this amazing sight.

What we are doing

Before the pumpkin can be placed, there is a process that occurs:

1. Stencil is printed
2. Stencil is cut out to be placed on the pumpkin
3. Stencil is traced onto the pumpkin
4. The pumpkin itself is carved
5. The pumpkin is placed in the garden.

In order for this event to occur and run smoothly, the Garden must maintain organized storage of all these stencils and where each stencil is in the process. This is where our team steps in.

How it was handled previously

Originally, the stencil images were stored in a SharePoint drive and the text information was stored in an excel spreadsheet. These are two separate locations that have to be updated for each stencil. 

Frontend

We are making a React website that will allow admins to upload and manage stencils for the event as well as keep track of where they are in the process each year. This will allow everything to be handled in one place so it's much easier than the original process. 

Backend

We are storing the stencil images in an AWS S3 bucket and storing the text information in a SQL server hosted on an AWS EC2 instance. The S3 bucket is an easy place to store the files and the SQL server allows us to easily add, modify and pull information relating to a stencil. 

Communication between frontend and backend

For uploading the stencil images to S3, we can do that directly with a single link so it is relatively easy. For uploading the text information to be stored on the SQL server, we upload an JSON packet to AWS API Gateway. Once the API Gateway receives the packet, an AWS Lambda function will trigger and forward that file to the EC2 instance where it can be uploaded to the SQL server. 

When pulling a stencil, we send a packet that tells what is needed. This can be one stencil or a whole group of stencils in a particular category. A response packet is received from the EC2 instance with the information of all necessary stencils and then the frontend can directly pull the images for all stencils that are needed. 

Pumpkin recognition 

We are also working on making a sort of "pumpkin recognition" that works like facial recognition, but for the carved pumpkins. This is for the public so anyone can take a picture of a pumpkin and it will tell you what stencil was used. This will be done using AWS Sagemaker. 

Project resources

  • JavaScript
  • TypeScript 
  • React
  • AWS S3
  • AWS EC2
  • AWS API Gateway
  • AWS Sagemaker
  • AWS Lambda 
  • AWS VPC
  • AWS CloudWatch

Team Management Resources

  • Discord
  • GitLab