In recent years, fake news has been surfacing in enormous numbers and spreading on the internet world for various political and commercial purposes. One major reason for that huge number is the rapid growth of social media. Online social network users can quickly get infected by falling for deceptive phrases and words which already had a huge impact on society. To combat this issue, Fact-checking, a method of evaluating the credibility of online news articles is practiced but it usually takes a longer time to process and flag fake news. By the time of completion, the news would have already reached most of the audiences. The vital goal in improving the credibility of online news is to identify fake news promptly. The core purpose of this research is to analyse, compare and evaluate the performance of multiple machine learning and deep learning algorithms for detecting fake news. The idea behind this research is to find the best performing model to identify fake news, this is achieved by building and comparing the performance of seven different models comprising five machine learning models and two deep learning models. Accuracy, recall, precision, f1score and ROC curve are calculated to evaluate the model’s performance. A web application “Fake News Detector” is also built to distinguish the fake and true news.