I made a music player for my daughters. They put a pretend cassette tape that has an RFID tag, it reads a folder number from it, and plays music from an SD card.
The DFRobot MP3 player module I used is very basic, so I had to write quite a bit of code to make it work how I liked, and it’s a bit over engineered too. I have one finite state machine that handles the player module, and another one that handles the user operation. But I’m pretty happy with the result.