Nice work. Although I'd probably had used one of the newer esp32 from seeed Studio with integrated battery pads (unfortunately the BatteryPal from PNLabs is still in the making). A DFPlayer Mini might also habe saved some time...
There also is a german project called Tonuino, which is quite similar and has lots of examples and documentation - they even designed a custom PCB which unfortunately is no longer available:
https://github.com/tonuino/TonUINO-TNG
Another rasperry focussed project that has a web interface is Phoniebox:
https://phoniebox.de/index-en.html
There also is a toniebox hack, which lets you setup a self-hosted content server: