Recent years have seen a surge of interest in community detection and a large range of algorithms have been designed and applied to this specific task. However, the vast majority of the work done in the area has been concerned with simple weighted graphs. This results in some of the real world systems being oversimplified to fit this model. In this project, I design a new community detection algorithm capable of detecting communities in multi-layer networks. Multi-layer networks are constituted of a finite set of graphs, called layers, which share the same nodes but differ in their edges. I construct a modeling approach whereby I try to approximate the network using communities. The results show that this approach can reveal multi-layer communities that would not be found using standard community detection tools.