valinor icon indicating copy to clipboard operation
valinor copied to clipboard

Kanban, projeto realizado por Lucas Abdouni

Open lucasabdouni opened this issue 1 year ago • 0 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 da aplicação utilizei as seguintes linguagens e ferramentas:

Frontend:

  • Angular v15
  • Prime Icons
  • PrimeNg (Somente modal)
  • Apollo
  • Cypress
  • Jasmine

Backend:

  • NestJs
  • TypeORM
  • Docker
  • Postgress
  • Jest

Técnologias X e Y

Justifique porque você optou pela tecnologia X e não a Y?

Optei por utilizar no backend e no frontend as tecnologias propostas para a realização do teste. No desenvolvimento do backend, construí a API em GraphQL para proporcionar um diferencial. Utilizei o Docker para executar o banco de dados e optei pelo PostgreSQL devido à sua facilidade de uso. Para realizar as requisições no banco de dados, utilizei o método ORM com a biblioteca TypeORM. Já no frontend, escolhi usar a versão 15, pois era a qual eu estava mais familiarizado em meus estudos. Para requisições no GraphQL, utilizei o Apollo, e para testes de E2E, optei pelo Cypress. Nos testes unitários, utilizei o Jasmine, pois já estava configurado nessa versão do Angular.

Princípios de software

Quais princípios da engenharia de software que você usou?

Durante o desenvolvimento, busquei aplicar os princípios de design orientado a objetos, como encapsulamento, herança e polimorfismo, para modelar o sistema de forma mais modular e flexível. Além disso, adotei o princípio da modularidade, dividindo o sistema em módulos independentes e coesos. Isso facilitou a manutenção e a escalabilidade do código. Também priorizei a reutilização de componentes existentes sempre que possível, em vez de reescrever funcionalidades semelhantes, promovendo a eficiência e a consistência do desenvolvimento.

Desafios e problemas

Conte um pouco sobre os desafios e problemas que você enfrentou e como você resolveu.

Construir esta aplicação foi um grande desafio para mim. Foi a primeira vez que utilizei o NestJS para desenvolver um backend e o GraphQL como método de entrega e interação de requisições pelo frontend, utilizando o Apollo. Para aprender e executar o desenvolvimento, tive que realizar diversas pesquisas, assistir a vários vídeos e consultar documentações extensivamente. Durante o processo de desenvolvimento, enfrentei horas lidando com bugs, erros e procurando a melhor forma de aplicar e criar código. A parte de teste também foi desafiadora. Apesar de ter estudado testes anteriormente, ainda não havia adquirido muita prática na aplicação de testes reais. Aprender o que deveria ser testado e como fazê-lo foi uma jornada custosa, mas valiosa.

Melhorias e próximas implementações

O que você entende que pode ser melhorado e como isso pode ser feito?

A adição de login social e a funcionalidade de criar e gerenciar quadros individuais são ótimas ideias para melhorar a aplicação e oferecer uma experiência mais personalizada aos usuários. Aqui está uma proposta de como você poderia implementar essas funcionalidades:

  • Login Social:

Integre serviços de autenticação social, como Google, Facebook ou GitHub, para permitir que os usuários façam login na aplicação usando suas credenciais existentes nessas plataformas. Ao fazer login pela primeira vez, os usuários podem ser solicitados a fornecer permissões específicas para acessar determinadas funcionalidades da aplicação, conforme necessário.

  • Quadros Individuais:

Adicione a opção para os usuários criarem seus próprios quadros separados, onde possam gerenciar suas tarefas de forma independente. Implemente um sistema de permissões para os quadros, permitindo que os usuários convidem outros membros para colaborar em seus quadros individuais, se desejarem. Forneça ferramentas de personalização para os quadros, como a capacidade de adicionar listas, cartões e etiquetas personalizadas para organizar as tarefas de acordo com as preferências de cada usuário.

  • Gerenciamento de Vários Quadros:

Permita que os usuários criem e alternem entre vários quadros para organizar diferentes projetos ou equipes de trabalho. Implemente recursos de compartilhamento que permitam que os usuários compartilhem seus quadros com outros membros da equipe, facilitando a colaboração em projetos conjuntos.

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ê?

Olá, meu nome é Lucas Abdouni sou e casado e tenho 26 anos, sou nascido na cidade de Volta Redonda e no Estado do Rio de Janeiro, sou formado em Técnico em Eletromâcanica graduado em Sistema de Informação pelo UNIFOA (Conclusão Dez/2022), como Técnico de Eletrica trabalhei na Empresa CSN, e atualmente trabalho como Elétricista na empresa Incoflandres Cinbal, infelizmente por questões salariais nao pude deixar o emprego para fazer um estagio fixo na aréa de desenvolvimento de software pois tenho gastos familiares e pagava minha faculdade, meu estagio realizei as horas necessarias no setor de TI da minha atual empresa, lá tive oportunidade de preencher o cargo de desenvolvedor para trabalhar na construção da intranet interna da empresa, porem infelizmente não pude ocupar o cargo devido a diferença salarial que não permitia a mudança de função, meu envolvimento na area foi assim: sempre fui vidrado em computador e em jogos, quando adolecente fazia trabalhos no photoshop para igreja e vendas para alguns comercios locais nessa epoca ja olhava algumas coisas de html, então quando procurei um curso de graduação me interessei pelo Sistema de Informação, comecei a faculdade aprendendo o basico conhecido como portugol e aplicando em C++, foi no periodo que meus olhos brilharam quando começou a materia de Desenvolvimento Web onde tive contato pelo primeira vez ali eu tive certeza que essa area do desenvolvimento, sentia felicidade era para mim e então comecei meus estudos, conheci a rocketseat onde pude focar meus estudos em desenvolvimento, estudar programação se tornou prazeroso e empolgante poder criar coisas e ver elas funcionando, atualmente busco mudar de area na profissão e minha primeira oportunidade como desenvolvedor para poder aprender mais e botar em pratica todos os conhecimentos que obtidos.

Outros detalhes

Se quiser enviar alguma informação adicional sobre o desafio..

Fiz projeto fora do clone do valinor tive problemas para adicionar o projeto dentro da branch e manter os historicos de commits, por isso criei dois repositorios separados em meu github para terem acesso ao historico de commit do desenvolvimento:

Frontend Backend

Desde já agradeço a oportunidade da realização do teste, fico muito honrado em conseguir entregar e todo conhecimento obtido durante o desenvolvimento já valeu a pena.


Ah, deixe seu e-mail ou telefone para entrarmos em contato com você :)

email: [email protected] telefone: (24)999044852

lucasabdouni avatar Mar 17 '24 17:03 lucasabdouni