Sistema CRUD para gerenciamento de clientes.
Para executar o projeto, deve ser realizada a instalação dos módulos:
Angular CLI:
npm install -g @angular/cli
Ao finalizar, na raiz do projeto executar
npm install
Este projeto utiliza dados mockados através de uma API REST, utilizando o JSON Server:
npm install json-server
Para executar a API REST que fornece os dados para o projeto, execute json-server --watch API-Data.json
na raiz do projeto.
Para executar o sistema, execute ng serve
na raiz do projeto. Navega até http://localhost:4200/
para ter acesso ao sistema.
Este projeto utiliza os frameworks Jasmine e Karma para os testes unitários.
Para visualizar os testes, execute ng test
na raiz do projeto.
- Testes presentes:
- Validação individual dos campos de cadastro de cliente (Nome, e-mail, CPF, Data de nascimento e renda mensal);
- Formulário válido para cadastro de clientes.
-
Sistema desenvolvido utilizando o Framework Angular v. 12.2;
-
Biblioteca de UI Ant Design of Angular v. 12.1;
-
API REST mockada utilizando o JSON Server;
O sistema os seguintes endpoints para gerenciamento dos dados:
- GET /client -> Listagem dos clientes cadastrados; - GET /client/:id -> Buscar os dados do cliente através do id; - POST /client -> Cadastro de novos clientes; - PUT /client/:id -> Edição de um cliente cadastrado através do id; - DELETE /client/:id -> Remoção de um cliente cadastrado através do id;
O modelo de cliente utiliza as seguintes propriedades:
{ id: number; fullName: string; cpf: string; birthdate: Date; monthlyIncome: number, email: string; registrationDate: Date; }
Validações para cadastro de clientes:
- CPF deve ser válido; - Cliente deve possuir mais de 18 anos e menos de 60; - Nome do cliente deve possuir ao menos um sobrenome;
Modelo de paginação da tela de listagem dos clientes:
{ totalElements: number; -> Total de elementos cadastrados no arquivo API-Data.json; page: number; -> Index da página atual; size: number; -> Quantidade de elementos por página; }
Para modificar a quantidade de elementos por página, altere a propriedade size para o número que deseja.