Wikipedia Path Analyzer

Project Overview

In this Java project, I worked with with 2 team members to develop a mediator service for wikipedia, along with a server application to interface with the mediator. The mediator service included functionality to get Wikipedia pages, cache pages to minimize API calls and store history of requests. The most challenging functionality was a feature for the mediator to find the shortest path using links between two Wikipedia pages, effectively solving the Wiki Game..

Server

To implement a server for users to intergace with our mediator service, our team implemented serveral thread safe methods to account for multithreaded behaviour when multiple users try to connect to the server. This involved writing several blocking and locking functions as well as working with synchronized methods with shared memory objects.

Shortest Path Processing

To find the shortest path between two wikipedia pages, we implmented a bread first search algorithm that would query the various links present on a wikipedia page. We treated each wikipedia page as a node on a directed graph with directed edges to pages linking to the page as well as pages linked by the page.

Other Projects

Autonomous Treasure Retrieval Robot

A robot designed to navigate an obstacle course while retrieving objects for 2022 Annual Engineering Physics Robotics Competition

Learn more

UBC Sailbot - Software Engineer

As a software member of this student design team team, I am working on building an autonomous sailbot to sail from Vancouver, BC to Maui, HI.

Learn more