Giter VIP home page Giter VIP logo

app-bling-erp's People

Contributors

actions-user avatar leomp12 avatar matheusgnreis avatar renovate[bot] avatar thaischaves avatar wisley7l avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

app-bling-erp's Issues

Bad Request error callback de estoque e pedidos

Algumas lojas que têm meu contato privado e outras que mandaram na central da comunidade, informaram que receberam email de que não foi completado e a resposta é Bad request, isso está desabilitando os callbacks das lojas, 3 que me reportaram foram:

Artestore (1094), que me mandou o print abaixo:
image

Strong Nutrition (1119) e Fishing Co (1154)

Importar Códigos de Rastreio

Segundo o Bling, existem duas formas de importar código de rastreio, quando há alteração de pedido e ele já está dentro do pedido, conforme o corpo abaixo:

{"retorno":{"pedidos":[{"pedido":{"desconto":"0,00","observacoes":"Confirmo pedido de camiseta na cor cinza","observacaointerna":"","data":"2020-12-08","numero":"5398","numeroOrdemCompra":"","vendedor":"John Robert Hoffmann","valorfrete":"0.00","totalprodutos":"140.00","totalvenda":"140.00","situacao":"Atendido","loja":"203168377","numeroPedidoLoja":"5398","tipoIntegracao":"Api","cliente":{"id":"10486197519","nome":"Eli Magno Faleiros","cnpj":"XXX.XXX.XXX-XX","ie":"","rg":"","endereco":"Rua Floriano Peixoto","numero":"1560","complemento":"apto 81","cidade":"Franca","bairro":"Centro","cep":"14.400-760","uf":"SP","email":"[email protected]","celular":"16999993786","fone":"31999999999"},"pagamento":{"categoria":"SITE"},"nota":{"serie":"2","numero":"000149","dataEmissao":"2020-12-09 13:47:02","situacao":"7","valorNota":"140.00","chaveAcesso":"00001200527306000109550020000001491996792554"},"transporte":{"transportadora":"MIOR TRANSPORTES LTDA","cnpj":"05.756.860/0001-73","tipo_frete":"R","qtde_volumes":"1","enderecoEntrega":{"nome":"Eli Magno Faleiros","endereco":"Rua Floriano Peixoto","numero":"10","complemento":"apto 81","cidade":"Franca","bairro":"Centro","cep":"14.400-760","uf":"SP"},"volumes":[{"volume":{"id":"10499665973","idServico":"10226330878","idOrigem":"10486197530","servico":"JADLOG","codigoServico":"3","codigoRastreamento":"","valorFretePrevisto":"0.00","remessa":null,"dataSaida":"","prazoEntregaPrevisto":"","valorDeclarado":"0.00","avisoRecebimento":false,"maoPropria":false,"dimensoes":{"peso":"0.210","altura":"0","largura":"0","comprimento":"0","diametro":"0"},"urlRastreamento":"www2.correios.com.br/sistemas/rastreamento/"}}],"servico_correios":"JADLOG"},"itens":[{"item":{"codigo":"001082GG000021","descricao":"CAMISETA MASCULINA ZIPER Cor:MESCLA;Tamanho 1:GG","quantidade":"1.0000","valorunidade":"140.0000000000","precocusto":"52.5000000000","descontoItem":"0.00","un":"un","pesoBruto":"0.21000","largura":"2cm","altura":"21cm","profundidade":"29.7cm","descricaoDetalhada":"","unidadeMedida":"cm","gtin":"7898427180039"}}],"parcelas":[{"parcela":{"idLancamento":"0","valor":"140.00","dataVencimento":"2020-12-08 00:00:00","obs":"Cart\u00e3o de cr\u00e9dito (1/1)","destino":"1","forma_pagamento":{"id":"1310089","descricao":"Pagar.me","codigoFiscal":"3","bandeira":"1"}}}],"codigosRastreamento":{"codigoRastreamento":""}}}]}}

https://bling.com.br/Api/v2/pedido/5398/json/?apikey=xxxx

Já da nota fiscal está aqui um exemplo
https://ajuda.bling.com.br/hc/pt-br/articles/360046379674-GET-notafiscal-numero-serie-

Enfileirar eventos de callbacks do Bling

Algumas lojas estão perdendo sincronização com o Bling, pois está desativando pelo callback. Então segundo o que informaram no ticket, eles querem ter nossa resposta 200, independente de qualquer coisa, para saber que a notificação chegou.

Error: No authentication found

Error: No authentication found
at noAuthReject (/workspace/node_modules/@ecomplus/application-sdk/lib/methods/get-auth.js:17:21)
at /workspace/node_modules/@ecomplus/application-sdk/lib/methods/get-auth.js:75:15
at processTicksAndRejections (internal/process/task_queues.js:95:5) {..

Erro na importação de status do pedido

Descreva o erro
O status do pedido foi alterado no bling, o mesmo chegou na plataforma, pois temos no log:

10:05:35.929 AM

Starting #1077 ___importation/order_numbers/6047

Até encontrou o pedido:

10:05:37.253 AM

#1077 found order 6047

Mas o status não foi alterado.

Não mostra nenhum erro posterior, ao filtrar por esse evento:

Screenshot 2021-08-24 at 10-30-49 ecom-bling – Console do Firebase

Tutorial

A documentação ainda ficou sem falar do "Código da loja no Bling", acho que isto é importante.
A parte sobre status de pedido acho que está errada (ou só incompleta) e a instrução que consta sobre reserva de estoque não sei se é válida, acho que isto vai depender da operação da loja no ERP, não tem ligação específica com a integração...

Atualização no Bling por alteração de preço na e-com

Ocorreu o webhook, conforme podemos ver aqui:

18 de mar. de 2021
12:33:22.682 PM app

Webhook #1225 603852139332dd6865df4a8b [products]
12:33:22.682 PM app
Starting #1225 _exportation/product_ids/603852139332dd6865df4a8b

Porém não surtiu efeito no Bling. Tenho a conta da cliente aqui do Bling, esperei meia hora, mas não teve resposta.

Ela me indicou outros produtos para olhar também

Erros de importação e exportação de pedidos/status

Várias lojas relataram que estão tendo problema com status de pedidos, de exportar pedidos automaticamente para o bling ou importar e no log o erro informado é:

Error: timeout of 30000ms exceeded
at createError (/workspace/node_modules/axios/lib/core/createError.js:16:15)
at RedirectableRequest.handleRequestTimeout (/workspace/node_modules/axios/lib/adapters/http.js:280:16)
at RedirectableRequest.emit (events.js:375:28)
at RedirectableRequest.emit (domain.js:532:15)
at Timeout._onTimeout (/workspace/node_modules/follow-redirects/index.js:166:12)
at listOnTimeout (internal/timers.js:557:17)
at processTimers (internal/timers.js:500:7)

Já tem mais ou menos 1 mes que isso está ocorrendo, com algumas lojas tendo pedidos estornados, porque o pedido entra na loja e não é exportado para o Bling, dai a loja só acompanha pedido direto no bling. Ontem isso ocorreu de forma mais assídua, tentei fazer exportação manual e deu esse erro. Alguns, segundo o log, nem pra fila de exportação foi, porque eu pesquisava pelo ID e não mostrava no log, no caso ai deve ser até outro problema com o trigger

Unhandled rejection

Alguns pedidos não estão sendo enviados ao Bling de forma automática, peguei um exemplo no log:

7:45:16.233 AM

app

Webhook #1162 60420b586d50911b6054e2d7 [orders]

7:45:16.233 AM

app

Starting #1162 _exportation/order_ids/60420b586d50911b6054e2d7

7:45:16.341 AM

app
Function execution took 556 ms, finished with status code: 202

7:45:17.406 AM

app
Unhandled rejection

Essa foi uma segunda tentativa e mesmo assim o Bling não aceitou o pedido e assim, ficou perdido no meio dos pedidos do cliente, que acabou sendo acionado por receber um pedido e não enviar ao cliente.

Quando clico pra filtrar vejo só isso
labels.execution_id = "txrepbw2z5k6" (primeira tentativa)
labels.execution_id = "txrelhgzbbyx" (segunda tentativa)

Erro de callback de notas fiscais

O callback de situação de nota não foi concluído corretamente.

Dados enviados:

{“retorno”:{“notasfiscais”:[{“notafiscal”:{“serie”:“2”,“numero”:“000293”,“loja”:“203497102”,“numeroPedidoLoja”:“5545”,“tipo”:“S”,“situacao”:“Emitida DANFE”,“cliente”:{“nome”:“Ricardo Gandolfi”,“cnpj”:“xxxxxxxxxxx”,“ie”:"",“rg”:"",“endereco”:“Rua S\u00e3o Pedro”,“numero”:“637”,“complemento”:“Ap 51",“cidade”:“Curitiba”,“bairro”:“Cabral”,“cep”:“80.035-020”,“uf”:“PR”,“email”:"[email protected]”,“fone”:“xxxx1823606”},“contato”:“Ricardo Gandolfi”,“cnpj”:“xxxxxxxxxxx”,“vendedor”:"",“dataEmissao”:“2020-12-17 13:45:38”,“valorNota”:“96.75”,“chaveAcesso”:“43201206051394000193550020000002931155433452”,“xml”:“https://www.bling.com.br/b/relatorios/nfe.xml.php?s%26chaveAcesso=43201206051394000193550020000002931155433452",“linkDanfe”:“https://www.bling.com.br/b/doc.view.php?id=b0c37f559c68a45e6c1a87e33457928d”,“codigosRastreamento”:{“codigoRastreamento”:“OM804811292BR”},“cfops”:[“6108”],“tipoIntegracao”:“Api”,“transporte”:{“volumes”:[{“volume”:{“id”:“10615541050”,“idServico”:“10299909884”,“servico”:"SEDEX CONTRATO AG”,“codigoServico”:“03220”,“codigoRastreamento”:“OM804811292BR”,“valorFretePrevisto”:“27.82”,“remessa”:null,“dataSaida”:"",“prazoEntregaPrevisto”:"",“valorDeclarado”:“0.00”,“avisoRecebimento”:false,“maoPropria”:false,“dimensoes”:{“peso”:“0.056”,“altura”:“0”,“largura”:“0”,“comprimento”:“0”,“diametro”:“0”},“urlRastreamento”:“www2.correios.com.br/sistemas/rastreamento?objetos=OMOM804811292BRBR"}}],“servico_correios”:"SEDEX CONTRATO AG”,“enderecoEntrega”:{“nome”:“Ricardo Gandolfi”,“endereco”:“Rua S\u00e3o Pedro”,“numero”:“637”,“complemento”:“Ap 51”,“cidade”:“Curitiba”,“bairro”:“Cabral”,“cep”:“80.035-020”,“uf”:“PR”}}}}]}}

Erro no envio de produto

Não sei se é o certo, mas vamos lá:
https://github.com/ecomplus/app-bling-erp/blob/master/functions/lib/integration/export-product.js#L36
Faz um get no produto no Bling, se der erro, retorna aqui, se não der tem o retorno da promise. Quando faz um get de um produto que não existe no Bling, o retorno é:

{
    "retorno": {
        "erros": [
            {
                "erro": {
                    "cod": 14,
                    "msg": "A informacao desejada nao foi encontrada"
                }
            }
        ]
    }
}

Com status 200

Ou seja, continua e aparentemente passa por aqui https://github.com/ecomplus/app-bling-erp/blob/master/functions/lib/integration/export-product.js#L51 pra criar o produto e está rolando algum erro (não mostra no log) e ai acho que segue pra próxima then e vai para tentar um POST em
/produtoLoja/${blingStore}/${codigo}, porém o produto não foi criando no then anterior e ai dá erro, resultando em um log:
Error: Status 404 {"retorno":{"erros":{"123":"O produto com este código não foi encontrado no sistema"}}} -- Request -- post /produtoLoja/203758074/cat0049/json/ undefined /

Isso ai já rolou em várias lojas, mas ultimamente isso está frequente.

Erro ao importar imagens

Na documentação do Bling tem um quadro mostrando que para buscar as imagens dos produtos, precisa ter o parâmetro imagem com valor S, conforme:

Parâmetro Descrição Tipo
apikey Sua apikey string
estoque Parâmetro opcional, informar "S" para incluir estoque atual por depósito e total no retorno string
loja Parâmetro opcional, informar o  "Código da Loja" para incluir informações específicas de uma loja vinculada ao produto string
imagem Parâmetro opcional, informar "S" para incluir as imagens vinculadas ao produto. string

Para estoque, mesma coisa, como o tem um tópico disso na comunidade, fui verificar e não vi esses parâmetros na requisição. Fiz um teste:

https://bling.com.br/Api/v2/produto/300936/json/?estoque=S&imagem=S&apikey=xxxx e funcionou:

{
    "retorno": {
        "produtos": [
            {
                "produto": {
                    "id": "10855930936",
                    "codigo": "300936",
                    "descricao": "Popsockets Graphic Gen2 Checker Black Suporte Celular Clip",
                    "tipo": "P",
                    "situacao": "Ativo",
                    "unidade": "un",
                    "preco": "59.9000000000",
                    "precoCusto": "0.0000000000",
                    "descricaoCurta": "",
                    "descricaoComplementar": "",
                    "dataInclusao": "2021-01-11",
                    "dataAlteracao": "2021-01-12",
                    "imageThumbnail": null,
                    "urlVideo": "",
                    "nomeFornecedor": "POPSOCKETS",
                    "codigoFabricante": "800467",
                    "marca": "",
                    "class_fiscal": "3926.90.90",
                    "cest": "",
                    "origem": "1",
                    "idGrupoProduto": "0",
                    "linkExterno": "",
                    "observacoes": "",
                    "grupoProduto": null,
                    "garantia": "3",
                    "descricaoFornecedor": "",
                    "idFabricante": "10340759284",
                    "categoria": {
                        "id": "2196560",
                        "descricao": "CAPA SMARTPHONE"
                    },
                    "pesoLiq": "0.02000",
                    "pesoBruto": "0.05000",
                    "estoqueMinimo": "3.00",
                    "estoqueMaximo": "8.00",
                    "gtin": "842978135052",
                    "gtinEmbalagem": "",
                    "larguraProduto": "8",
                    "alturaProduto": "15",
                    "profundidadeProduto": "1",
                    "unidadeMedida": "Centímetros",
                    "itensPorCaixa": 0,
                    "volumes": 0,
                    "localizacao": "",
                    "crossdocking": "1",
                    "condicao": "Novo",
                    "freteGratis": "N",
                    "producao": "T",
                    "dataValidade": "0000-00-00",
                    "spedTipoItem": "04",
                    "imagem": [
                        {
                            "link": "http://www.comercial.customic.com.br/news/popsocket/todos/fotos_pop/300936-CheckerBlackBK/Checker-Black_02_Grip-Expanded 1.png",
                            "validade": "S/ Validade",
                            "tipoArmazenamento": "externo"
                        },
                        {
                            "link": "http://www.comercial.customic.com.br/news/popsocket/todos/fotos_pop/300936-CheckerBlackBK/Checker-Black_01_Top-View 1.png",
                            "validade": "S/ Validade",
                            "tipoArmazenamento": "externo"
                        },
                        {
                            "link": "http://www.comercial.customic.com.br/news/popsocket/todos/fotos_pop/300936-CheckerBlackBK/Checker-Black_03_Collapsed 1.png",
                            "validade": "S/ Validade",
                            "tipoArmazenamento": "externo"
                        },
                        {
                            "link": "http://www.comercial.customic.com.br/news/popsocket/todos/fotos_pop/300936-CheckerBlackBK/Checker-Black_04_Device-Black-Collapsed 1.png",
                            "validade": "S/ Validade",
                            "tipoArmazenamento": "externo"
                        },
                        {
                            "link": "http://www.comercial.customic.com.br/news/popsocket/todos/fotos_pop/300936-CheckerBlackBK/Checker-Black_05_Device-Black-Expanded 1.png",
                            "validade": "S/ Validade",
                            "tipoArmazenamento": "externo"
                        },
                        {
                            "link": "http://www.comercial.customic.com.br/news/popsocket/todos/fotos_pop/300936-CheckerBlackBK/Checker-Black_06_Device-White-Collapsed 1.png",
                            "validade": "S/ Validade",
                            "tipoArmazenamento": "externo"
                        },
                        {
                            "link": "http://www.comercial.customic.com.br/news/popsocket/todos/fotos_pop/300936-CheckerBlackBK/Checker-Black_07_Device-White-Expanded 1.png",
                            "validade": "S/ Validade",
                            "tipoArmazenamento": "externo"
                        },
                        {
                            "link": "http://www.comercial.customic.com.br/news/popsocket/todos/fotos_pop/300936-CheckerBlackBK/Checker-Black_08_Top-Expanded 1.png",
                            "validade": "S/ Validade",
                            "tipoArmazenamento": "externo"
                        }
                    ],
                    "camposCustomizados": {
                        "precisaDeBateriasOuPilhas": "Não",
                        "regulamentacoesAplicaveisAProdutosPerigosos": "Não se aplica",
                        "marcaDaCapa": "Original Usa",
                        "modeloDaCapa": "Graphic  - Generation 2 / Geração 2 (Nova Versão)",
                        "marcaDeCelular": "Suporte Celular",
                        "modeloDeCelular": "Pop Socket / Popsocket / Pop Sockets",
                        "alturaDoPacotecm": "18",
                        "larguraDoPacotecm": "9",
                        "profundidadeDoPacotecm": "9",
                        "codigoAuxiliar": "800467",
                        "material": "800467",
                        "tipoDeCapa": "Popgrip / Popclip / Ring / Selfie / Dedo / Tablet / Ipad / Iphone / Samsung / Motorola / Lg / Tripé / Kindle / Capa / Capinha / Suporte Carro / Suporte Veicular",
                        "tipotamanhoDaBateria": "Bateria ou Pilha 9 V",
                        "bateriasOuPilhasInclusas": "Sim",
                        "composicaoDaBateria": "Alcalina",
                        "embalagemDaBateriaOuPilhaDeLitio": "Pilhas ou baterias contidas no equipamento"
                    },
                    "estoqueAtual": 8,
                    "depositos": [
                        {
                            "deposito": {
                                "id": "9585657589",
                                "nome": "Geral",
                                "saldo": "8.0000000000",
                                "desconsiderar": "N",
                                "saldoVirtual": "8.0000000000"
                            }
                        },
                        {
                            "deposito": {
                                "id": "10835075497",
                                "nome": "VIRTUAL",
                                "saldo": 0,
                                "desconsiderar": "N",
                                "saldoVirtual": 0
                            }
                        }
                    ]
                }
            }
        ]
    }
}

Criando produtos novos ao realizar atualização de preço

A opção subscrever está marcada loja 1225
Screenshot (51)

IDs: 60538c0a4b9484460865a4fe e 6039943f9332dd6865e093e4 (foi apagado pela lojista, mas consta no painel ainda)

Tentei buscar no logs para saber, quando foi criado, mas o log dela é muito grande. Precisaria talvez filtrar por recurso

Envio errado de produto no pedido

O pedido https://app.e-com.plus/#/resources/orders/6043b4286d50911b60560894 entrou com sku "sku\":\"150350_Sarja_Preta_GG\", conforme dá pra ser visto no log 80570 da loja e assim ficou dentro do pedido na plataforma, porém no bling subiu como 150350_Sarja_Preta_G, de acordo com o corpo:

#1035 {"numero_loja":"1800","data":"06/03/2021","numero":"1800","loja":203419468,"cliente":{"nome":"PAULO XXX","tipoPessoa":"F","cpf_cnpj":"xxx","email":"[email protected]","celular":"XXX","endereco":"xxx","numero":"1277","complemento":"LOJA","bairro":"CENTRO","cep":"00.600-000","cidade":"São Joaquim da Barra","uf":"SP"},"itens":[{"item":{"codigo":"150350_Sarja_Preta_G","descricao":"Camisa Sarja Masculina Preta Manga Curta / GG","un":"Un","qtde":1,"vlr_unit":79.9}}],"parcelas":[{"parcela":{"data":"06/03/2021","vlr":89.29,"obs":"Pagar com Pix (1/1)"}}],"transporte":{"transportadora":"Correios","servico_correios":"SEDEX","peso_bruto":0.00035,"dados_etiqueta":{"nome":"PAULO XXXX","endereco":"XX","numero":"XXX","complemento":"LOJA","bairro":"CENTRO","cep":"00.600-000","municipio":"São Joaquim da Barra","uf":"SP"}},"vlr_frete":15.78,"vlr_desconto":6.39}

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Warning

These dependencies are deprecated:

Datasource Name Replacement PR?
npm querystring Unavailable
npm standard-version Available

Rate-Limited

These updates are currently rate-limited. Click on a checkbox below to force their creation now.

  • chore(deps): replace dependency standard-version with commit-and-tag-version ^9.5.0
  • chore(deps): update dependency eslint to v9
  • chore(deps): update dependency eslint-plugin-promise to v7
  • chore(deps): update dependency husky to v9
  • chore(deps): update dependency node to v20
  • fix(deps): update dependency @google-cloud/pubsub to v4
  • fix(deps): update dependency dotenv to v16
  • fix(deps): update dependency firebase-admin to v12
  • fix(deps): update dependency firebase-functions to v5
  • fix(deps): update dependency js2xmlparser to v5
  • 🔐 Create all rate-limited PRs at once 🔐

Open

These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

Ignored or Blocked

These are blocked by an existing closed PR and will not be recreated unless you click a checkbox below.

Detected dependencies

github-actions
.github/workflows/create-release.yml
  • actions/checkout v3
  • actions/create-release v1
.github/workflows/deploy.yml
  • actions/checkout v3
  • actions/setup-node v3
  • actions/cache v2
  • actions/checkout v3
  • actions/setup-node v3
  • actions/cache v2
.github/workflows/publish.yml
  • actions/checkout v3
  • actions/setup-node v3
  • actions/cache v2
npm
functions/package.json
  • @ecomplus/application-sdk ^22.0.0-firestore.1.15.7
  • @google-cloud/firestore ^4.15.1
  • @google-cloud/pubsub ^3.4.1
  • axios ^0.27.2
  • express ^4.18.2
  • firebase-admin ^11.10.0
  • firebase-functions ^4.4.1
  • form-data ^3.0.1
  • js2xmlparser ^4.0.2
  • querystring ^0.2.1
  • eslint ^6.8.0
  • eslint-plugin-promise ^4.3.1
  • firebase-functions-test ^0.3.3
  • node 16
  • npm ^8.19.0
package.json
  • dotenv ^10.0.0
  • firebase-tools ^12.4.4
  • uglify-js ^3.17.4
  • @commitlint/cli ^13.2.1
  • @commitlint/config-conventional ^13.2.0
  • husky ^4.3.8
  • standard ^16.0.4
  • standard-version ^9.5.0
  • node 16
  • npm ^8.19.0
nvm
.nvmrc
  • node 16

  • Check this box to trigger a request for Renovate to run again on this repository

Buscar estoque do depósito

Se na configuração do app estiver configurado um depósito, buscar o estoque do depósito.

{
    "retorno": {
        "estoques": [
            {
                "estoque": {
                    "id": "12345",
                    "codigo": "prod",
                    "nome": "Produto",
                    "estoqueAtual": 2,
                    "depositos": [
                        {
                            "deposito": {
                                "id": "1234561",
                                "nome": "Deposito 1",
                                "saldo": "3.00",
                                "desconsiderar": "N"
                                "saldoVirtual": 2
                            }
                        },
                        {
                            "deposito": {
                                "id": "1234562",
                                "nome": "Deposito 2 (desconsidera o saldo)",
                                "saldo": 0,
                                "desconsiderar": "S"
                                "saldoVirtual": -1
                            }
                        }
                    ]
                }
            }
        ]
    }
}

Solicitação do grupo customic para trabalho com depósitos diferentes

Mudança de status de venda agenciada para em aberto

Segundo lojistas, não existe parâmetro de venda aprovada, é possível criar isso no Bling, mas muitos não usam. Pelo que conversei com lojistas, normalmente é enviado só pedido aprovado, se for cancelado, atualiza para cancelado. Porque todos os marketplaces fazem isso, entao é um fluxo normal. Se cai pedido aguardando pagamento, teria que fazer reserva de estoque e enviar pro Bling essa reserva de estoque. Porque quem normalmente tira nota fiscal, nem olha status, se cai no Bling, já retira nota e dá sequencia.
@leomp12

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.