<<<<<<< HEAD
- Trabalhar em um FORK deste repositório em seu usuário;
- O projeto Web deve utilizar Angular superior a versão 2;
- O projeto back-end deverá ser desenvolvido em Node(JS / TS) ou em PHP;
- O Front-End deve utilizar Angular Material: https://material.angular.io/ ou https://bulma.io;
- Os produtos disponíveis no projeto Front-End Angular devem ser recuperados através da API Rest Back-End Node ou PHP;
- Fique atento a princípios SOLID, DDD e orientação a objetos;
- Criar um banco de dados MySQL no Heroku: https://elements.heroku.com/addons/jawsdb
- Utilize Migrations
- Utilize Repository Pattern
-
Criar uma API REST usando Node ou PHP com os seguintes endpoints:
GET /
: Retornar um Status: 200 e uma Mensagem "REST WebAPI Challenge 20200630 Running"POST /products
: O endpoint irá processar o products.json que será enviado pelo Projeto WebPUT /products/:productId
: Será responsável por receber atualizações realizadas no Projeto WebDELETE /products/:productId
: Remover o produto da baseGET /products/:productId
: Obter a informação somente de um produto da base de dadosGET /products
: Listar todos os produtos da base de dados -
Integrar a API com o banco de dados MySQL criado no Heroku para persistir os dados
-
Até o momento, os Endpoints estão todos abertos para acesso. Isso não é legal a nível de segurança, dessa forma, queremos que você use um esquema para bloquear qualquer tipo de acesso, configurando uma API Key para que somente possa acessar os Endpoints, "Requests" autorizadas;
Dica: Talvez o endpoint da Home precise ser público.
Escrever a documentação da API utlizando conceito OpenAPI Specification em versões superiores ao v2.0
- Diferencial 1 - Escrever Unit Test para o endpoint
POST /products
- Diferencial 2 - Executar o projeto usando Docker
- Diferencial 3 - Escrever o esquema de segurança aplicado nos endpoints
Seu objetivo é montar uma tela para a equipe de produtos importar os arquivos JSON gerados pelo sistema de manufatura da empresa ao novo Dashboard. Nesta tela devemos adicionar um campo do tipo File que somente permite arquivos .json e tem faça a validação dos arquivos anexados antes de serem enviados a REST API. Somente arquivos válidos podem ser enviados ao Dashboard.
O Product Manager do projeto deixou uma sugestão de mockup acima.
Recomendado adicionar alertas de validações.
Criar uma sessão na tela com uma tabela para listar os produtos processados pela API. É importante ter os seguintes campos:
- Title
- Type
- Rating
- Price
- Created (Data do upload do produto a nova base de datos)
- Actions (Botões Editar e Excluir)
Na tabela com os produtos precisamos disponibilizar os formulários com todos os campos dos produtos para que a equipe possa editá-los. Fazer validação de alguns campos obrigatórios:
- Title
- Type
- Price
Antes de completar a ação de remover produto, devemos perguntar ao usuário se ele realmente quer realizar a ação. Para evitar a remoção de produtos de maneira indesejada. Após remover com êxito, notificar o usuário com um alerta de sucesso.
- Diferencial 1 - Foco em Front-End utilizar Unit Test no front-end para a opção de
Remover produto
. - Diferencial 2 - Foco em Front-End utilizar Unit Test no front-end para a opção de
Editar produto
.
- Deve conter o título de cada projeto
- Uma descrição de uma frase
- Como instalar e usar o projeto (instruções)
- Não esqueça o .gitignore
Avisar sobre a finalização e enviar para correção em: https://bit.ly/3e7MjcK Após essa etapa será marcado a apresentação/correção do projeto.
- Será necessário compartilhar a tela durante a vídeo chamada;
- Deixe todos os projetos de solução previamente abertos em seu computador antes de iniciar a chamada;
- Deixe os ambientes configurados e prontos para rodar;
- Prepara-se pois você será questionado sobre cada etapa e decisão do Challenge;
- Prepare uma lista de perguntas, dúvidas, sugestões de melhorias e feedbacks (caso tenha).
Use o nosso canal no slack: http://bit.ly/32CuOMy para tirar dúvidas sobre o processo ou envie um e-mail para contato@coodesh.com.
This project was generated with Angular CLI version 10.1.1.
Run ng serve
for a dev server. Navigate to http://localhost:4200/
. The app will automatically reload if you change any of the source files.
Run ng generate component component-name
to generate a new component. You can also use ng generate directive|pipe|service|class|guard|interface|enum|module
.
Run ng build
to build the project. The build artifacts will be stored in the dist/
directory. Use the --prod
flag for a production build.
Run ng test
to execute the unit tests via Karma.
Run ng e2e
to execute the end-to-end tests via Protractor.
To get more help on the Angular CLI use ng help
or go check out the Angular CLI README.
b7dddd2 (test API endpoints)