🇺🇸 English |
🇧🇷 Português |
Acesse o projeto online AQUI
Tecnologias | Sobre | Rotas | Clone | Contato
Esse projeto é uma JSON-Server API que realiza o cadastro de projetos e armazena as categorias de projetos da iManager, uma Web plataforma de gestão empresarial, servindo como base para a sua Interface que desenvolvi essencialmente em ReactJS.
-
POST /projects
: Essa rota recebe o nome do projeto, o orçamento do projeto e a categoria do projeto. Essas informações são passadas pelobody
da requisição, e com base nelas um novo projeto é registrado dentro do array de projetos, no seguinte formato:[ { "name": "Projeto 1", "budget": "5000", "category": { "id": 1, "name": "Infra" }, "cost": 0, "services": [], "id": 1 } ];
As informações de
cost
eservices
são inicializadas por padrão no sistema respectivamente como0
e[]
, e oid
é gerado com base na posição do projeto no array, e juntas, essas 3 informações são incorporadas no projeto. -
GET /projects
: Essa rota retorna todos os projetos existentes no array deprojects
. -
GET /projects/:id
: Com base noid
enviado, essa rota retorna um projeto específico. -
PATCH /projects/:id
: Com base noid
enviado e nos dados do projeto enviados pelobody
da requisição, essa rota torna possível atualizar as informações dename
,budget
e/oucategory
de um projeto específico.
Continuando do exemplo acima, ao chamar a rotaPATCH /projects/1
passando{ name: "Novo Projeto 1", budget: 6500, category: { id: 2, name: "Desenvolvimento"} }
, o array ficará dessa forma:[ { "name": "Novo Projeto 1", "budget": "6500", "category": { "id": 2, "name": "Desenvolvimento" }, "cost": 0, "services": [], "id": 1 } ];
Porém, através dessa rota também é possível atualizar o array de
services
do projeto, assim sendo possível Criar/Editar/Remover serviços - tudo dependerá do que estará sendo enviado pelobody
da requisição. Tendo em mente que:const project = { "name": "Novo Projeto 1", "budget": "6500", "category": { "id": 2, "name": "Desenvolvimento" }, "cost": 0, "id": 1 }
Ao chamar a rota
PATCH /projects/1
passando{...project, services: [ { name: "Contratação de Dev Front-End", cost: 3400, desc: "Responsável pelo desenvolvimento do layout da aplicação." } ] }
, o array ficará dessa forma:[ { "name": "Novo Projeto 1", "budget": "6500", "category": { "id": 2, "name": "Desenvolvimento" }, "cost": 3400, "services": [ { "name": "Contratar Dev Front-End", "cost": 3400, "desc": "Responsável pelo desenvolvimento do layout da aplicação.", "id": "dea206b3-409d-4b3f-9493-4bc2d27466a2" } ], "id": 1 } ];
O serviço que foi passado na requisição foi criado, e nesse caso, sua informação de
id
foi gerada pela biblioteca uuid.
Para Editar/Deletar um serviço segue-se a mesma lógica: basta enviar umproject
no estado desejado na requisição, que através de seuid
, ele substituirá oproject
existente no array deprojects
.
Perceba que o valor decost
do projeto foi influenciado pelo serviço adicionado, isso porque o custo do projeto está relacionado com seus serviços, portanto, se o projeto tiver 2 serviços com umcost
de 4000 cada, logo, ocost
do projeto será de 8000, porém, nesse caso é impossível disso acontecer, pois existem verificações para que ocost
de um projeto não ultrapasse seubudget
. -
DELETE /projects/:id
: Com base noid
enviado, assim que chamada, essa rota deleta o projeto recebido. -
GET /categories
: Essa rota retorna todas as categorias existentes no array decategories
.
Para clonar e executar este projeto em seu computador, você precisará do Git, Node.js v16.13.2 ou superior, Yarn, e de preferência, um API Client como o Insomnia (mas também pode ser acessado pelo navegador) previamente instalados.
No terminal:
# Clone esse repositório com:
> git clone https://github.com/Luk4x/iManager-json-server.git
# Entre no repositório com:
> cd iManager-json-server
# Instale as dependências com:
> yarn install
# Execute o projeto com:
> yarn start
# Feito isso, você já poderá acessar o projeto pelo link que aparecerá no terminal! (algo como http://localhost:3000/ ou http://127.0.0.1:5173/)
Vitrine.Dev 🪟
|
Lucas Maciel
|