tainna-andryelli /
tainna-midi
Desenvolvendo minha primeira página dinãmica com JavaScript
Loading repository data…
BrunoDisliler / repository
Desenvolvendo minha primeira API utilizando a arquitetura MSC (model-service-controller) para um projeto da Trybe. A API construída é um sistema de gerenciamento de vendas no formato dropshipping em que é possível criar, visualizar, deletar e atualizar produtos e vendas, utilizando o banco de dados MySQL para a gestão de dados. Além disso, a API é RESTful. Dentre as tecnologias utilizadas para o desenvolvimento estão presentes: - Express: Framework utilizado com Node que facilita o desenvolvimento de aplicações Back-End utilizando a linguagem Javascript. - MySQL: Gestão de Dados - Postman: API Client que facilita a criação, compartilhamento, testes e documentações de APIs. - Bibliotecas externas do pacote npm (nodemon, express-rescue, joi) - Docker: Criação e Administração de ambiente isolado - Testes utilizando TDD realizados com Mocha, Chai e Sinon
Desenvolver sua primeira API utilizando a arquitetura MSC (model-service-controller)!
A API a ser construída é um sistema de gerenciamento de vendas no formato dropshipping em que será possível criar, visualizar, deletar e atualizar produtos e vendas. Você deverá utilizar o banco de dados MySQL para a gestão de dados. Além disso, a API deve ser RESTful.
O banco terá três tabelas:
products, com os atributos id e name;sales, com os atributos id e date;sales_products, com os atributos sale_id, product_id e quantity;A tabela products tem o seguinte formato: (O id será gerado automaticamente)
A tabela sales tem o seguinte formato: (O id e date são gerados automaticamente)
A tabela sales_products, é a tabela que faz o relacionamento N:N entre products e sales e tem o seguinte formato: (O produto e a venda são deletados automaticamente)
:warning:️ Em caso de dúvidas, consulte os conteúdos:
npm run migration
npm run seed
npm start
npm run debug
npm run test:mocha
npm run lint
/products) e (/products/:id);/products, todos os produtos devem ser retornados;/products/:id, apenas o produto com o id presente na URL deve ser retornado;id;[Será validado que é possível listar todos os produtos]
200: [
{
"id": 1,
"name": "Martelo de Thor",
},
{
"id": 2,
"name": "Traje de encolhimento",
}
/* ... */
]
[Será validado que não é possível listar um produto que não existe]
404: { "message": "Product not found" }
[Será validado que é possível listar um produto específico com sucesso]
200: {
"id": 1,
"name": "Martelo de Thor",
}
tests/unit, como é descrito em Para escrever seus próprios arquivos de teste;model devem fazer mock do banco de dados obrigatóriamente;MYSQL em sua máquina. Para rodar seus teste utilize npm run test:mocha;models, services e controllers é maior ou igual a 5%. Ou seja, cada uma das camadas tem de ter, ao menos, 5% de cobertura de testes.]/products);products do banco de dados; {
"name": "ProdutoX"
}
201: {
"id": 4,
"name": "ProdutoX"
}
/products);[Será validado que não é possível realizar operações em um produto sem o campo name]
name, o resultado retornado deverá ser conforme exibido abaixo, com um status http 400 : { "message": "\"name\" is required" }
[Será validado que não é possível realizar operações em um produto com o campo name menor que 5 caracteres]
name com pelo menos 5 caracteres, o resultado retornado deverá ser conforme exibido abaixo, com um status http 422 { "message": "\"name\" length must be at least 5 characters long" }
tests/unit, como é descrito em Para escrever seus próprios arquivos de teste;model devem fazer mock do banco de dados obrigatóriamente;MYSQL em sua máquina. Para rodar seus teste utilize npm run test:mocha;models, services e controllers é maior ou igual a 10%. Ou seja, cada uma das camadas tem de ter, ao menos, 10% de cobertura de testes.]/sales);sales e sales_products do banco de dados; [
{
"productId": 1,
"quantity":1
},
{
"productId": 2,
"quantity":5
}
]
[Será validado que não é possível realizar operações em uma venda sem o campo productId]
productId, o resultado retornado deverá ser conforme exibido abaixo, com um status http 400: { "message": "\"productId\" is required" }
[Será validado que não é possível realizar operações em uma venda sem o campo quantity]
quantity, o resultado retornado deverá ser conforme exibido abaixo, com um status http 400 : { "message": "\"quantity\" is required" }
[Será validado que não é possível realizar operações em uma venda com o campo quantity menor ou igual a 0 (Zero)]
quantity seja menor ou igual a zero, o resultado retornado deverá ser conforme exibido abaixo, com um status http 422 { "message": "\"quantity\" must be greater than or equal to 1" }
[Será validado que não é possível realizar operações em uma venda com o campo productId inexistente, em uma requisição com um único item]
productId do item da requisição não existir no banco de dados, o resultado retornado deverá ser conforme exibido abaixo, com um status http 404 { "message": "Product not found" }
[Será validado que não é possível realizar operações em uma venda com o campo productId inexistente, em uma requisição com vários items]
productId não existe no banco de dados, o resultado retornado deverá ser conforme exibido abaixo, com um status http 404 { "message": "Product not found" }
[Será validado que é possível cadastrar uma venda com sucesso]
201: {
"id": 3,
"itemsSold": [
{
"productId": 1,
"quantity":1
},
{
"productId": 2,
"quantity":5
}
]
}
💬 Em caso de dúvidas, lembre-se de consultar a seção Dicas e Diagrama ER, Entidades e Scripts
tests/unit, como é descrito em Para escrever seus próprios arquivos de teste;model devem fazer mock do banco de dados obrigatóriamente;MYSQL em sua máquina. Para rodar seus teste utilize npm run test:mocha;models, services e controllers é maior ou igual a 15%. Ou seja, cada uma das camadas tem de ter, ao menos, 15% de cobertura de testes.]/sales) e (/sales/:id);/sales, todas as vendas devem ser retornadas;/sales/:id, apenas a venda com o id presente na URL deve ser retornada;saleId, em caso de empate, ordernar também de forma crescente pelo campo productId;200: [
{
"saleId": 1,
"date": "2021-09-09T04:54:
Selected from shared topics, language and repository description—not editorial ratings.
tainna-andryelli /
Desenvolvendo minha primeira página dinãmica com JavaScript
1Lilith-dev /
Nesse repositório foi feito clássico jogo da cobrinha usando HTML, CSS e JavaScript. Foi minha primeira experiência desenvolvendo este projeto e foi uma ótima oportunidade para praticar lógica de programação, fiz seguindo um tutorial achado no Youtube.
viniciussmiranda /
Organo é uma aplicação web desenvolvida como parte do curso "React: Desenvolvendo com JavaScript", oferecido no programa Oracle ONE Next Education G7. O projeto marca minha primeira experiência com React e tem como objetivo gerenciar organizações de forma visual e intuitiva.
mateuscoelhoo /
Projeto que consiste na criação de uma pokedex(enciclopédia sobre pokemons) com sliders, desenvolvido junto ao evento MapaDev Week, realizado pelo canal do youtube Dev em Dobro. Para o desenvolvimento deste projeto, foram utilizados o HTML, CSS e JavaScript. Foi a minha primeira experiência desenvolvendo com JavaScript, ele foi utilizado para dar a função de avançar e voltar nos botões do site.