Нет универсального подхода.
Структурировать проект нужно так как удобно лично Вам.
Но что бы понять как это "удобно" и при этом не запороть проект я придерживаюсь некоторых идей, описанных в статьях:
ПерваяВторая
В итоге получается что то похожее на ответ
nakree.
Несколько месяцев ушло что бы прийти к такой архитектуре.