Neutopia is an online education and publishing platform that invites a new type of learning experience. It caters to organizations who promote their resources/courses and learners who explore the subjects that interest them. The user is enabled to find the most relevant contents and aggregate playlists of their favourite educational materials organized into specific categories such as articles, books, events, courses, videos,… websites as well as people with expertise in the fields they are into. The materials can be gathered from different sources, tagged, rated, reviewed and shared. The user can also create and manage their own influencer profile and add comments and ratings to other profiles. The contents can be added manually or embeded from YouTube, Vimeo, Amazon, SlideShare, MeetUp, EventBrite, Facebook and other integrated web services.
As regards the technologies used, the service built is based on the Spring Boot framework, which exposes a secure REST API and enables the scheduling of ML related tasks (e.g model retraining). We also used Apache Spark to ensure the option of horizontal scaling and thus fit the system up for supporting significant data volumes in the future. It is also in preparation for high loads that we built the platform using an asynchronous approach. The recommendation engine was developed with the collaborative filtering technique following the associated Spark documentation recommendations, still we adjusted the solution with some improvements to make it better fit the specific context of the project.