I made recommendation system where I show two most popular recommendation mechanisms. Content-based Filtering which use cosine similarity and Memory-based Collaborative filtering which is based on Pearson correlation coefficient. Both models now use random values generated by class Random but it can be easily connected to a real database and recommend real products.
If we use Content-based Filtering user declares what he likes in rating from 1 to 10 the algorithm calculate coisne similarity to all products, sort them and show ten products which can be the most appealing to the user.
If we use second option mechanism calculates Pearson correlation coefficient between our user and group of users from database whose rated some articles. Then calculates group of products which can be most likely recommended to our user.
This methods are used among others in Amazon. This program is based on simple inputs but it can also be developed to big application. Methods of building advanced system of recommendation are based on assumption that exist in my application.