###### Abstract
However, in the early 2000s, RS researchers extended the research in RS to leverage contextual information in addition to the classical two-dimensional process in order to provide better-personalized recommendations to users [37]. Several works exist on context-aware recommendation system (CARS) and researchers are becoming more interested in this field since its emergence [38], but few papers can be traced that have undertaken a rigorous systematic literature review to analyze the complete CARS developmental process. To be specific, the authors of [39], proposed the architectural principles for generic context-aware recommendation systems and derived a layered framework to ease the development of CARS applications. The authors of [40] have also conducted a review of the generic context-aware recommendation systems to suggest a new classification framework. Their proposed classification was based on a five-layered architecture of context-aware systems to help researchers in extracting important lessons for the implementation of CARS systems. A number of existing context-aware systems have been surveyed in [41]. The survey outlined and explained the general processes and the design considerations in context-aware systems. While the authors of [42], examined and classified 210 RS papers into their various domain of applications and their different data mining techniques. A survey on Technology Enhanced Learning (TEL) has also been conducted in [43]. The survey identified and analyzed the contextual dimensions for the development of CARS for TEL. A general overview on RS together with collaborative filtering methods and algorithms has been detailed out in [44]. The overview provides original classifications for RS systems and identifies areas for future implementations. In addition, a review has been conducted in [45], to determine the contexts and the methods used for making recommendations in digital libraries. The authors of [46] presented a systematic literature review on CARS to identify the contextual information considered relevant by the researchers in generating context-based recommendations from 2012 to 2015. The authors of [47] have also presented a comprehensive overview of context-aware systems in a mobile environment to identify the contextual information that has been used in CARS in order to sketch the possible future directions. The review has categorized the contextual information into six main categories and asserted that accumulating too many contextual factors can negatively affect the recommendation quality and leading to scalability problems. As can be observed, each of the above research has addressed a specific aspect of the CARS process. Unlike the aforementioned works, this paper performs an integral approach to the complete CARS developmental process. By so doing, it aims to fill the gap and provide both the novice and new researchers the required background knowledge behind each process step. An in-depth review is presented on the state-of-the-art of CARS and the literature are classified based on the domain of their application, model, filter, extraction, and evaluation approaches. Then microscopic views are presented on the extracted literature by analyzing the merit and demerit of each and the evolving processes between them. In this way, the outstanding challenges are highlighted including the opportunities for future research directions. In summary, the contributions of this paper are:  
1. The previous CARS researches are categorized according to their domain of application, modeling, filtering, extraction, and evaluation approaches. 2. The review explores the different contextual information incorporated in recommender systems and our rigorous analysis has demonstrated that they could be categorized into spatial, temporal and static. 3. The review has analyzed the merit and demerit of previous CARS researches and their evolvement processes. 4. The paper also presents outstanding challenges and suggests possible opportunities for future research directions.