Become a Full-stack .NET Developer. (отличный видеокурс, 3 серии уроков)
Если категории независимы, и вероятнее всего будут развиваться/меняться независимо, то расположить их следует отдельно.
Но сходу сделать правильно не получится. Архитектура (то как система разбита на части, и как они между собой взаимодействуют) меняется со временем, некоторые составные компоненты разбиваются на несколько более мелких, другие наоборот объединяются (что происходит значительно реже).
Ничего страшного не будет, если сначала все будет в одном месте, т.к. непонятно что будет дальше, и все похоже, но со временем уже и требования изменятся, и более понятно будет что делать.