GithubHelp home page GithubHelp logo

challenger_dev's Introduction

Task - Prática

Olá! 👋 Primeiramente, parabéns por ter chegado até aqui! Essa tem sido uma jornada seletiva de altíssimo nível.E como funcionará a Task Prática?

Dividimos em duas etapas, para que você possa aplicar seus conhecimentos e práticas, em cada uma das frentes de desenvolvimento. O desafio consiste em uma pequena implementação para avaliarmos seu conhecimento em Back-End (.NET, C#) e Front-End (HTML5, CSS, JavaScript e Angular)

Para realizá-lo, você deverá dar um fork neste repositório e depois cloná-lo em alguma pasta de sua preferência, na máquina que estiver realizando o teste. Crie um branch com seu nome a partir da master e, quando finalizar todo o desenvolvimento, você deverá enviar um pull-request com sua versão.

Caso precise consultar algum material de apoio, recomendamos:
Para o back: https://www.macoratti.net/19/10/ang7_apinc1.htm
Para o front: https://www.youtube.com/@loianegroner

O Desafio

Back-End/.NET

A primeira etapa será o desenvolvimento back-end!

Descrição:

O Objetivo dessa etapa é criar apis para um fórum onde um usuário pode fazer o CRUD básico de um tópico e realizar comentários dentro desse tópico, como uma discussão. A parte referente aos usuários não precisa ser implementado, podendo mockar os dados no front ou no back de acordo com a sua preferencia, sugerimos utilizar a seguinte estrutura para usuários:

{
    Id: int;
    Nome: string;
    Email: string;
    Foto: string;
}

Obrigatorio - Você deverá desenvolver as seguintes rotas em .Net Core(Versão de sua preferencia):

/forum - [GET] - Deve Retornar todos os topicos enviados
/topico/{id} - [GET] - Deve retornar um topico com id especificado
/topico - [POST] - Deve cadastrar um novo topico
/topico/{id} - [PUT] - Deve atualizar um topico com o id especificado
/topico/{id} - [DELETE] - Deve deletar um topico com o id especificado
/comentario/{idTopico} - [POST] - Deve cadastrar um novo comentario no topico de id especificado
/comentario/{idTopico}/{id} - [PUT] - Deve atualizar um comentario com o id especificado (Se o usuário for autor do comentario)
/comentario/{idTopico}/{id} - [DELETE] - Deve deletar um comentario com o id especificado (Se o usuário for autor do comentario)

Você pode utilizar um banco de dados local SQL Server para a persistência dos dados.

Front-End /Angular

Para a segunda etapa do teste, você deverá desenvolver uma SPA (Single Page Application) utilizando Angular. Nela, deverá ser possível:

Obrigatorio - Você deverá desenvolver no minimo uma tela com as seguintes funcionalidades:

  • Ver lista de tópicos
  • Criar tópico
  • Editar um tópico existente
  • Excluir um tópico existente
  • Ordenar os tópicos existentes (Data Crescente e Decrescente)
  • Pesquisar um tópico (Conteúdo do texto do tópico)
  • Criar comentário
  • Editar comentário
  • Excluir comentário
  • Visualizar um tópico e seus comentários

Seguindo o exemplo: image image image image

Observações importantes:

Você pode desenvolver o front na sua versão do Angular de preferência, se atentando para utilizar uma versão superior ou igual a 6.
Você pode modelar as classes de comentário e de tópicos da forma que achar mais conveniente para o desenvolvimento.
Você pode fazer adequações no front visando melhorar a experiencia do usuário, mas tente manter o mais fidedigno ao protótipo.
Você pode usar ferramentas de automação, mas deverá informar o uso completo para funcionamento do desafio.

Serão considerados pontos positivos, porém não são obrigatórios:

  1. Diferencial - Escrever testes unitarios para os endpoints;
  2. Diferencial - Utilização de documentação para o mini projeto;
  3. Diferencial - Publicação do projeto em algum ambiente online;
  4. Diferencial - Filtragem por texto no back;
  5. Diferencial - Ordenação dos topicos no back;
  6. Diferencial - Design patterns e rotinas para testes;
  7. Diferencial - Boas Práticas de orientação a objetos;

Qualquer problema ou dificuldade com o repositório, você pode entrar em contato conosco pelos e-mails, [email protected] ou [email protected] para que possamos sanar todas as dúvidas!

Estamos sempre em busca de melhoria. Por isso, caso tenha alguma sugestão, fique à vontade para compartilhar conosco! Boa sorte! 💛

challenger_dev's People

Contributors

calosguilherme avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.