/Livraria-API

Sistema de registro de usuários de uma livraria seguindo o padrão API Rest.

Primary LanguageHTML

Livraria API

Sistema de registro em cadeia de uma livraria(livros, clientes, alugueis, funcionários e fornecedores) seguindo o padrão de interface API Rest. Foram implementados todos os métodos CRUD(CREATE, READ, UPDATE, DELETE) conforme o padrão DAO(Data Access Object) e a arquitetura MVC para o controle e organização de arquivos.

Web app

Inicialização

  • Instale o NodeJS atráves do link: Download

  • Faça o download do projeto em ZIP na própria página do github ou faça o download em um terminal via git com o seguinte comando:
> git clone https://github.com/C836/Livraria-API.git
  • Em um terminal de sua escolha, digite os seguintes comandos para instalar e inicializar a aplicação;

# selecionar diretório para a instalação
> cd [caminho do arquivo]
⠀
# instalar as dependências do projeto
> npm install
⠀
# iniciar aplicação
> npm start

  • Utilize uma plataforma de consultas de API's e faça a requisição de acordo os modelos disponíveis na sessão abaixo.

Modelos de requisição

Livros
{
    "isbn": "8535930043",
    "titulo": "Guerra e Paz",
    "autor": "Liev Tolstoi",
    "lingua": "Pt-br",
    "editora": "Companhia das Letras",
    "paginas": 1544,
    "publicacao": "21/11/2017",
    "preco": "137,90",
    "genero": "Ficção Literária",
    "quantidade": 300
}

Clientes
{
    "nome": "André",
    "sobrenome": "Silva",
    "cpf": 31673948030,
    "email": "AndréBac4no9@gmail.com",
    "telefone": 9836447972
}

Alugueis
{
    "livro": "Guerra e Paz",
    "nome": "André Silva",
    "data_de_aluguel":"01/01/2022",
    "forma_de_pagamento": "cartão de crédito",
    "data_de_entrega": "25/01/2022",
}

Funcionarios
{
    "nome": "Lucas",
    "sobrenome": "Silva",
    "data_de_nascimento": "27/06/2000",
    "data_de_admissao": "23/04/2020",
    "telefone": 9836447972,
    "email": "lucasBac4no9@gmail.com",
    "funcao": "Auxiliar Administrativo"
    
}

Fornecedores
{
    "nome": "Carlos Francisco",
    "cnpj": "02.234.456/0001-89",
    "endereco":"Rua Jacaré, 345, Vila Velha - BH/MG",
    "contaBancaria":"Ag: 1234, Cc:12345-7"
}

Exemplos

Livros
  • Listar todos os livros: http://localhost:3000/livros

    Modelo JSON
    
    {
        "livros": [
                    {
                "id": 1,
    	        "isbn": "8535930043",
                "titulo": "Guerra e Paz",
                "autor": "Liev Tolstoi",
                "lingua": Pt-br
                "editora": "Companhia das Letras",
                "paginas": 1544,
                "publicacao": "21/11/2017",
                "preco": "137,90",
                "genero": "Ficção Literária"
                "quantidade": 300
            },
    
    {
            "id": 2,
            "isbn": "8575226932",
            "titulo": "Estruturas de Dados e Algoritmos com JavaScript: Escreva um Código JavaScript Complexo e Eficaz Usando a Mais Recente ECMAScript",
            "autor": "Loiane Groner",
            "lingua": Pt-br
            "editora": "Novatec Editora ",
            "paginas": 408,
            "publicacao": "11/03/2019",
            "preco": "64,94",
            "genero": "Programação de Computadores"
            "quantidade": 12
        },
    
    {
            "id": 3,
            "isbn": "8575225405",
            "titulo": "Aprendendo Node: Usando JavaScript no Servidor",
            "autor": "Shelley Powers",
            "lingua": Pt-br
            "editora": "Novatec Editora ",
            "paginas": 312,
            "publicacao": "24/01/2017",
            "preco": "70,99",
            "genero": "Programação de Computadores"
            "quantidade": 29
        },
    ]
    

    }

    id isbn titulo autor lingua editora paginas publicacao preco genero quantidade
    1 8535930043 Guerra e Paz Liev Tolstoi Pt-br Companhia das Letras 1544 21/11/2017 137,90 Ficção Literária 300
    2 8575226932 Estruturas de Dados e Algoritmos com JavaScript: Escreva um Código JavaScript Complexo e Eficaz Usando a Mais Recente Loiane Groner Pt-br Novatec Editora 408 11/03/2019 64,90 Programação de Computadores 12
    3 8575226932 Aprendendo Node: Usando JavaScript no Servidor Shelley Powers Pt-br Novatec Editora 312 24/01/2017 70,99 Programação de Computadores 29

  • Listar livros por ID: http://localhost:3000/livros/id/2

    Modelo JSON
    
    {
        "livros": [
            {
               "id": 2,
    	        "isbn": "8575226932",
                "titulo": "Estruturas de Dados e Algoritmos com JavaScript: Escreva um Código JavaScript Complexo e Eficaz Usando a Mais Recente ECMAScript",
                "autor": "Loiane Groner",
                "lingua": Pt-br
                "editora": "Novatec Editora ",
                "paginas": 408,
                "publicacao": "11/03/2019",
                "preco": "64,94",
                "genero": "Programação de Computadores"
                "quantidade": 12
            }
        ]
    }
    
    id isbn titulo autor lingua editora paginas publicacao preco genero quantidade
    2 8575226932 Estruturas de Dados e Algoritmos com JavaScript: Escreva um Código JavaScript Xomplexo e Eficaz Usando a Mais Recente Loiane Groner Pt-br Novatec Editora 408 11/03/2019 64,90 Programação de Computadores 12

  • Inserir livros: http://localhost:3000/livros/add

    Modelo JSON
    
    {
                "id": 4,
    	        "isbn": "978-1449341398",
                "titulo": "Heroku: Up and Running: Effortless Application Deployment and Scaling",
                "autor": "Neil Middleton & Richard Schneeman",
                "lingua": Eng
                "editora": "O'Reilly Media",
                "paginas": 125,
                "publicacao": "07/11/2013",
                "preco": "42,24",
                "genero": "Programação de Computadores"
                "quantidade": 4
    }
    
    id isbn titulo autor lingua editora paginas publicacao preco genero quantidade
    4 978-1449341398 Heroku: Up and Running: Effortless Application Deployment and Scaling Neil Middleton & Richard Schneeman Eng O'Reilly Media 125 07/11/2013 42,24 Programação de Computadores 4

    Livro "Heroku: Up and Running: Effortless Application Deployment and Scaling" adicionado com sucesso.


  • Apagar livros por id: http://localhost:3000/livros/delete/2

    id isbn titulo autor lingua editora paginas publicacao preco genero quantidade
    2 8575226932 Estruturas de Dados e Algoritmos com JavaScript: Escreva um Código JavaScript Complexo e Eficaz Usando a Mais Recente ECMAScript Loiane Groner Pt-br Novatec Editora 408 11/03/2019 64,90 Programação de Computadores 12

    "Id "2" removido do banco de dados."


  • Atualizar livro por id: http://localhost:3000/livros/update/1

    
    {
        "autor": "Tolstoi",
        "preco": "100",
    }
    
    Modelo JSON
    id isbn titulo autor lingua editora paginas publicacao preco genero quantidade
    1 8535930043 Guerra e Paz Tolstoi Pt-br Companhia das Letras 1544 21/11/2017 100 Ficção Literária 300

    Id "1" atualizado.

Clientes
  • Listar todos os clientes: http://localhost:3000/clientes

    Modelo JSON
    
    {
        "clientes": [
            {
                "id": 1,
                "nome": "André",
                "sobrenome": "Silva",
                "cpf": 31673948030
                "email": "AndréBac4no9@gmail.com",
                "telefone": 9836447972
            },
            {
                "id": 2,
                "nome": "João",
                "sobrenome": "Carlos",
                "cpf": 32648918086
                "email": "Joao99Carlos99@gmail.com",
                "telefone": 6627644471
            },
            {
                "id": 3,
                "nome": "Maria",
                "sobrenome": "Brito",
                "cpf": 09325858096
                "email": "mariaaAAA20@gmail.com",
                "telefone": 6698645272
            }
        ]
    }
    
    id nome sobrenome cpf email telefone
    1 André Silva 31673948030 AndréBac4no9@gmail.com 9836447972
    2 João Carlos 32648918086 Joao99Carlos99@gmail.com 6627644471
    3 Maria Brito 09325858096 mariaaAAA20@gmail.com 6698645272

  • Listar cliente por ID: http://localhost:3000/clientes/id/2

    Modelo JSON
    
    {
        "clientes": [
            {
                "id": 2,
                "nome": "João",
                "sobrenome": "Carlos",
                "cpf": 32648918086
                "email": "Joao99Carlos99@gmail.com",
                "telefone": 6627644471
            }
        ]
    }
    
    id nome sobrenome cpf email telefone
    2 João Carlos 32648918086 Joao99Carlos99@gmail.com 6627644471

  • Inserir cliente: http://localhost:3000/clientes/add

    Modelo JSON
    
    {
        "nome": "Lucas",
        "sobrenome": "Almeida",
        "cpf": 41320808034
        "email": "profLucasAl@gmail.com",
        "telefone": 8327378874
    }
    
    id nome sobrenome cpf email telefone
    4 Lucas Almeida 41320808034 profLucasAl@gmail.com 8327378874

    Cliente "Lucas Almeida" adicionado com sucesso.


  • Apagar cliente por id: http://localhost:3000/clientes/delete/2

    id nome sobrenome cpf email telefone
    2 João Carlos 32648918086 Joao99Carlos99@gmail.com 6627644471

    "Id "2" removido do banco de dados."


  • Atualizar usuário por id: http://localhost:3000/clientes/update/1

    
    {
        "sobrenome": "Silveira",
        "email": "AndréSilveira@gmail.com",
    }
    
    Modelo JSON
    id nome sobrenome cpf email telefone
    1 André Silveira 31673948030 AndréSilveira@gmail.com 9836447972

    Id "1" atualizado.

Aluguel
  • Listar todos os alugueis: http://localhost:8000/aluguel

    Modelo JSON
    
    {
        "aluguel": [
            {
                "id": 1,
                "livro": "Guerra e Paz",
                "nome": "André",
                "data de aluguel":01/01/2022,
                "forma de pagamento": "cartão de crédito",
                "data de entrega": 25/01/2022,
            },
            {
                "id": 2,
                "livro": "Estruturas de Dados e Algoritmos com JavaScript: Escreva um Código JavaScript Complexo e Eficaz Usando a Mais Recente ECMAScript",
                "nome": "João",
                "data de aluguel": 01/02/2022,
                "forma de pagamento": "dinheiro",
                "data de entrega": 25/02/2022,
            },
            {
                "id": 3,
                "livro": "Aprendendo Node: Usando JavaScript no Servidor",
                "nome": "Maria",
                "data de aluguel": 01/03/2022,
                "forma de pagamento": "cartão de crédito",
                "data de entrega": 25/03/2022,
            }
        ]
    }
    
    id livro nome data de aluguel forma de pagamento data de entrega
    1 Guerra e Paz André 01/01/2022 cartão de crédito 25/01/2022
    2 Estruturas de Dados e Algoritmos com JavaScript: Escreva um Código JavaScript Complexo e Eficaz Usando a Mais Recente ECMAScript João 01/02/2022 dinheiro 25/02/2022
    3 Aprendendo Node: Usando JavaScript no Servidor Maria 01/03/2022 cartão de crédito 25/03/2022

  • Listar alugueis por ID: http://localhost:8000/aluguel/id/2

    Modelo JSON
    
    {
        "aluguel": [
            {
                "id": 2,
                "livro": "Estruturas de Dados e Algoritmos com JavaScript: Escreva um Código JavaScript Complexo e Eficaz Usando a Mais Recente ECMAScript",
                "nome": "João",
                "data de aluguel": 01/02/2022,
                "forma de pagamento": "dinheiro",
                "data de entrega": 25/02/2022,
            }
        ]
    }
    
    id livro nome data de aluguel forma de pagamento data de entrega
    2 Estruturas de Dados e Algoritmos com JavaScript: Escreva um Código JavaScript Complexo e Eficaz Usando a Mais Recente ECMAScript João 01/02/2022 dinheiro 25/02/2022

  • Inserir aluguel: http://localhost:8000/aluguel/add

    Modelo JSON
    
    {
                "id": 4,
                "livro": "Heroku: Up and Running: Effortless Application Deployment and Scaling",
                "nome": "Lucas",
                "data de aluguel": 01/04/2022,
                "forma de pagamento": "dinheiro",
                "data de entrega": 25/04/2022,
    }
    
    id livro nome data de aluguel forma de pagamento data de entrega
    4 Heroku: Up and Running: Effortless Application Deployment and Scaling Lucas 01/04/2022 dinheiro 25/04/2022

    Aluguel de "Lucas" adicionado com sucesso.


  • Apagar cliente por id: http://localhost:8000/aluguel/delete/2

    id livro nome data de aluguel forma de pagamento data de entrega
    2 Estruturas de Dados e Algoritmos com JavaScript: Escreva um Código JavaScript Complexo e Eficaz Usando a Mais Recente ECMAScript João 01/02/2022 dinheiro 25/02/2022

    "Id "2" removido do banco de dados."


  • Atualizar usuário por id: http://localhost:8000/aluguel/update/1

    
    {
        "nome": "Ivan",
        "livro": "Teoria da Moeda",
    }
    
    Modelo JSON
    id livro nome data de aluguel forma de pagamento data de entrega
    1 Guerra e Paz André Henrique 01/01/2022 cartão de débito 25/01/2022

    Id "1" atualizado.

Funcionários
  • Listar todos os funcionarios: http://localhost:3000/funcionarios

    Modelo JSON
    
    {
        "Funcionarios": [
            {
                "id": 1,
                "nome": "Lucas",
                "sobrenome": "Silva",
                "data_de_nascimento": 27/06/2000,
                "data_de_admissao": 23/04/2020,
                "telefone": 9836447972,
                "email": "lucasBac4no9@gmail.com",
                "funcao": "Auxiliar Administrativo"
    
        }
        {
            "id": 2,
            "nome": "Fernanda",
            "sobrenome": "Oliveira",
            "data_de_nascimento": 04/04/1996,
            "data_de_admissao": 19/02/2018,
            "telefone": 996455432,
            "email": "fernanda_oliveira@gmail.com",
            "funcao": "Secretária"
        }
        {
            "id": 3,
            "nome": "Maria Luiza",
            "sobrenome": "Alcântara",
            "data_de_nascimento": 15/05/1980,
            "data_de_admissao": 19/03/2002,
            "telefone": 995478938,
            "email": "mariaLu1980@gmail.com",
            "funcao": "Gerente"
        }
    ]
    

    }

    id nome sobrenome data_de_nascimento data_de_admissao telefone email funcao
    1 Lucas Silva 27/06/2000 23/04/2020 9836447972 lucasBac4no9@gmail.com Auxiliar Administrativo
    2 Fernanda Oliveira 04/04/1996 19/02/2018 996455432 fernanda_oliveira@.com Secretária
    3 Maria Luiza Alcântara 15/05/1980 19/03/2002 995478938 mariaLu1980@gmail.com Gerente

  • Listar funcionario por ID: http://localhost:3000/funcionarios/id/2

    Modelo JSON
    
    {
        "Funcionario": [
            {
                "id": 2,
                "nome": "Fernanda",
                "sobrenome": "Oliveira",
                "data_de_nascimento": 04/04/1996,
                "data_de_admissao": 19/02/2018,
                "telefone": 996455432,
                "email": "fernanda_oliveira@gmail.com",
                "funcao": "Secretária"
            }
        ]
    }
    
    id nome sobrenome data_de_nascimento data_de_admissao telefone email funcao
    2 Fernanda Oliveira 04/04/1996 19/02/2018 996455432 fernanda_oliveira@.com Secretária

  • Inserir funcionario: http://localhost:3000/funcionarios/add

    Modelo JSON
    
    {
        "nome": "Maria Luiza",
        "sobrenome": "Alcântara",
        "data_de_nascimento": 15/05/1980,
        "data_de_admissao": 19/03/2002,
        "telefone": 995478938,
        "email": "mariaLu1980@gmail.com",
        "funcao": "Gerente"
    }
    

    id nome sobrenome data_de_nascimento data_de_admissao telefone email funcao
    3 Maria Luiza Alcântara 15/05/1980 19/03/2002 995478938 mariaLu1980@gmail.com Gerente

    Funcionario "Maria Luiza Alcântara" adicionado com sucesso.


  • Apagar funcionario por id: http://localhost:3000/funcionarios/delete/1

    id nome sobrenome data_de_nascimento data_de_admissao telefone email funcao
    1 Lucas Silva 27/06/2000 23/04/2020 9836447972 lucasBac4no9@gmail.com Auxiliar Administrativo

    "Id "1" removido do banco de dados."


  • Atualizar funcionario por id: http://localhost:3000/funcionarios/update/1

    Modelo JSON
    
    {
        "sobrenome": "Silva",
        "email": "lucasSilva20@gmail.com",
    }
    
    id nome sobrenome data_de_nascimento data_de_admissao telefone email funcao
    1 Lucas Silva 27/06/2000 23/04/2020 9836447972 lucasSilva20@gmail.com Auxiliar Administrativo

    Id "1" atualizado.

Fornecedores
  • Listar todos os fornecedores: http://localhost:3000/fornecedores

    Modelo JSON
    
    {
        "Fornecedores": [
            {
                "id": 1,
                "nome": "Carlos Francisco",
                "cnpj": 02.234.456/0001-89,
                "endereco":"Rua Jacaré, 345, Vila Velha - BH/MG",
                "contaBancaria":"Ag: 1234, Cc:12345-7"
            }       
            {
                "id": 2,
                "nome": "João Antônio",
                "cnpj": 01.234.546/0002-78,
                "endereco":"Rua Sabino, 27, Santa Cruz - Go/GO",
                "contaBancaria":"Ag: 4321, Cc:76549-0"
            }
            {
                "id": 3,
                "nome": "Ana Vasconcelos",
                "cnpj": 03.567.031/0003-69,
                "endereco":"Avenida Floris, Cerejeira - Sc/PA",
                "contaBancaria":"Ag: 7654, Cc:24567-3"
            }
        ]   
    }        
    

    id nome cnpj endereco contaBancaria
    1 Carlos Francisco 02.234.456/0001-89 Rua Jacaré, 345, Vila Velha - BH/MG Ag: 1234, Cc:12345-7
    2 João Antônio 01.234.546/0002-78 Rua Sabino, 27, Santa Cruz - Go/GO Ag: 4321, Cc:76549-0
    3 Ana Vasconcelos 03.567.031/0003-69 Avenida Floris, Cerejeira - Sc/PA Ag: 7654, Cc:24567-3

  • Listar fornecedor por ID: http://localhost:3000/fornecedores/id/2

    Modelo JSON
    
    {
        "Funcionario": [
            {
                "id": 2,
                "nome": "João Antônio",
                "cnpj": 01.234.546/0002-78,
                "endereco":"Rua Sabino, 27, Santa Cruz - Go/GO",
                "contaBancaria":"Ag: 4321, Cc:76549-0"
            }
        ]
    }
    
    id nome cnpj endereco contaBancaria
    2 João Antônio 01.234.546/0002-78 Rua Sabino, 27, Santa Cruz - Go/GO Ag: 4321, Cc:76549-0

  • Inserir fornecedor: http://localhost:3000/fornecedores/add

    Modelo JSON
    
    {
        "nome": "Ana Vasconcelos",
        "cnpj": 03.567.031/0003-69,
        "endereco":"Avenida Floris, Cerejeira - Sc/PA",
        "contaBancaria":"Ag: 7654, Cc:24567-3"
    }
    

    id nome cnpj endereco contaBancaria
    3 Ana Vasconcelos 03.567.031/0003-69 Avenida Floris, Cerejeira - Sc/PA Ag: 7654, Cc:24567-3

    Funcionario "Ana Vasconcelos" adicionado com sucesso.


  • Apagar fornecedor por id: http://localhost:3000/fornecedores/delete/1

    id nome cnpj endereco contaBancaria
    1 Carlos Francisco 02.234.456/0001-89 Rua Jacaré, 345, Vila Velha - BH/MG Ag: 1234, Cc:12345-7

    "Id "1" removido do banco de dados."


  • Atualizar fornecedor por id: http://localhost:3000/fornecedores/update/2

    Modelo JSON
    
    {
        "nome": "João Antônio",
        "endereco": "Rua Felislândia, 46, Félix, Go/GO",
    

    }

    id nome cnpj endereco contaBancaria
    2 Joao Antônio 01.234.546/0002-78 Rua Felislândia, 46, Félix, Go/GO Ag: 4321, Cc:76549-0

    Id "2" atualizado.

Equipe

:)