Um bom ponto de partida e criando os diagramas com o bom e velho UML, assim vc entende a lógica melhor do software.

"Mais importante e saber o que você quer fazer, e depois como fazer!"

Segue uma lista com algumas ferramentas que utilizo:

Fera demais os links, geralmente inicio com caneta e papel decidindo tudo o que tem que ser feito na aplicação, desde ações que o usuário tem que poder fazer a regras de negócio, depois vou pro pc e organizo tudo separando por requisitos funcionais e não funcionais, daí parto pro https://dbdiagram.io/ pra endenter melhor a estrutura do banco da aplicação, ajuda bastante pra ver se não esqueceu nada. Não sei se é a melhor forma, mas tem funcionado bem pra mim.

Cara, eu tenho um template de backend em node js, se quiser ver, segue o link:

https://github.com/JhonesJhonatas/template-backend-nodejs

Ele segue os princípios do Solid com useCase, Controllers e injeção de dependência ;D