Skip to content

🪙 iManager API - A JSON-Server API to store iManager Interface data | NodeJS, Javascript, JSON-Server...

License

Notifications You must be signed in to change notification settings

Luk4x/iManager-json-server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🇺🇸 English
🇧🇷 Português

luk4x-repo-status luk4x-repo-license

🪙 iManager Project API

Acesse o projeto online AQUI


Tecnologias   |    Sobre   |    Rotas   |    Clone   |    Contato


🚀 Tecnologias Utilizadas

📝 Sobre

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.

📃 Rotas e Exemplos

  • 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 pelo body 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 e services são inicializadas por padrão no sistema respectivamente como 0 e [], e o id é 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 de projects.

  • GET /projects/:id: Com base no id enviado, essa rota retorna um projeto específico.

  • PATCH /projects/:id: Com base no id enviado e nos dados do projeto enviados pelo body da requisição, essa rota torna possível atualizar as informações de name, budget e/ou category de um projeto específico.
    Continuando do exemplo acima, ao chamar a rota PATCH /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 pelo body 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 um project no estado desejado na requisição, que através de seu id, ele substituirá o project existente no array de projects.
    Perceba que o valor de cost 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 um cost de 4000 cada, logo, o cost do projeto será de 8000, porém, nesse caso é impossível disso acontecer, pois existem verificações para que o cost de um projeto não ultrapasse seu budget.

  • DELETE /projects/:id: Com base no id enviado, assim que chamada, essa rota deleta o projeto recebido.

  • GET /categories: Essa rota retorna todas as categorias existentes no array de categories.

📖 Clonando o Projeto

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/)

🤝 Contato dos Contribuintes

Vitrine.Dev 🪟
Luk4x Github Photo
Lucas Maciel
🪧 Vitrine.Dev Lucas Maciel
✨ Nome 🪙 iManager API
🏷️ Tecnologias nodejs, json-server, javascript, yarn
📷 Img vitrine.dev thumb

Voltar ao Topo

About

🪙 iManager API - A JSON-Server API to store iManager Interface data | NodeJS, Javascript, JSON-Server...

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published