👷 Currently in research, design & prototyping phase.
MUSES.FM is a community-owned music promotion platform centered around playlists and built on DFINITY. Its purpose is to counter the extractive nature of the music promotion industry by establishing a circular economy between artists, playlist curators and playlist taggers.
Check the strategy document to know more about the vision. Check the economics document to know more about the circular economy. Join the Telegram group to follow development and community updates and getting engaged.
To get started, you might want to explore the project directory structure and install required tools:
Make sure to install the right version of the DFINITY SDK with:
DFX_VERSION=0.7.2 sh -ci "$(curl -fsSL https://sdk.dfinity.org/install.sh)"
Clone this repo:
git clone [email protected]:muses-fm/muses.git
cd muses
Once cloned, make sure to have the right version of node
installed with nvm
:
nvm use
Start a local DFNITY network (leave it running):
dfx start
And deploy the project canisters:
yarn install
dfx deploy
This command, if successful, will display the IDs of your deployed canisters:
Installing code for canister artist, with canister_id rrkah-fqaaa-aaaaa-aaaaq-cai
Installing code for canister curator, with canister_id ryjl3-tyaaa-aaaaa-aaaba-cai
Installing code for canister frontend, with canister_id r7inp-6aaaa-aaaaa-aaabq-cai
If at any point you want to start from scratch, run:
make clean
NOTE: Working with this project in your development environment will not affect any production deployment or identity tokens.
Start a local DFNITY network if it's not already running:
dfx start
Start a local redirect server, necessary to obtain OAuth tokens from Spotify (leave it running):
yarn start:redirect
Spot the frontend
canister in the output from dfx deploy
and use its ID to access the app:
http://localhost:8000/?canisterId=r7inp-6aaaa-aaaaa-aaabq-cai
If you want to have some dummy data for testing, apply the fixtures:
make fixtures
While developing, you can re-deploy the changes in your canister with:
dfx deploy <canister_alias>
To re-deploy all canisters, run instead:
dfx deploy
You can interact with the canisters' actor
s directly from the terminal with:
dfx canister call <canister_name> <function> [<argument>]
While developing, you can re-deploy your changes while preserving canister state with:
dfx build frontend
dfx canister install frontend --mode=upgrade
or simply run
yarn redeploy:frontend
which does the same thing.
For faster development cycles, you may want to work with a local dev server, disconnected from the canisters, instead. Start it with:
yarn start
And navigate to http://localhost:8080
to see your changes applied via hot reload.
To learn more before you start working with muses
, see the following documentation available online:
If the docs are not helping, these are other resources you can draw inspiration from:
If nothing helps and you are stuck, these are places you can go ask for guidance:
Replica error (code 3): IC0301: Canister ic:r7inp-6aaaa-aaaaa-aaabq-cai not found.
Start the DFX network with:
dfx start --clean
The --clean option removes checkpoints and stale state information from your project’s cache so that you can restart the Internet Computer replica and web server processes in a clean state.
To upgrade from a previous SDK version, run:
dfx upgrade
For a clean installation instead of an upgrade, run:
~/.cache/dfinity/uninstall.sh && sh -ci "$(curl -sSL https://sdk.dfinity.org/install.sh)"