Our capstone project aims to develop an accurate and versatile topic modeling system. In addition, we develop a machine learning pipeline that can automatically assign labels to new articles. The project has both unsupervised and supervised components. In the first semester we accomplished the unsupervised part, where we leverage natural language processing (NLP) techniques to assign tags to each article. In the second semester, we focused on the supervised part, where we will construct a classifier to enable automatic tag assignment on new articles.