Repositório com solução de desafio para gerenciar listas relacionadas a realização de um amigo secreto, este projeto tem como propósito criar a formarção dos pares do amigo secreto. O desafio foi proposto durante a Academia DotNet ministrada pela Universidade Franciscana - UFN
.
Projeto Amigo Secreto - YouTube
Essa aplicação permite ao usuário:
- Cadastrar
Nome
eEmail
dos amigos que vão participar doAmigo Secreto
. - Visualizar duas listas:
amigos cadastrados
epares dos amigos
. - Gerar o sorteio aleatório dos pares dos amigos.
- Remover as listas dos amigos cadastrados e dos pares de amigos.
- Procurei adaptar o projeto Amigo Secreto Console para uso do
Windows Forms Applications
com o objeto de manter a regra de negócio anterior ajustadas com as necessidades desse projeto, nas classesPersistencia
,Comunicacao
eUtilitario
se concentram a maior parte das alterações do tipo:
- As substituições do
Console.WriteLine
porMessageBox
em alguns métodos. - A criação de novos métodos para um melhor gerenciamento das listas.
- Em alguns métodos já existentes foram necessárias implementações de trechos de código para fazer sentido com a lógica aplicada.
-
Os arquivos
amigos.csv
esecretos.csv
estão salvos no projeto na pasta padrãobin\Debug\net6.0
, optei em manter essa estrutura para futuras implementações caso seja necessário. -
Procurei manter a divisão dos nomes e emails usando
;
confome instruções na descrição do enunciado. -
Fiz a criação de pastas visando uma organização na estrutura do projeto, decidi seguir essas nomeclaturas de acordo com o que foi apresentado pelo professor em aula. As pastas representam as definições de cada uma das classes utilizadas:
- Communications: nesta pasta é armazenada a classe
Comunicacao
que possui métodos responsáveis pela regra de negócio da aplicação. - Models: essa pasta é responsável por armazenar a classe de modelo
Amigo
, o objetivo é representar a entidade Amigo. - Data: essa pasta é responsável por definir a classe que atua com a persistência de dados, foi criada a classe
Persistencia
com esse propósito. - Utils: esta pasta contem a classe
Utilitario
, o seu objetivo é definir métodos auxiliares para as validações das propriedades e outras funcionalidades.
- Na criação da interface gráfica eu procurei desenvolver algo simples e agradável para o usuário como:
- O uso de uma barra de progresso na inicialização da aplicação, eu adicionei esse componente para dar um aspecto de execução da aplicação.
- Criar o formulário de cadastro do amigo com fácil acesso.
- Adicionar as duas listas no mesmo formulário, a ideia é facilitar a visualização das listas sem que o usuário precise navegar para outra tela.
- O uso de ícones distintos para cada um do botões, o objetivo dessa abordagem foi aplicar uma visualização intuitiva para o usuário identificar cada ação deseja.
- Os formalários também receberam ícones para uma melhor organização em sua estrutura.
- O uso de
MessageBox
nas validações dos campos e nas ações de manipulação das listas:
- Nos dois campos que realizam o cadastro dos amigos existem algumas validações do tipo, digitar nome com espaçamento e sobrenome, formato de email válido, se algum desses requisitos não forem atendidos será exibida uma
MessageBox
com alguma mensagem respectiva a validação do campo. - Utilizei esse recurso na lista dos pares dos amigos secretos para exibir o conteúdo da lista, inicialmente os pares do amigo secreto não são exibidos na inicialização do projeto, é necessário cadastar amigos e solictar no botão
Gerar Amigo Secreto
e vai aparecer umaMessageBox
perguntando ao usuário se o mesmo desejar visualizar essa informação. - Para a exclusão das listas tanto a dos amigos quanto a dos pares do amigo secreto também é exibida uma
MessageBox
questionando o usuário com essa ação.
.NET 6.0
Windows Forms Applications
C#
git clone https://github.com/PauloAlves8039/academia-dotnet-desafio-amigo-secreto-wf.git