The vault API contains all relational data about the media. It does not store the media itself
- Hasura CLI
- docker & docker-compose
- postgresql-client:13
- copy docker-compose.override.template.yml to docker-compose.override.yml
- copy .env.template to .env
- User
- Media
- Like
- Tag
- Comment
--- later
- Project
User table will store identifiable information for recognizing the user. It has a reference to liked media
The media is stored on IPFS, so it has a reference to the IPFS location Media can be formatted in multiple formats (ogg, mp3, flac for audio) Media has metadata attached to it, bpm, bitrate, etc
Likes happen on Media Make sure it's simple aggregating the amount of likes on a resource
Tags are attached on Media, in order to filter and find similar tracks, and categorize them. Tags will be part of a voting system, so they receive a weight. Every time a user tags a resource, it adds some weight to the tag. When sufficient weight is on a tag it will be visible
Comments happen on media, they optionally reference a timestamp/timespan
https://hasura.io/docs/latest/graphql/core/migrations/migrations-setup.html
- Create a migration:
hasura migrate create "init" --from-server - Apply the migration