A ideia deste desafio é nos permitir avaliar melhor as habilidades de candidatos à vagas de programador, de vários níveis. Este desafio deve ser feito por você em sua casa. Gaste o tempo que você quiser, porém normalmente você não deve precisar de mais do que algumas horas.
Este é um desafio com vaga em aberto qualquer um pode participar.
- Primeiro, faça um fork deste projeto para sua conta no GitHub (crie uma se você não possuir).
- Em seguida, implemente o projeto tal qual descrito abaixo, em seu próprio fork.
- Crie as instruções de instalação e execução do aplicativo em seu
readme.md
. - Por fim, envie o link do seu repositório público para avaliarmos seu código para o e-mail [email protected]
Crie um arquivo dissertacao.txt
na raiz do seu repositório, dentro deste arquivo você deve dissertar sobre o seguinte tema:
Sabendo que todos os programadores do Viajar Barato possuem amplo conhecimento em .NET e SQL Server, se você fosse construir um novo site do Viajar Barato, qual tecnologia e arquitetura você usaria? Explique o motivo da sua escolha e aponte como usar cada uma delas.
-
O desafio é criar tanto uma API REST quanto uma página SPA em Angular@5+ que lista os personagens da série de filmes "Star Wars" filtrando por sua espécie.
-
Você deve criar uma WEB API RESTFull utilizando C# que irá consumir os métodos de https://swapi.co/, você deve decidir com base nas necessidades do software e documentação do https://swapi.co/ quais métodos serão necessários o encapsulamento.
-
Você deve criar uma Página utilizando Angular@5+, React ou MVC, que será responsável por efetuar a busca de personagens e listar os nomes dos personagens de uma determinada espécie.
-
O Filtro de busca da página será composto por um campo onde o usuário irá digitar a espécie, esse campo deve ser do tipo typeahead search com uma pesquisa da esquerda para direita, onde conforme a digitação do usuário os termos compatíveis são exibidos em um Dropbox, os termos gerados no typeahead. Além de exibir do nome da espécie compatível com o termo o nome do planeta natal "homeworld.name" deve ser apresentado. Exemplo: Usuário digita:
Hum
> Aplicação Apresenta: [Human (Coruscant)
] -
A Tabela de Resultado da busca "personagens", deve ser composto pelo nome do personagem e o nome do planeta natal "homeworld.name". Abaixo uma tabela com exemplo do retorno.
Personagem Planeta Natal Luke Skywalker Tatooine Darth Vader Tatooine Leia Organa Alderaan Owen Lars Tatooine
Os serviços de consulta de personagens, planetas e espécies e fornecido pelo The Star Wars API, a documentação pode ser acessada nesse link https://swapi.co/documentation.
Abaixo um exemplo de como sua aplicação deve se parecer. challenge-mock-wireframe.jpg
- No filtro de espécies utilizar um componente de Typeahead;
- Utilizar .Net Framework 4+ ou .NET Core 1.1+;
- Utilizar Angular@5+, React ou MVC;
- Pode utilizar @ng-bootstrap/ng-bootstrap ou Angular Material;
- Pode utilizar IdentityServer4;
- Deve implementar autorização na API, baseada em Tokens com expiração;
- Importar pacotes de auxílio do swapi.co.
- Acessar a swapi.co diretamente via interface client.
- Faça uso correto da programação paralela;
- Efetue uma implementação de Cache;
- Siga os conceitos de OOP e SOLID;
- Utilize ao menos duas das design patterns da OOP;
- Efetue commits atômicos;
- Inclua documentação por comentários;
- Utilize dutos assíncronos;
- Implemente o conceito de dutos em suas subscrições;
- Utilize quando necessário a composição de mapaeamento ou troca de mapeamento;
- Autenticar o acesso aos métodos anônimos da aplicação Angular ao Backend C# utilizado OAuth2 Client credentials;
- Desenvolvimento orientado a objeto
- C# 5+
- .NET Framework 4+
- Integrações RESTFull
- HTML
- CSS
- Pré-processadores de Estilo
- Javascript
- ASP.net MVC (Razor Engine)
- Banco de dados SQL Server
- Git Source Control
- Desenvolvimento orientado a testes (TDD)
- C# Async Framework
- Entity Framework Core
- .NET Core 2 ou superior
- Angular 5+
- Typescript 3+
- Docker
- Banco de dados não relacional MongoDB
- AMQP RabbitMQ – Queues
- Banco de dados não relacional Redis
- Programação Reativa
- Linux
- Kubernetes
- Continuous integration e continuous delivery (CI/CD)
Seu projeto será avaliado de acordo com os seguintes critérios.
- Sua aplicação atende funcionalmente o que foi pedido;
- Você foi conciso em sua dissertação apontando pontos interessantes e com uma visão disruptiva.
- Você documentou a maneira de configurar o ambiente e rodar sua aplicação na máquina do avaliador utilizando o README.md;
- Você seguiu as instruções enviadas;
- Você segue as boas práticas de programação e entrega para o Cliente;
- O código escrito é fácil de entender e manter;
- Você se preocupa com o uso do aplicativo pelo Usuário;
- Você executou o teste em um prazo máximo de 9 dias a contar da data do fork.
Tentaremos verificar a sua familiarização com as bibliotecas padrões (standard libs), bem como sua experiência com programação orientada a objetos a partir da estrutura de seu projeto, preocupação com o objetivo da aplicação e do seu uso pelo usuário, suporte e manutenção do código por outros desenvolvedores.
Após a entrega do link do códido fonte do projeto no GitHub, efetuaremos a análise da entrega, normalmente em até 36 horas úteis teremos o resultado da análise.
Em caso positivo será iniciada a segunda faze de avaliação onde acontecerá uma entrevista com a equipe, onde o candidato irá apresentar o projeto que construiu e detalhar quais técnicas ele utilizou e porque.
Caso haja necessidade agendaremos uma entrevista presencial.
Somos uma empresa de turismo com mais de 7 anos de atuação.
Estamos em processo de modernização de nossa Stack de desenvolvimento, implementando arquiteturas escaláveis utilizando containers e micro-serviços.
Fazem parte de nossa Stack: .NET Core 2+, .NET Framework 4+, Angular@5+, RabbitMQ, Docker, Kubernetes, Linux, MongoDB, MSSql Server, Typescript.
Apoiamos e respeitamos a diversidade independente de raça, etnia, orientação sexual, gênero, idade, nacionalidade, crença ou deficiência.
Estamos localizados no centro de São Paulo, proximo a nós temos:
- 🚉 Metrô Sé, Anhangabaú e São Bento.
- 💻 Rua Santa Ifigênia
- 🤘 Galeria do Rock
- 🍔 Shopping Light
Venha! Junte-se a nós!