/Academia-Do-Programador-2021

👨‍💻 Um sistema de Controle de Inventários em C# com serialização em JSON que permite Criar, Visualizar, Editar e Excluir Equipamentos e Chamadas de Manutenção. (Processo Seletivo da Academia do Programador 2021)

Primary LanguageC#

Introdução

O InventoryControl é um aplicativo WindowsForm desenvolvido em C# para a 2a Etapa do Processo Seletivo da Academia do Programador 2021.

Este aplicativo realiza o registro, visualização, edição e exclusão de Equipamentos e seus respectivos Chamados de Manutenção. O InventoryControl também possuí persistencia de dados através de serialização / deserialização de arquivos JSON.

O projeto foi realizado levando em consideração boas praticas de de desenvolvimento e organização, Pull Requets de outras Branchs, cartões de Issues utilizados como User Stories e um Kaban board próprio.


Screenshots - Controle de Equipamentos

  • Equipamentos Cadastrados:

    alt text

  • Adicionar novo Equipamento:

    alt text

  • Editar Equipamento existente:

    alt text

  • Excluir Equipamento existente:

    alt text


Screenshots - Controle de Chamados de Manutenção

  • Chamados de Manutenção Cadastrados:

    alt text

  • Adicionar novo Chamado de Manutenção:

    alt text

  • Editar Equipamento existente:

    alt text

  • Excluir Equipamento existente:

    alt text


Organização do Projeto

O desenvolvimento do projeto foi planejados baseado no sistema de Issues disponibilizados pelo Github, que neste projeto foram utilizados como cartões de User Stories. Certas conveções foram seguidas a risca, como por exemplo:

  • Prefixo no título: "NomeDaTarefa", seguido pelo caracter "¬" que representa a categoria geral do Issue.
  • Sufixo no título: sendo este o resto do título da Issue, com uma explicação breve do problema.
  • Critério de Aceitação: critérios claros, objetivos e sem ambiguidade para a conclusão da Issue.

alt text

Todos os Issues estão organizados em forma de Kanban no Project "Kanban - Academia Do Programador 2021" aqui deste repositório do Github. No Kaban deste projeto, existe 4 colunas:

  • To do: representa as Issues que serão feitas posteriormente, ou seja, como um "product backlog". Todos os novos Issues são enviados para esta coluna automaticamente.
  • In progress: representa as Issues que estão sendo trabalhas atualmente na sua respectiva Branch. Todos os Issues reabertos são enviados para esta coluna automaticamente.
  • Review: representa as as Issues stories que estão prontas na sua respectiva Branch e esperando review no Pull Request.
  • Done: representa as as Issues stories que estão fechadas e já na Branch "main". Todos Issues fechados são enviados para esta coluna automaticamente.

alt text

Por convenção, a maioria dos commits foram realizados em novas Branchs ao invés da Branch "main". O padrão das Branchs deste repositório se baseia em "task/" seguido pelo "NomeDaTarefa", que representa a categoria das modificações que serão realizadas nesta Branchs.

alt text

Após o desenvolvimento de todas as tarefas relevantes para uma Branch e todas as condições dos Issues estarem satisfeitas, um Pull Request que conecta com todos os Issues da categoria é aberto. Após o Merge, todos os Issues conectados ao Pull Request são fechados automaticamente. Certas conveções foram seguidas a risca, como por exemplo:

  • Prefixo no título: "NomeDaTarefa", seguido pelo caracter "¬" que representa a categoria geral do Pull Request, sendo o mesmo presente nas Issues e Branch relevante.
  • Sufixo no título: sendo este o resto do título do Pull Request, com uma explicação breve das modificações.
  • Changelog: explicação claros, objetivos e sem ambiguidade das modificações realizadas.

alt text