{"id":21647764,"url":"https://github.com/lionelsu/store-manager-api","last_synced_at":"2026-04-11T10:32:25.584Z","repository":{"id":197697456,"uuid":"692222558","full_name":"lionelsu/store-manager-api","owner":"lionelsu","description":"RESTful API offering comprehensive CRUD functionality for sales management, specifically drop shipping. Developed with TDD methodology.","archived":false,"fork":false,"pushed_at":"2023-10-07T19:06:52.000Z","size":346,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-03T14:30:09.355Z","etag":null,"topics":["api","docker","docker-compose","javascript","mocha","mysql","nodejs","openapi3","postman","swagger","swagger-ui","tdd"],"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/lionelsu.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":"2023-09-15T21:04:38.000Z","updated_at":"2023-12-02T18:02:08.000Z","dependencies_parsed_at":"2024-11-25T09:16:34.330Z","dependency_job_id":null,"html_url":"https://github.com/lionelsu/store-manager-api","commit_stats":null,"previous_names":["lionelsu/store-manager-api"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/lionelsu/store-manager-api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lionelsu%2Fstore-manager-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lionelsu%2Fstore-manager-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lionelsu%2Fstore-manager-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lionelsu%2Fstore-manager-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lionelsu","download_url":"https://codeload.github.com/lionelsu/store-manager-api/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lionelsu%2Fstore-manager-api/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31677813,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-11T08:18:19.405Z","status":"ssl_error","status_checked_at":"2026-04-11T08:17:08.892Z","response_time":54,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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","docker","docker-compose","javascript","mocha","mysql","nodejs","openapi3","postman","swagger","swagger-ui","tdd"],"created_at":"2024-11-25T06:51:29.547Z","updated_at":"2026-04-11T10:32:25.533Z","avatar_url":"https://github.com/lionelsu.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!-- Este é um comentário: omitir os tópidos redundantes --\u003e\n\u003c!--  **| [Brazil](README.md) | [asdf](README_en.md) |** --\u003e\n\n# Store Manager\n\n[Documentação da API no Postman](https://documenter.getpostman.com/view/30159355/2s9YJgTLHB)\n\nO Store Manager API é uma solução completa de gerenciamento de vendas por drop shipping. Esta API oferece operações de CRUD (Create, Read, Update, Delete) para facilitar o gerenciamento de vendas. Desenvolvida com foco na qualidade e seguindo a metodologia TDD (Test-Driven Development), a API adota uma arquitetura em camadas consistente com Model, Service e Controller (MSC).\n\n\u003cdetails\u003e\n\n\u003csummary\u003eFerramentas Utilizadas\u003c/summary\u003e\n\n- **Tecnologias Principais:**\n  - Node.js\n  - Express.js\n  - MySQL Server\n\n- **Testes:**\n  - Mocha\n  - Chai\n  - Sinon\n\n- **Documentação:**\n  - Swagger\n  - Postman\n\n\u003c/details\u003e\n\n## Pré-Requisitos\n\nUtilize o Docker:\n\n- [Docker \u0026 Docker Compose](https://docs.docker.com/compose/)\n\n\u003c!-- ## Features --\u003e\n## Instalação\n\n1. Clonar o Repositório\n\n    Primeiro, copie ou clone este repositório para o seu sistema local usando o Git:\n\n    ```bash\n    git clone git@github.com:lionelsu/store-manager-api.git \u0026\u0026 cd store-manager-api\n    ```\n\n2. Iniciar o Contêiner Docker\n\n    Utilize o Docker Compose para iniciar o contêiner do Store Manager:\n\n    ```bash\n    docker compose up -d\n    ```\n\n3. Acesse a documentação da API no navegador:\n\n    ```http\n    http://127.0.0.1:3001/v1/docs/\n    ```\n\n## Uso\n\nPara interagir com o Store Manager, você pode usar os seguintes comandos:\n\nVisualização de Logs\n\n```bash\ndocker logs -n 10 -f store_manager\n```\n\nLinha de Comando Interativa, usada para **[testar](#testes)** a aplicação\n\n```bash\ndocker exec -it store_manager bash\n```\n\nResetar o Banco de Dados (deve ser executado dentro da **[linha de comando interativa](#uso)**)\n\n```bash\nnpm run db:reset\n```\n\n## Rotas da API\n\n**Produtos:**\n\n- **`POST /products`**: Cadastra um novo produto.\n- **`GET /products`**: Retorna todos os produtos cadastrados.\n- **`GET /products/:id`**: Retorna um produto específico pelo ID.\n- **`GET /products/search`**: Retorna produtos com base na consulta de nome.\n- **`PUT /products/:id`**: Atualiza um produto pelo ID.\n- **`DELETE /products/:id`**: Exclui um produto pelo ID.\n\n**Vendas:**\n\n- **`POST /sales`**: Cadastra uma nova venda.\n- **`GET /sales`**: Retorna todas as vendas cadastradas.\n- **`GET /sales/:id`**: Retorna uma venda específica pelo ID.\n- **`PUT /sales/:saleId/products/:productId/quantity`**: Atualiza a quantidade de um produto em uma venda.\n- **`DELETE /sales/:id`**: Exclui uma venda pelo ID.\n\n\u003cdetails\u003e\n\n  \u003csummary\u003eConfiguração\u003c/summary\u003e\n\n  Variáveis de ambiente dentro do container:\n\n  ```mysql\n  MYSQL_USER: root\n  MYSQL_PASSWORD: password\n  MYSQL_HOSTNAME: db\n  MYSQL_PORT: 3306\n  PORT: 3001\n  ```\n\n\u003c/details\u003e\n\n## Testes\n\n- Dentro da **[linha de comando interativa](#uso)**, você pode executar os seguintes testes:\n\n  - Testes Unitários:\n\n  ```bash\n  npm run test:mocha\n  ```\n\n  - Cobertura de Testes:\n\n  ```bash\n  npm run test:coverage\n  ```\n\n  - Testes de Mutação:\n\n  ```bash\n  npm run test:mutation\n  ```\n\n## Habilidades desenvolvidas\n\nUsei o `Node.js` com o `Express.js` como base da minha aplicação, permitindo criar facilmente endpoints `HTTP` para atender às necessidades do sistema.\n\nO banco de dados `MySQL Server` foi escolhido para armazenar dados relacionados a produtos, vendas e outros elementos cruciais do sistema.\n\nA qualidade do código foi garantida por meio de testes rigorosos usando `Mocha`, `Chai` e `Sinon`. Esses testes avaliaram minuciosamente os endpoints, serviços e funções para garantir que tudo funcionasse corretamente.\n\nPara documentar a `API`, utilizei o `Swagger`, que inclui informações sobre rotas, parâmetros e exemplos práticos.\n\nTambém disponibilizei uma coleção no `Postman` para facilitar testes e interações com a `API`.\n\nCom essas etapas concluídas, estou confiante na entrega de uma `API` sólida e funcional, pronta para atender às necessidades dos usuários.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flionelsu%2Fstore-manager-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flionelsu%2Fstore-manager-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flionelsu%2Fstore-manager-api/lists"}