Desafio Kanban Field Control - Estágio
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
Descreva ferramentas e bibliotecas (libraries, framework, tools etc) você usou.
Utilizei Angular 18 para o frontend, Tailwind CSS para estilização, FontAwesome para ícones, Notion para organização pessoal, Angular CDK para funcionalidade de drag and drop, e NestJS para o backend REST.
Técnologias X e Y
Justifique porque você optou pela tecnologia X e não a Y?
Optei por utilizar o Angular CDK para drag and drop devido à sua integração nativa com o Angular e sua robustez em oferecer funcionalidades avançadas de arrastar e soltar, o que era essencial para a interatividade do quadro Kanban. Além disso, o NestJS foi escolhido devido à sua estrutura modular e à facilidade de desenvolvimento de APIs RESTful, proporcionando uma arquitetura clara e escalável para o backend.
Princípios de software
Quais princípios da engenharia de software que você usou?
No desenvolvimento, segui o padrão MVC (Model-View-Controller) para separação clara de responsabilidades entre o frontend e o backend. Além disso, adotei o estilo de arquitetura API REST para comunicação entre o frontend e o backend, garantindo interoperabilidade e manutenibilidade do sistema.
Desafios e problemas
Conte um pouco sobre os desafios e problemas que você enfrentou e como você resolveu.
Enfrentei desafios significativos com a implementação do drag and drop usando Angular CDK. Após revisar a documentação detalhadamente e experimentar diferentes abordagens, consegui superar essas dificuldades, garantindo uma experiência de usuário fluida e intuitiva no quadro Kanban. Também tive inicialmente dificuldades com a configuração correta de inputs e outputs de eventos no Angular, mas ao investigar os erros retornados e abordar cada problema passo a passo, pude resolver essas questões de forma eficaz.
Melhorias e próximas implementações
O que você entende que pode ser melhorado e como isso pode ser feito?
Identifiquei oportunidades para melhorar o aplicativo implementando múltiplos boards para o Kanban, permitindo aos usuários organizar diferentes projetos ou fluxos de trabalho separadamente. Além disso, a implementação de funcionalidades de ordenação de tarefas e colunas, juntamente com a capacidade de filtrar tarefas com base em tags específicas, poderia significativamente enriquecer a usabilidade e a flexibilidade do sistema.
Vídeo de apresentação
Grave um vídeo do seu projeto rodando e envie o link:
https://jam.dev/c/845e96ab-649a-4381-9d3d-9af8a589f497
Sobre você
Queremos te conhecer um pouco melhor, conte um pouco sobre você. Onde nasceu/De onde você é? Lugares que estudou, empresas que trabalhou, como você se envolveu com desenvolvimento de software.. enfim, Quem é você?
Sou Guilherme Carmona, nasci em São José do Rio Preto - SP e estudei no SESI Yolanda C. Bassitt até o ensino médio, onde desenvolvi interesse por tecnologia através de aulas de robótica e programação. Participei de uma equipe de robótica que competiu na Olimpíada Brasileira de Robótica, o que despertou meu interesse pelo desenvolvimento de software. Ingressei na Fatec Rio Preto e comecei um estágio em desenvolvimento em C#. Mas sempre fui atraído pelo universo do JavaScript, o que me levou a tentar ingressar na Field Control pela primeira vez. Agora, estou na minha segunda tentativa para a vaga de desenvolvedor na Field Control, motivado a contribuir com minha paixão pelo desenvolvimento de software.
Outros detalhes
Durante este desafio, tive a oportunidade de explorar novos conceitos, especialmente na área de backend, na qual descobri um interesse renovado. Aprendi muito ao enfrentar desafios técnicos e estou entusiasmado com a perspectiva de expandir ainda mais meu conhecimento e habilidades nesta área.
Se quiser enviar alguma informação adicional sobre o desafio..
Estou ciente de que durante o desafio podem surgir alguns ajustes e refinamentos, como em qualquer projeto em desenvolvimento. Estou comprometido em aprender continuamente e estou animado com a oportunidade de trabalhar em equipe para resolver desafios e melhorar minhas habilidades nesta área que eu amo.
Ah, deixe seu e-mail ou telefone para entrarmos em contato com você :)
[email protected] (17) 99222-5924
Oi Gui,
Marquei uma conversa com você na próxima sexta-feira para avançarmos com o seu processo.
Feedback enviado já ;)