{"id":21862099,"url":"https://github.com/igorbrizack/projetostoremanager","last_synced_at":"2026-04-02T04:48:09.936Z","repository":{"id":115372978,"uuid":"536219134","full_name":"IgorBrizack/ProjetoStoreManager","owner":"IgorBrizack","description":"Store Manager MSC API ","archived":false,"fork":false,"pushed_at":"2022-09-13T18:13:52.000Z","size":266,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-26T15:11:31.378Z","etag":null,"topics":["api","backend","javascript","msc-project","nodejs","test"],"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/IgorBrizack.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-09-13T16:40:39.000Z","updated_at":"2022-09-13T17:19:34.000Z","dependencies_parsed_at":null,"dependency_job_id":"29d55cf2-c9d2-4c1d-8dd2-538d5e769104","html_url":"https://github.com/IgorBrizack/ProjetoStoreManager","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/IgorBrizack%2FProjetoStoreManager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IgorBrizack%2FProjetoStoreManager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IgorBrizack%2FProjetoStoreManager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IgorBrizack%2FProjetoStoreManager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/IgorBrizack","download_url":"https://codeload.github.com/IgorBrizack/ProjetoStoreManager/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244861266,"owners_count":20522577,"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":["api","backend","javascript","msc-project","nodejs","test"],"created_at":"2024-11-28T03:13:49.332Z","updated_at":"2025-12-30T20:50:41.622Z","avatar_url":"https://github.com/IgorBrizack.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Projeto Store Manager \n\n## Sobre:\n\nO projeto Store Manager consiste na criação de uma API em conexão com um banco de dados SQL. Durante o desenvolvimento foram necessário a criação de uma CRUD para interagir com o banco de dados e a nossa API, aplicação do MSC (Model, Service e Controller) assim como foi necessário desenvolver testes unitários que cobrisse no minimo 60% da nossa aplicação.\n\n## 📋 Execute o projeto em sua máquina\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003cstrong\u003e🐳 Rodando no Docker vs Localmente\u003c/strong\u003e\u003c/summary\u003e\n\n### 👉 Com Docker\n\n**:warning: Antes de começar, seu docker-compose precisa estar na versão 1.29 ou superior. [Veja aqui](https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-compose-on-ubuntu-20-04-pt) ou [na documentação](https://docs.docker.com/compose/install/) como instalá-lo. No primeiro artigo, você pode substituir onde está com `1.26.0` por `1.29.2`.**\n\n\u003e :information_source: Rode os serviços `node` e `db` com o comando `docker-compose up -d`.\n\n- Lembre-se de parar o `mysql` se estiver usando localmente na porta padrão (`3306`), ou adapte, caso queria fazer uso da aplicação em containers;\n- Esses serviços irão inicializar um container chamado `store_manager` e outro chamado `store_manager_db`;\n- A partir daqui você pode rodar o container `store_manager` via CLI ou abri-lo no VS Code.\n\n\u003e :information_source: Opção 1: Use o comando `docker-compose run node npm test`, ou para acessar o container e executar lá:\n\n\u003e :information_source: Opção 2: Use o comando `docker exec -it store_manager bash` e sigas passos abaixo.\n\n- Ele te dará acesso ao terminal interativo do container criado pelo compose, que está rodando em segundo plano.\n\n\u003e :information_source: Instale as dependências [**Caso existam**] com `npm install`\n\n- **:warning: Atenção:** Caso opte por utilizar o Docker, **TODOS** os comandos disponíveis no `package.json` (npm start, npm test, npm run dev, ...) devem ser executados **DENTRO** do container, ou seja, no terminal que aparece após a execução do comando `docker exec` citado acima.\n\n- **:warning: Atenção:** O **git** dentro do container não vem configurado com suas credenciais. Ou faça os commits fora do container, ou configure as suas credenciais do git dentro do container.\n\n- **:warning: Atenção:** Não rode o comando npm audit fix! Ele atualiza várias dependências do projeto, e essa atualização gera conflitos com o avaliador.\n\n- **:warning: Atenção:** Se você se deparar com o erro abaixo, quer dizer que sua aplicação já esta utilizando a `porta 3000`, seja com outro processo do Node.js (que você pode parar com o comando `killall node`) ou algum container! Neste caso você pode parar o container com o comando `docker stop \u003cnome-do-container\u003e`.\n\n\n- ✨ **Dica:** Antes de iniciar qualquer coisa, observe os containers que estão em execução em sua máquina. Para ver os containers em execução basta usar o comando `docker container ls`, caso queira parar o container basta usar o comando `docker stop nomeContainer` e se quiser parar e excluir os containers, basta executar o comando `docker-compose down`\n\n- ✨ **Dica:** A extensão `Remote - Containers` (que estará na seção de extensões recomendadas do VS Code) é indicada para que você possa desenvolver sua aplicação no container Docker direto no VS Code, como você faz com seus arquivos locais.\n\n\n \u003cbr /\u003e\n\n### 👉 Sem Docker\n\n\u003e :information_source: Instale as dependências [**Caso existam**] com `npm install`\n\n- **:warning: Atenção:** Não rode o comando npm audit fix! Ele atualiza várias dependências do projeto, e essa atualização gera conflitos com o avaliador.\n\n- **:warning: Atenção:** Não esqueça de renomear/configurar o arquivo `.env.example` para os testes locais funcionarem.\n- **:warning: Atenção:** Para rodar o projeto desta forma, **obrigatoriamente** você deve ter o `Node.js` instalado em seu computador.\n- **:warning: Atenção:** A versão do `Node.js` e `NPM` a ser utilizada é `\"node\": \"\u003e=16.0.0\"` e `\"npm\": \"\u003e=7.0.0\"`, como descrito a chave `engines` no arquivo `package.json`. Idealmente deve-se utilizar o Node.js na `versão 16.14`, a versão na que esse projeto foi testado.\n\n  \u003cbr/\u003e\n\n\u003c/details\u003e\n  \n## 👨🏻‍💻 Habilidades\n\n- Criar uma aplicação usando o Express.js;\n- Criar uma API RESTful utilizando a arquitetura MSC (Model-Service-Controller);\n- Implementar testes unitários com Mocha, Chai e Sinon.\n\n\n## 🛠️ Ferramentas \u0026 Metodologias Utilizadas\n\n- [Node.js](https://nodejs.org/en/);\n- [Express.js](https://expressjs.com/);\n- [Mocha](https://mochajs.org/);\n- [Chai](https://www.chaijs.com/);\n- [Sinon.js](https://sinonjs.org/);\n- [sinon-chai](https://www.chaijs.com/plugins/sinon-chai/);\n- [MYSQL](https://www.mysql.com/);\n- [mysql2](https://www.npmjs.com/package/mysql2);\n- [Joi](https://joi.dev/api/?v=17.6.0);\n- [Docker](https://www.docker.com/);\n- JavaScript ES6+;\n- TDD (Test Driven Development) - Desenvolvimento Orientado por Testes.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Figorbrizack%2Fprojetostoremanager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Figorbrizack%2Fprojetostoremanager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Figorbrizack%2Fprojetostoremanager/lists"}