Ao iniciar este projeto, você concorda com as diretrizes do Código de Ética e Conduta e do Manual da Pessoa Estudante da Trybe.
Você já usa o GitHub diariamente para desenvolver os exercícios, certo? Agora, para desenvolver o desafio, você deverá seguir as instruções a seguir. Fique atento a cada passo, e se tiver qualquer dúvida, nos envie por Slack! #vqv 🚀
Aqui você vai encontrar os detalhes de como estruturar o desenvolvimento do seu desafio a partir deste repositório, utilizando uma branch específica e um Pull Request para colocar seus códigos.
Esse projeto tem como intuito te treinar para ter mais familiaridade com a documentação de aplicações, por tanto, poderão haver alguns comandos ou atributos que não estão no curso, mas que devem ser descritos no decorrer dos requisitos.
Nesses casos, é importante se atentar a aquilo que o requisito pede, e lembrar sempre de utilizar a documentação oficial do Java para pesquisar detalhes sobre comandos.
Lembre-se que você pode consultar nosso conteúdo sobre Git & GitHub sempre que precisar!
- Clone o repositório
- Por exemplo:
git clone [email protected]:tryber/desafio-aceleracao.git
- Entre no diretório do repositório que você acabou de clonar:
- neste caso
cd desafio-aceleracao
- neste caso
-
Instale as dependências:
mvn install
-
Crie uma branch a partir da branch
main
- Verifique que você está na branch
main
- Exemplo:
git branch
- Exemplo:
- Se não estiver, mude para a branch
main
- Exemplo:
git checkout main
- Exemplo:
- Agora, crie uma branch onde você vai guardar os commits do seu desafio
- Você deve criar uma branch no seguinte formato:
nome-de-usuario-nome-do-desafio
- Exemplo:
git checkout -b joaozinho-acc-java-sample
- Você deve criar uma branch no seguinte formato:
- Adicione a sua branch com o novo
commit
ao repositório remoto
- Usando o exemplo anterior:
git push -u origin joaozinho-acc-java-sample
- Crie um novo
Pull Request
(PR)
- Vá até a aba de Pull Requests deste repositório no GitHub
- Clique no botão verde "New pull request"
- Clique na caixa de seleção "Compare" e escolha a sua branch com atenção
- Clique no botão verde "Create pull request"
- Adicione uma descrição para o Pull Request e clique no botão verde "Create pull request"
- Não se preocupe em preencher mais nada por enquanto!
- Volte até a página de Pull Requests do repositório e confira que o seu Pull Request está criado
-
⚠ PULL REQUESTS COM ISSUES NO CHECKSTYLE NÃO SERÃO AVALIADAS, ATENTE-SE PARA RESOLVÊ-LAS ANTES DE FINALIZAR O DESENVOLVIMENTO! ⚠
-
Faça
commits
das alterações que você fizer no código regularmente -
Lembre-se de sempre após um (ou alguns)
commits
atualizar o repositório remoto -
Os comandos que você utilizará com mais frequência são:
git status
(para verificar o que está em vermelho - fora do stage - e o que está em verde - no stage)git add
(para adicionar arquivos ao stage do Git)git commit
(para criar um commit com os arquivos que estão no stage do Git)git push -u origin nome-da-branch
(para enviar o commit para o repositório remoto na primeira vez que fizer opush
de uma nova branch)git push
(para enviar o commit para o repositório remoto após o passo anterior)
Para "entregar" seu projeto, siga os passos a seguir:
- Vá até a página DO SEU Pull Request, adicione a label de "code-review" e marque seus colegas
- No menu à direita, clique no link "Labels" e escolha a label code-review
- No menu à direita, clique no link "Assignees" e escolha o seu usuário
- No menu à direita, clique no link "Reviewers" e digite
students
, selecione o timetryber/students-sd-0x
Se ainda houver alguma dúvida sobre como entregar seu projeto, aqui tem um video explicativo.
Você trabalha em um sistema que processa inscrições de pessoas para um evento nacional. As pessoas se inscrevem por meio de uma página web. No final do período de inscrições, os dados de todos os inscritos são compilados em arquivos CSV (valores separados por vírgula, do inglês Comma-Separated Values).
Existe um subsistema responsável pelo pós-processamento das inscrições que suporta arquivos CSV. Porém a formatação das informações que esse subsistema espera receber é diferente da formatação dos arquivos gerados pela página web.
O seu objetivo é elaborar um programa em Java que seja capaz de converter os arquivos gerados pela página web para o formato requerido pelo subsistema.
Os arquivos CSV gerados pela página web estão disponíveis na pasta entradas
, estando separados por estado. Por exemplo: sp.csv
, mg.csv
, ba.csv
(não limitado a esses três!). Para cada arquivo contido na pasta entradas
, você deve criar um arquivo correspondente com o mesmo nome na pasta saidas
.
Os arquivos de entrada podem ser tratados como arquivos de texto e possuem a seguinte estrutura-padrão:
- A primeira linha é sempre um cabeçalho fixo que contém os nomes das colunas separados por vírgula:
Nome completo,Data de nascimento,Email,CPF
- Cada uma das linhas seguintes contém as informações de um inscrito, também separadas por vírgula. Exemplo:
Moacir Monforte,04/07/1986,[email protected],72614377279
São garantidas as seguintes condições a respeito dos arquivos de entrada:
- Toda data de nascimento está em formato brasileiro:
dd/mm/aaaa
- Todo email é válido
- Todo CPF é válido e composto por exatamente 11 dígitos decimais (sem ponto nem hífen)
Os nomes completos dos inscritos podem estar em letras maiúsculas, minúsculas ou meio a meio.
A formatação requerida para os arquivos de saída é a seguinte:
- O cabeçalho deve ser o mesmo dos arquivos de entrada.
- Os nomes completos dos inscritos devem ser padronizados todos em letras maiúsculas (acentos gráficos devem ser mantidos).
- As datas de nascimento devem estar no formato ISO-8601:
aaaa-mm-dd
. - Os números de CPF devem estar corretamente formatados com ponto e hífen. Exemplo:
123.456.789-09
.
As linhas dos arquivos de saída devem estar dispostas na mesma ordem que as dos arquivos de entrada.
Para o arquivo de entrada a seguir: entradas/sp.csv
Nome completo,Data de nascimento,Email,CPF
IRANI TAPEREBÁ,29/06/2001,[email protected],81627775471
catarina mafra,28/05/1991,[email protected],75157671466
bento naves,25/12/1993,[email protected],88826690685
Lurdes Neves,08/04/1985,[email protected],92277079138
Deve ser produzido o seguinte arquivo de saída: saidas/sp.csv
Nome completo,Data de nascimento,Email,CPF
IRANI TAPEREBÁ,2001-06-29,[email protected],816.277.754-71
CATARINA MAFRA,1991-05-28,[email protected],751.576.714-66
BENTO NAVES,1993-12-25,[email protected],888.266.906-85
LURDES NEVES,1985-04-08,[email protected],922.770.791-38
O seu código deve ser construído a partir da classe Conversor
abaixo:
import java.io.File;
import java.io.IOException;
public class Conversor {
public static void main(String[] args) throws IOException {
File pastaDeEntradas = new File("./entradas/");
File pastaDeSaidas = new File("./saidas/");
new Conversor().converterPasta(pastaDeEntradas, pastaDeSaidas);
}
public void converterPasta(File pastaDeEntradas, File pastaDeSaidas) throws IOException {
// TODO: Implementar.
}
}
Você pode adicionar quantos métodos e atributos auxiliares à classe Conversor
você desejar, desde que o nome da classe e a assinatura do método converterPasta
sejam preservados.
Para este desafio, você não precisa se preocupar em tratar exceções (elas serão vistas na próxima seção 😉). Ao escrever certos métodos auxiliares, pode ser que você precise adicionar throws IOException
à assinatura deles para evitar erros de compilação.
Agora é com você! O sistema de inscrições está em suas mãos, então foco na qualidade do resultado, combinado? #VQV 🚀
Ao finalizar e submeter o desafio, não se esqueça de avaliar sua experiência preenchendo o formulário. Leva menos de 3 minutos!
Link: Formulário
O avaliador automático não necessariamente avalia seu projeto na ordem em que os requisitos aparecem no readme. Isso acontece para deixar o processo de avaliação mais rápido. Então, não se assuste se isso acontecer, ok?