Opinion Mining (OM) or Sentiment Analysis (SA) can be described as the process of identifying, extracting, and categorizing viewpoints on various subjects. It falls under the domain of natural language processing (NLP) and is commonly employed to gauge public sentiment towards specific laws, policies, marketing campaigns, and more. This involves the development of methodologies to collect and analyze comments and opinions posted on social media platforms concerning legislation, regulations, and other related matters. Information extraction plays a pivotal role in this process, as it is both challenging and invaluable. Therefore, the utilization of automated opinion-mining techniques becomes imperative for extracting sentiments from various online sources. Presently, several methods are employed, including machine learning (both supervised and unsupervised), lexical-based approaches, and sentiment analysis. This study aims to comprehensively examine the methodologies employed in sentiment analysis (SA) and opinion mining (OM), two interrelated yet distinct techniques. Additionally, it delves into the domains of sentiment analysis applications and the associated challenges, building upon previous research efforts in the field. In this review paper different sentiment analysis techniques have been discussed.