Skip to content

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

Notifications You must be signed in to change notification settings

C836/Livraria-API

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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é[email protected]",
    "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": "[email protected]",
    "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:https://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:https://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:https://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:https://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:https://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:https://localhost:3000/clientes

    Modelo JSON
    
    {
        "clientes": [
            {
                "id": 1,
                "nome": "André",
                "sobrenome": "Silva",
                "cpf": 31673948030
                "email": "André[email protected]",
                "telefone": 9836447972
            },
            {
                "id": 2,
                "nome": "João",
                "sobrenome": "Carlos",
                "cpf": 32648918086
                "email": "[email protected]",
                "telefone": 6627644471
            },
            {
                "id": 3,
                "nome": "Maria",
                "sobrenome": "Brito",
                "cpf": 09325858096
                "email": "[email protected]",
                "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:https://localhost:3000/clientes/id/2

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

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

    Modelo JSON
    
    {
        "nome": "Lucas",
        "sobrenome": "Almeida",
        "cpf": 41320808034
        "email": "[email protected]",
        "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:https://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:https://localhost:3000/clientes/update/1

    
    {
        "sobrenome": "Silveira",
        "email": "André[email protected]",
    }
    
    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:https://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:https://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:https://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:https://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:https://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:https://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": "[email protected]",
                "funcao": "Auxiliar Administrativo"
    
        }
        {
            "id": 2,
            "nome": "Fernanda",
            "sobrenome": "Oliveira",
            "data_de_nascimento": 04/04/1996,
            "data_de_admissao": 19/02/2018,
            "telefone": 996455432,
            "email": "[email protected]",
            "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": "[email protected]",
            "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:https://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": "[email protected]",
                "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:https://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": "[email protected]",
        "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:https://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:https://localhost:3000/funcionarios/update/1

    Modelo JSON
    
    {
        "sobrenome": "Silva",
        "email": "[email protected]",
    }
    
    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:https://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:https://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:https://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:https://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:https://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

:)