Code Monkey home page Code Monkey logo

store-maneger-api-rest-mysql's Introduction

Store Manager

Neste projeto, foi desenvolvida uma API de gerenciamento de vendas utilizando a arquitetura MSC (Model-Service-Controller) e seguindo os princípios do REST. A API foi construída com o objetivo de possibilitar a criação, visualização, atualização e exclusão de produtos e vendas em um sistema de dropshipping.

A aplicação utiliza um banco de dados MySQL para a gestão dos dados. O desenvolvimento da API seguiu a normalização de dados, garantindo a integridade e a consistência das informações armazenadas no banco.

Em resumo, o projeto Store Manager consiste em uma API de gerenciamento de vendas baseada na arquitetura MSC e seguindo os princípios do REST. Com a utilização do banco de dados MySQL, é possível criar, visualizar, atualizar e excluir produtos e vendas, proporcionando uma plataforma robusta e escalável para o gerenciamento eficiente das operações de dropshipping.

Funcionalidades

  • Endpoints que irão cadastrar, listar, pesquisar, editar e excluir produtos
  • Endpoints que irão cadastrar, listar, pesquisar, editar e excluir vendas

Tecnologias utilizadas

  • APIs REST
  • MSC Architeture
  • Express
  • C.R.U.D
  • Middlewares
  • Node.js

Banco de dados

Diagrama e Tabelas

Diagrama de Entidade-Relacionamento

Tabelas

O banco terá três tabelas:

  • A tabela products, com os atributos id e name;
  • A tabela sales, com os atributos id e date;
  • A tabela sales_products, com os atributos sale_id, product_id e quantity;
  • O script de criação do banco de dados pode ser visto aqui;
  • O script que popula o banco de dados pode ser visto aqui;

Documentação da API

A API segue os princípios do REST, fornecendo uma interface uniforme e intuitiva por meio de endpoints que representam as entidades e suas operações. Isso resulta em um sistema eficiente e escalável para o gerenciamento de vendas no modelo dropshipping.

Visão geral
Endpoint Método HTTP Descrição
/products GET Todos os produtos devem ser retornados
/products/:id GET Apenas o produto com o id presente na URL deve ser retornado
/products POST Cria um produto
/products/:id PUT Atualizar um produto
/products/:id DELETE Deleta um produto
/sales GET Todos os produtos devem ser retornados
/sales GET Apenas a venda com o id presente na URL deve ser retornada;
/sales POST Validar e cadastrar vendas
/sales/:id PUT Atualizar uma venda
/sales/:id DELETE Deleta uma venda

Requisitos

1. Crie endpoints para listar produtos 2. Desenvolva testes que cubram no mínimo 5% das camadas da sua aplicação 3. Crie endpoint para cadastrar produtos 4. Crie validações para produtos 5. Desenvolva testes que cubram no mínimo 10% das camadas da sua aplicação 6. Crie endpoint para validar e cadastrar vendas 7. Desenvolva testes que cubram no mínimo 15% das camadas da sua aplicação 8. Crie endpoints para listar vendas 9. Desenvolva testes que cubram no mínimo 20% das camadas da sua aplicação 10. Crie endpoint para atualizar um produto 11. Desenvolva testes que cubram no mínimo 25% das camadas da sua aplicação

Instalação do projeto localmente

Para instalar e executar o projeto localmente, você precisa ter o Docker instalado na sua máquina. Depois, siga os seguintes passos:

  1. Clone o repositório do GitHub:
git clone [email protected]:brenolg/Store-Maneger-API-REST-MySql.git

Rode os serviços node e db:

docker-compose up -d

Rode o container one_for_all via CLI ou abri-lo no VS Code

docker exec -it store_manager bash

Instale as dependências usando

npm install
  • Execute a aplicação com npm run debug
  • Execute as rotas como preferir

Agradecimentos

Este projeto foi desenvolvido como parte do curso de Desenvolvimento de Software da Trybe. Agradeço à Trybe pela oportunidade de aprender e praticar SQL e outras tecnologias.

store-maneger-api-rest-mysql's People

Contributors

brenolg avatar trybe-tech-ops avatar

Stargazers

 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.