The "Murder on the 2nd Floor" challenge set forth by Martello at cuHacking2020 was too cool to pass up! When deciding how we wanted to approach the design and visualization aspects of our project, we took inspiration from timelines and murder mystery games such as "Unheard".

What It Does

"Martello Murder Mapper" trawls through a JSON file and creates a MongoDB database. Clients can then query this database from the website, which presents them with a powerful and interactive visualization of every single event picked up by the sensors at the Richcraft Hotel, allowing them to parse through the data and figure out exactly what happened that fateful night. It also presents a set of suggested timestamps for events that occurred around the location of the murder, for easy detective work!

How We Built It

  • IDE: Visual Studio Code
  • Server: Node.js + Express
  • Database: MongoDB
  • Hosting Server: Heroku
  • Version Control: Git

Challenges We Faced

By far the greatest challenge of our project was trying to convey the events on top of the floor plan we were given. We knew from the start that we wanted to illuminate various rooms, doors, and access points when events were triggered at those locations. We originally thought about splitting the floor plan into multiple images, and then about creating a fine-grained grid to overlay. However, one of our team members discovered a tool called Image Map, which allowed us to overlay a series of interactive polygons. This greatly accelerated the development process and allowed us to achieve what we did.

Other Challenges

  • Setting up Node.js, npm, and MongoDB on each team member's laptop
  • Linking our purchased domain name to our Heroku server
  • Some of our team members learned a new language (JavaScript/Node.js) and version control (Git)

Our Accomplishments

  • Some of our team members learned a new language (JavaScript/Node.js) and version control (Git)
  • Learned how to highlight various parts of an image in an efficient manner
  • Implemented an algorithm to determine meaningful timestamps based off just the location of the murder
  • Built a server capable of querying a MongoDB database and serving that data to clients
  • Created a submission that completed the Martello Mystery challenge to the best of our abilities

What's Next?

As the domain of this application is quite limited in scope, there is probably not much in the future of "Martello Murder Mapper." However, the code that we wrote will always be a valuable resource when we want to implement similar projects in the future, and what we did this weekend has given us valuable experience in the full-stack development process.

Share this project: