{"id":21930616,"url":"https://github.com/tonyycruz/store_manager","last_synced_at":"2026-04-09T20:02:29.797Z","repository":{"id":103257739,"uuid":"528656411","full_name":"TonyyCruz/store_manager","owner":"TonyyCruz","description":"Desenvolvimento de uma API de vendas utilizando a arquitetura MSC","archived":false,"fork":false,"pushed_at":"2022-10-16T20:20:28.000Z","size":431,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-27T12:14:12.663Z","etag":null,"topics":["commit-conventions","express","mysql","mysql2","nodejs"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TonyyCruz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-08-25T01:47:58.000Z","updated_at":"2023-02-11T14:48:06.000Z","dependencies_parsed_at":null,"dependency_job_id":"a351f214-bed3-4397-af18-d09a0d133da5","html_url":"https://github.com/TonyyCruz/store_manager","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TonyyCruz%2Fstore_manager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TonyyCruz%2Fstore_manager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TonyyCruz%2Fstore_manager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TonyyCruz%2Fstore_manager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TonyyCruz","download_url":"https://codeload.github.com/TonyyCruz/store_manager/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244959452,"owners_count":20538626,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["commit-conventions","express","mysql","mysql2","nodejs"],"created_at":"2024-11-28T23:10:36.109Z","updated_at":"2026-04-09T20:02:29.739Z","avatar_url":"https://github.com/TonyyCruz.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003eProjeto Store Manager\u003c/h1\u003e\n\u003cp align=\"center\"\u003eDesenvolvimento de uma API de vendas utilizando a arquitetura MSC (model-service-controller)\u003c/p\u003e\n\n---\n\n\u003cbr\u003e\n\n\u003ch3 align=\"center\"\u003eDiagrama DER (Diagrama de Entidade-Relacionamento)\u003c/h3\u003e\n\n\u003cimg src=\"derStoreManager.png\"\u003e\n\n---\n\n\u003cbr\u003e\n\n\u003ch2 align=\"center\"\u003e📃 Sobre o Projeto\u003c/h2\u003e\n\n\u003cp align=\"center\"\u003eA API desenvolvida é um sistema de gerenciamento de vendas no formato dropshipping em que será possível criar, visualizar, deletar e atualizar produtos e vendas. A API é \u003cb\u003eRESTful\u003c/b\u003e e a gestão de dados é feita com o \u003cb\u003eMySQL\u003c/b\u003e.\n\u003c/p\u003e\n\n---\n\n\u003ch2 align=\"center\"\u003eRotas utilizáveis\u003c/h2\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003cstrong\u003eVer rotas\u003c/strong\u003e\u003c/summary\u003e\u003cbr /\u003e\n  \n  - POST `/products` para cadastrar produtos. Utilize um body nesse formato:\n\n```jsx\n  {\n    \"name\": \"ProductName\"\n  }\n```\n  \n---\n  \n- POST `/sales` para cadastrar vendas. Utilize um body nesse formato:\n\n```jsx\n  [\n    {\n      \"productId\": 1,\n      \"quantity\":3\n    },\n  ]\n```\n  \n---\n\n- GET `/products` ou `/sales` para receber todos os produtos ou vendas.\n\n---\n\n- GET `/products/:id` ou `/sales/:id` para receber produtos ou vendas de acordo com o id.\n\n---\n\n- GET `/products/search?q=\u003cbusca\u003e` para buscar produto por palavra chave.\n\n---\n\n- DELETE `/products/:id` ou `/sales/:id` para deletar produtos ou vendas de acordo com o id.\n\n---\n\n- PUT `/products/:id` para atualizar o nome do produto. Utilize um body nesse formato:\n\n```jsx\n  {\n    \"name\": \"ProductName\"\n  }\n```\n---\n\n- PUT `/sales/:id` para atualizar a venda. Utilize um body nesse formato:\n\n```jsx\n  [\n    {\n      \"productId\": 1,\n      \"quantity\":2\n    },\n  ]\n```\n\n\u003c/details\u003e\n\n\u003cbr\u003e\n\n---\n\n### 🛠 Tecnologias e Bibliotecas utilizadas no desenvolvimento do projeto\n\n- **[Node.js](https://nodejs.org/en/)**\n\n- **[MySQL](https://www.mysql.com/products/workbench/)**\n\n- **[Mysql2](https://www.npmjs.com/package/mysql2)**\n\n- **[Express](http://expressjs.com/pt-br/)**\n\n- **[Nodemon](https://www.npmjs.com/package/nodemon)**\n\n\n---\n\n### 🚀 Como executar o projeto\n\n_Pré-requisitos_\n\nAntes de começar, você vai precisar ter instalado em sua máquina as seguintes ferramentas:\n[Git](https://git-scm.com),\n[Node.js](https://nodejs.org/en/).\n\nÉ recomendado utilizar algum cliente HTTP, como [Postman](https://www.postman.com/) ou o [Insomnia](https://insomnia.rest/download).\n\nAlém disto é bom ter um editor para trabalhar com o código como [VSCode](https://code.visualstudio.com/)\n\n---\n\n_Clone o repositorio_\n\n```jsx\ngit clone git@github.com:TonyyCruz/store_manager.git\n```\n\n---\n\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003cstrong\u003e:whale: Rodando no Docker\u003c/strong\u003e\u003c/summary\u003e\u003cbr /\u003e\n  \n  ## Com Docker\n \n \n_Rode o serviço `node` com o comando_\n\n```jsx\ndocker-compose up -d\n```\n\n- Esse serviço irá inicializar dois containers chamados `store_manager e store_manager_db`, respectivamente.\n  - A partir daqui você pode rodar o container via CLI ou abri-lo no VS Code.\n\n_Via CLI use o comando_\n```jsx\ndocker exec -it store_manager bash\n```\n- Ele te dará acesso ao terminal interativo do container store_manager(node) criado pelo compose, que está rodando em segundo plano.\n\n_Instale as dependências `dentro do container` com_\n\n```jsx\nnpm install\n```\n\n⚠️Atenção: Caso opte por utilizar o Docker, TODOS os scripts disponíveis no package.json devem ser executados DENTRO do container, ou seja, no terminal que aparece após a execução do comando docker exec.\n  \n  \u003c/details\u003e\n  \n---\n  \n\u003cdetails\u003e\n  \u003csummary\u003e\u003cstrong\u003e:computer: Rodando Localmente\u003c/strong\u003e\u003c/summary\u003e\u003cbr /\u003e\n \n _Instale as dependências com o comando_\n \n ```jsx\nnpm install\n```\n- Para rodar o projeto desta forma, **obrigatoriamente** você deve ter o `node` instalado em seu computador.\n  - Recomenda-se a versão `^16`\n  \n ⚠️Atenção: Não esqueça de renomear/configurar o arquivo .env.example\n\u003c/details\u003e\n\n---\n\n\n### 💡 Scripts prontos\n\u003cdetails\u003e\n  \u003csummary\u003e\u003cstrong\u003eScripts\u003c/strong\u003e\u003c/summary\u003e\u003cbr /\u003e\n\n  - Criar o banco de dados e gerar as tabelas:\n  ```sh\n    npm run migration\n  ```\n\n  - Limpar e popular o banco de dados:\n  ```sh\n    npm run seed\n  ```\n\n  - Iniciar o servidor Node:\n  ```sh\n    npm start\n  ```\n\n  - Iniciar o servidor Node com nodemon:\n  ```sh\n    npm run dev\n  ```\n\n  - Executar os testes de unidade:\n  ```sh\n    npm run test:mocha\n  ```\n\n  \u003cbr /\u003e\n\u003c/details\u003e\n\n---\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftonyycruz%2Fstore_manager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftonyycruz%2Fstore_manager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftonyycruz%2Fstore_manager/lists"}