Git Product home page Git Product logo

desafio-bagy's Introduction

desafio-bagy

Este projeto foi realizado como um desafio técnico para a empresa Bagy. ele tem como objetivo criar uma API de backend usando GraphQL e Node, e SQLite como banco de dados, implementando as seguintes entidades:

  • Clientes
    • Nome completo
    • Email
    • CPF
    • Data de nascimento
    • Endereço
    • Rua
    • Bairro
    • Cidade
    • Estado
    • País
    • CEP
    • Número
  • Produtos
    • Nome
    • Imagem
    • Descrição
    • Peso
    • Preço
    • Quantidade em estoque
  • Pedidos
    • Produtos
    • Data de criação
    • Parcelas
    • Comprador (um dos usuários cadastrados)
    • Status

como foi a primeira vez que trabalhei com graphQL e SQLite utilizei o express como servidor e sequelizer para fazer a comunicação com o banco de dados já que são tecnologias que estou mais acostumado

foi utilizado lint para formatar o codigo, joi para validar argumentos, nodemailer para simular envio de e-mails.

lista completa de dependências:

"eslint-config-trybe-backend": "^1.0.4",
"express": "^4.17.2",
"express-graphql": "^0.12.0",
"graphql": "^15.8.0",
"joi": "^17.5.0",
"nodemailer": "^6.7.2",
"sequelize": "^7.0.0-alpha.4",
"sequelize-cli": "^6.3.0",
"sqlite3": "^5.0.2"

para rodar o projeto clone o repositório em uma pasta em sua maquina

git clone https://github.com/RafaelCes/desafio-bagy.git

em seguida acesse essa pasta e instale as dependências

npm install

configure o banco de dados com os valores iniciais

  npx sequelize db:migrate:undo:all
  npx sequelize db:migrate
  npx sequelize db:seed:all

inicialize o servidor

npm start

Acesse pelo browser a página

http://localhost:3000/graphql

aqui você pode executar as querys e mutations definidas (a página possui uma documentação interativa)

Querys

customer(id: Int): Customer
A Single customer

customers: [Customer]
List of All customers

product(id: Int): Product
A Single Product

prodcuts: [Product]
List of All Products

orders: [Order]
List of All orders

orderHistory(customerId: Int): [Order]
List of all orders by a customer

Mutations

createCustomer(input: CreateCustomerInput!): Customer
Add a new customer

updateCustomer(id: Int!input: CreateCustomerInput!): Customer
Update a customer

deleteCustomer(id: Int!): Customer
Delete a customer

createProduct(input: CreateProductInput!): Product
Add a new product

updateProduct(id: Int!input: CreateProductInput!): Product
Update a product

deleteProduct(id: Int!): Product
Delete a product

createOrder(input: CreateOrderInput!): Order
Add a new order

updateOrder(
id: Int!
installments: Int!
status: String!
): Order
Update a order

deleteOrder(id: Int!): Order
Delete a order

desafio-bagy's People

Contributors

rafaelces avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.