Project and file structures have been the skeleton of any codebase for decades (pun intended). Over the years some brave men (and women) have tried to formalize this subject.
They failed. Arguments are still ongoing everywhere. There’s not straightforward approach to this.
That said – there are some approaches which are WELL TESTED – which means they’re worth checking out: