Добавлю к советам
Николай
https://github.com/johnpapa/angular-styleguide
Советую почитать и следовать. Лучше сразу приучиться писать хорошо, чем потом переучиваться.
Ну и в целом, по архитектуре:
Надо всё делать компонентно. Каждый компонент должен быть небольшим, по максимуму реюзабельным и независимым. Компоненты в ангуляре обычно реализуются через директивы. При этом, всю логику, которая не затрагивает работу с DOM (вообще, в ангуляре следует минимизировать работу с DOM как таковую) нужно выносить в контроллер директивы. При этом, этот контроллер ничем не отличается от других контроллеров, так что при случае его можно спокойно использовать в других местах.
Контроллер при этом не должен содержать логику, всё нужно выносить в сервисы.
Так что делай 5 директив, потом вставляй их на страницу.