cobra
Song-Recommender - a naive song recommendation system built with Elixir and Neo4j
Hey everyone, hope you’re all good. I’ve been really interested in graph databases for a while now and decided to build some sort of project with the aim of improving my skills in this particular domain. After reading so many articles I saw that graph databases can be used to make product recommendations or things like that. I tried thinking about making a simple recommender system for something like Amazon products but that wasn’t that interesting to me. So I thought about making one for song recommendations (yes like Spotify). Anyway to make a really good song recommendation system, I would have to combine some ML with various other things and I wasn’t really going to become an ML engineer overnight. So I thought of something simpler. What if I could just extract relationships between various songs and artists, categorize songs into genres and track user activity to see what they were really listening to? Based on this, I could then make simple song recommendations, minimizing repeating songs while also ensuring I don’t show absolutely irrelevant songs. I happened to come across a csv file with song data of over 1 million songs which would be enough for this simple experiment ( Spotify_1Million_Tracks | Kaggle ).
To do this, I of course had to settle for a graph DB and I picked Neo4j. There happens to be tons of Bolt Elixir drivers out there, but the same isn’t quite reflected in the number of public repos that are utilizing Elixir + Neo4j(Cypher). The reason I’m posting is to probably get some views from others who have gone down the same path. How do you structure a phoenix project where you’ll primarily be interacting with a Neo4j backend? Total beginners may also benefit.
Here’s the completed project
Waiting for feedback ![]()
First Post!
cobra
I’ve written an article explaining how I tested the application:
https://medium.com/@kinyuadean/testing-a-neo4j-backed-elixir-application-with-testcontainers-76d10a0beab4
Popular in Announcing
Other popular topics
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #channels
- #elixirconf
- #exunit
- #discussion
- #code-sync
- #javascript
- #podcasts
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixir-ls
- #phoenix_html
- #iex
- #blog-post
- #graphql
- #genstage
- #ai
- #websockets
- #supervisor
- #advent-of-code
- #elixirconf-us
- #distillery
- #processes
- #forms
- #api
- #metaprogramming
- #security
- #performance









