Open
Conversation
…ation and relations
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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
🔹Frontend: Angular, TypeScript, CSS3, Node.js, npm.
🔹 Backend: NestJS, TypeScript, TypeORM, SQLite.
🔹 Outros: API REST, Arquitetura em camadas, Versionamento com Git
Justifique porque você optou pela tecnologia X e não a Y?
Angular e NestJS usei por serem especificações do teste, porém gostei bastante de usar o NestJS, organizado e parecido com o angular em sua arquitetura modular.
SQLite escolhi por ser leve e fácil de utilizar, sem precisar usar aplicações externas para criar e testar o backend, usei a extensão thunder cliente no próprio vsCode para testar os endpoints.
Princípios de software
A aplicação segue arquitetura em camadas.
Separação de responsabilidades (SRP).
Frontend
Component → Interface
Service → Comunicação HTTP
Backend
Controller → Recebe requisições
Service → Regra de negócio
Repository/ORM → Persistência no banco
Desafios e problemas
O principal desáfio foi o tempo, pois trabalho durante o dia todo e só a noite conseguia desenvolver esta aplicação, então precisei ter bastante planejamento e seguir corretamente.
Outro desafio foi alinhar Dtos para implementar regras na entrada de dados no banco, fiz para os métodos criar e editar card e coluna e ficava confuso as nomenclaturas, a solução foi padronizar interfaces TypeScript no frontend.
O maior desafio foi perceber que o drag-and-drop funcionava visualmente, mas não persistia no banco. Precisei garantir que a mudança de coluna fosse salva no backend e que o frontend sincronizasse o estado após a atualização.
Melhorias e próximas implementações
Pode ser melhorado a questão do carregamento quando é incluído um novo card ou coluna, ele não mostra na tela instantaneamente, essa questão vou continuar pesquisando para resolver. Falta ainda implementar deletar e alterar cards e colunas pela interface, preferi priorizar desenvolver a criação de cards, colunas e mover cards entre colunas pelo front, devido ao tempo.
Vídeo de apresentação
https://youtu.be/R6qYZd_12Co - Kanban básico
https://youtu.be/Y7Sm3MOROdE - Instruções para testar o back e front.
Sobre você
Nasci em São João Batista-MA, mudei para São José do Rio Preto aos 22 anos. Em 2015 conclui o curso Analise e Desenvolvimento de sistemas na Fatec Rio Preto. Desde lá já gosto bastante dessa area, de desenvolvimento e tudo que envolve tecnologia.
Porém, comecei a trabalhar com telecomunicações em 2018, primeiro como atendente e depois como monitora de equipe, cargo que exerço até o momento, quero fazer a migração de carreira e ser desenvolvedora. Estou fazendo faculdade, no curso Sistemas para internet na Unifatecie (EAD).
Ruth Lopes Diniz
Telefone: 17 992208439
Email: ruthma1964@gmail.com