valinor icon indicating copy to clipboard operation
valinor copied to clipboard

concluido

Open JorgeCJ opened this issue 1 year ago • 2 comments

Envio de solução

Gostariamos de entender como você pensa e as decisões que você tomou durante o desenvolvimento, detalhe um pouco mais sobre:

Framework, linguagem e ferramentas

Para o desenvolvimento do projeto fullstack Kanban, optei por utilizar Angular no frontend e NestJS no backend. Ambos os frameworks oferecem uma arquitetura robusta, com suporte para TypeScript, o que proporciona um código mais seguro e fácil de manter. Além disso, utilizei o TypeORM como ORM para lidar com o banco de dados MySQL, o que simplifica as operações de banco de dados e permite uma fácil integração com o NestJS.

No frontend, aproveitei o Angular por sua estrutura modular, injeção de dependência e poderoso sistema de templates, o que facilita a construção de interfaces de usuário dinâmicas e responsivas. Para estilização, utilizei SASS, uma extensão do CSS que oferece recursos adicionais como variáveis, mixins e aninhamento, tornando o código mais organizado e fácil de manter.

Além disso, para garantir a qualidade do código e a integridade das funcionalidades desenvolvidas, utilizei o Jasmine como framework de teste no frontend e o Jest no backend. O Jasmine é amplamente reconhecido pela sua simplicidade e eficácia em escrever e executar testes automatizados em JavaScript e TypeScript. Com ele, pude criar testes para verificar o comportamento esperado das diferentes partes do sistema no frontend. Já o Jest, sendo uma ferramenta similar porém mais específica para testes em ambiente Node.js, foi escolhido para o backend, proporcionando uma maneira robusta de testar as APIs e serviços do NestJS. Dessa forma, garantimos a estabilidade e confiabilidade do projeto como um todo, tanto no frontend quanto no backend.

Técnologias X e Y

Optei pelo Angular em vez de outras alternativas de frontend, como React ou Vue, devido à sua estrutura robusta, que facilita a organização e manutenção do código em projetos grandes.

Para o backend, escolhi o NestJS em vez de outras opções como Express.js, devido à sua arquitetura modular baseada em classes, que facilita a organização do código e a aplicação de boas práticas de desenvolvimento.

Princípios de software

Durante o desenvolvimento, segui princípios como o DRY (Don't Repeat Yourself) e SOLID (Princípios de Responsabilidade Única, Aberto/Fechado, Substituição de Liskov, Segregação de Interface e Inversão de Dependência) para manter o código limpo, modular e de fácil manutenção.

Desafios e problemas

Um dos principais desafios que enfrentei foi a configuração e implantação da aplicação no Vercel, especialmente quanto a política de CORS. Para resolver isso, pesquisei sobre no Stack Overflow e apliquei as mudanças necessárias ao código.

Outro desafio foi a integração entre o frontend e o backend, especialmente no que diz respeito à autenticação e autorização. Para resolver esse problema, implementei um sistema de autenticação usando o AuthService do NestJS e testei a integração usando o TestingModule para garantir o funcionamento correto.

Melhorias e próximas implementações

Uma melhoria que eu consideraria é a implementação de testes de unidade e integração mais abrangentes para garantir uma cobertura completa do código e identificar possíveis falhas de forma proativa. Além disso, poderia explorar a utilização de Docker para facilitar a implantação e escala da aplicação.

Sobre você

Nasci e fui criado em São José do Rio Preto. Tenho conhecimentos em NEXTJS, REACT, CSS, HTML, PostgreSQL, MYSQL, GIT, GITHUB, TypeScript, JavaScript, dentre outras linguagens e tecnologias. Sou formado em Ciências Econômicas e atualmente estou no segundo semestre de Sistemas de Informação. Sobre experiência profissional na área, comecei meu primeiro trabalho como voluntário em desenvolvimento web fullStack no Instituto Abraçar em Outubro de 2023 no qual trabalho até hoje. Além disso, comecei a pouco mais de um mês a trabalhar como prestador de serviço para o desenvolvimento de um Software chamado Digital Delivery. Amo aprender e estou determinado a me tornar um profissional referência na área.

Outros detalhes

Para hospedagem, escolhi o Vercel devido à sua integração contínua e implantação simplificada de aplicações Angular. Além disso, utilizei o banco de dados gerenciado do Aiven para garantir alta disponibilidade e escalabilidade do sistema. Detalhe que para hospedar o Backend, também utilizei o Vercel.


Email: [email protected] Telefone: (17) 99753-9347 :)

JorgeCJ avatar Apr 21 '24 19:04 JorgeCJ

@JorgeCJ Marquei um papo com você na quarta, beleza? Enviaremos seu feedback no e-mail antes dessa data ;)

lfreneda avatar Apr 29 '24 19:04 lfreneda

@JorgeCJ Marquei um papo com você na quarta, beleza? Enviaremos seu feedback no e-mail antes dessa data ;)

Opa, perfeito, muito obrigado por avisar Luiz ^^

JorgeCJ avatar May 01 '24 01:05 JorgeCJ

Feedback enviado por e-mail :P

lfreneda avatar May 22 '24 16:05 lfreneda