Hero banner

Vaultbot-lite

View on GitHub
#go#neo4j#mongodb#docker

Overview

Vaultbot-lite is a rework of the original Vaultbot application that is designed to be self-hosted. While the original version of Vaultbot was composed of the Discord bot, the web dashboard, and the API, Vaultbot-lite is only the Discord bot, along with some backend reworks. While the original application was supported by a single PostgreSQL database, I was always fascinated by the hierarchical nature of the underlying song data, leading me to explore the idea of using a graph database. Given the relationships between songs, artists, albums, and genres, I believe that using Neo4j will allow for all sorts of new insights into the data.

Technologies

Neo4j is used to track the unique songs, artists, albums, and genres added to the playlist. The relationship between users and songs is stored in a MongoDB database, which is better suited for the more time-series nature of the data. The bot is written in Go. I am using Gocron to handle the purging the playlist of songs older than two weeks. The entire stack is Dockerized and can be deployed using Docker Compose.