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:
Primeiramente foquei em construir um mvp, aplicação inicial que funcionasse com as funcionalidades básicas, sem muita estilização e lógica muito complexa. Apenas utilizando memória local e arrays para armazenar as tarefas cadastradas.
O segundo passo foi fazer com que as tarefas fossem armazenadas em um arquivo json para consumí-lo via http request e simular um servidor com json-server.
Após toda a base funcionar, decidí organizar melhor os componentes e criar funções mais específicas.
A ultima coisa que a ser implementada foram os estilos e design da página.
Por fim revisei o projeto, "limpei" um pouco o código refatorando redundâncias e códigos desorganizados, e documentando todo o projeto no caminho.
Descreva ferramentas e bibliotecas (libraries, framework, tools etc) você usou.
Utilizei:
Quais princípios da engenharia de software que você usou?
Ainda que o projeto seja simples, acredito que foram utilizados princípios fundamentais da engenharia de software.
Conte um pouco sobre os desafios e problemas que você enfrentou e como você resolveu.
Este teste foi bem desafiador, pois como mencionei acima, nunca havia programado em Angular anteriormente. Por este motivo precisei aprender os conceitos básicos praticamente do zero.
Apesar da falta de experiência com o framework, acredito que o fato de possuir um solido conhecimento em lógica de programação e na linguagem JavaScript, além de já estar relativamente acostumado com o React acabou sendo de grande valia para reduzir um pouco a curva de aprendizado e tornar possível a implementação do desafio a tempo.
Percebí que Angular utiliza muitos conceitos e fundamentos se forma semelhante ao React, como o uso de componentes, a modularização, abstração e separação de responsabilidades. Porém me pareceu uma ferramenta um pouco mais complexa (e também mais completa), este desafio me introduziu ao Angular e me gerou interesse o suficiente para continuar estudando o framework.
O que você entende que pode ser melhorado e como isso pode ser feito?
Gostaria de inserir uma ordem de prioridade nas tarefas, ranquando-as e organizando em ordem de prioridade nos quadros, porém não tive tempo o suficiente para implementar esta feature.
Devido a falta de conhecimento em Node e Nest, também não conseguí criar um back-end como eu gostaria e aplicar melhor os meus conhecimentos em conceitos como banco de dados.
Em um próxima implementação criaria um banco de dados seguindo o seguinte diagrama:
Por fim, acredito que pequei um pouco na reutilização dos componentes, pois criei um componente "board" para representar os quadros, e dentro de cada quadro, seriam incluídas as tarefas que idealmente deveriam ser separadas em um outro componente componente , além do fato de ter repetido 3x o mesmo código (escrevendo o mesmo código 3x para cada quadro).
Grave um vídeo do seu projeto rodando e envie o link:
Queremos te conhecer um pouco melhor, conte um pouco sobre você.
Nascí em São José do Rio Preto, e sempre morei na cidade. Estudei quase toda a minha vida no colégio ao lado da minha casa (Colégio Universitário), e quando decidí ingressar na faculdade comecei a cursar Ciência da computação na UNIP.
Com a chegada da pandemia precisei trancar o curso, principalmente por motivos financeiros, e após quse 2 anos voltei a fazê-lo na UNIRP, onde estudo até hoje (meu último ano, se tudo der certo).
Nunca trabalhei na área de tecnologia anteriormente, mas já trabalhei no setor administrativo nas empresas HB Saúde e Pevetur Transportes e Turismo (meu último emprego) e até mesmo como representante comercial do segmento de perfumaria na empresa Martins Atacadista, uma das maiores distribuidoras da américa latina.
Há mais de um ano estou me programando para ingressar no mercado de tecnologia, preferencialmente como desenvolvedor de software/ web, mas estava encontrando dificuldades para conseguir me preparar devido o trabalho em tempo integral e faculdade a noite. Por este motivo, me planejei financeiramente e saí do meu último emprego em janeiro deste ano. Venho estudando e me aprimorando desde então e utilizo meu tempo para elaborar alguns projetos pessoais.
Minha história com desenvolvimento de software surgiu quando ainda tinha 16 anos, com a curiosidade de entender como os jogos eram criados. Ironicamente, não sou um gamer praticante nos dias atuais, há um bom tempo não jogo nenhum jogo eletrônico. Com o tempo conhecí o conceito de blockchains e me encantei completamente com a tecnologia, o que me levou a ingressar na faculdade de Ciência da computação, ainda que eu imaginasse desde o começo que no decorrer do curso encontraria uma área que me interessasse mais.
Até hoje, o segmento de blockchains continua me intrigando e sendo um dos meus assuntos preferidos na área de tecnologia, tanto que estou usando como tema para o meu TCC. Apesar disso, mudei minha ideia inicial e não penso mais em trabalhar na área pelomenos no curto e médio prazo, tendo me interessado mais pela área de desenvolvimento de software devido um mercado mais amplo e versátil, além da possibilidade de contribuir com projetos mais fatídicos.
Se quiser enviar alguma informação adicional sobre o desafio..
Gostaria de compartilhar minha gratidão pela oportunidade de participar do desafio, verdadeiramente foi uma experiência muito relevante pra mim. Sinto que melhorei muito e conseguí me desafiar e superar alguns limites para concretizar a entrega do projeto.
Informações pessoais:
Nome : Pedro Henrique Schiavetto
E-mail : [email protected]
Telefone : (17) 9 9105-6180
GitHub : github.com/skiavetto