{"id":22746494,"url":"https://github.com/jonathanprojetos/store-manager","last_synced_at":"2026-04-11T03:33:43.155Z","repository":{"id":144527517,"uuid":"532292906","full_name":"JonathanProjetos/Store-Manager","owner":"JonathanProjetos","description":"Aplicação RESTful utilizando arquitetura MSC.","archived":false,"fork":false,"pushed_at":"2022-10-08T14:49:17.000Z","size":299,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-09T03:02:05.664Z","etag":null,"topics":["docker","docker-compose","dotenv","express","express-async-errors","joi-validation","mocha-chai","msc","mysql2","nodejs","nodemon","sinon"],"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/JonathanProjetos.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-03T15:04:24.000Z","updated_at":"2022-10-09T00:37:40.000Z","dependencies_parsed_at":"2024-06-06T23:34:24.644Z","dependency_job_id":null,"html_url":"https://github.com/JonathanProjetos/Store-Manager","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/JonathanProjetos/Store-Manager","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JonathanProjetos%2FStore-Manager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JonathanProjetos%2FStore-Manager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JonathanProjetos%2FStore-Manager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JonathanProjetos%2FStore-Manager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JonathanProjetos","download_url":"https://codeload.github.com/JonathanProjetos/Store-Manager/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JonathanProjetos%2FStore-Manager/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31668047,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-10T17:19:37.612Z","status":"online","status_checked_at":"2026-04-11T02:00:05.776Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["docker","docker-compose","dotenv","express","express-async-errors","joi-validation","mocha-chai","msc","mysql2","nodejs","nodemon","sinon"],"created_at":"2024-12-11T02:13:29.750Z","updated_at":"2026-04-11T03:33:43.124Z","avatar_url":"https://github.com/JonathanProjetos.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Store-Manager\n\n# Contexto\nAPI RESTful utilizando arquitetura MSC. A pessoa usuária, independente de cadastro, deve conseguir, adicionar, ler, deletar e atualizar produtos. Enviar vendas para o sistema e essas vendas devem validar se o produto em questão existe, também é possível ler, deletar e atualizar vendas;\n\n## Importante:\n\n- Para consumo da aplicação, será necessário o uso de um ‘software’ de envio de requisições REST como:\n- [Insomia](https://insomnia.rest/)\n- [Postman](https://www.postman.com/)\n- [Httpie](https://httpie.io/)\n\n## Mais detalhes sobre a rota Products\n\n#### Verbo GET : /products\n\n##### Esperado\n\n ```\nA rota traz todos os produtos cadastrados no banco.\n\n    json\n      [\n        {\n          \"id\": 1,\n          \"name\": \"Martelo de Thor\",\n        },\n        {\n          \"id\": 2,\n          \"name\": \"Traje de encolhimento\",\n        }\n        /* ... */\n      ]\n   ```\n    \n#### Verbo Post : /products\n\n##### Esperado\n    ```json\n    \n        {\n          \"name\": \"Smartphone\",\n        }\n \n    ```\n    \n#### Verbo Get : /products/search?q=\"palavra-Chave-aqui\"\n\n##### Esperado\n```\nA rota espera fragmentos de palavras ou a palavra que vincule com o nome de algum produto existente no banco, caso compatível ele retornará o dado do banco.\n\n```\n\n\n#### Verbo Get : /products/:id\n\n##### Esperado\n\n```\nA rota espera receber um id para a busca do produto vinculado a este id.\n   json\n       {\n          \"id\": 2,\n          \"name\": \"Traje de encolhimento\",\n       }\n\n```\n\n#### Verbo Put : /products/:id\n\n##### Esperado\n```\nO verbo put espera rebeber um id de um produto existente no banco e um body. Os dados serão utilizados para atualizar o produto cadastrado no banco.\n    json\n        \n       {\n          \"name\": \"Smartphone\",\n       }\n\n```\n\n#### Verbo Delete : /products/:id\n\n##### Esperado\n```\nA rota espera receber um id.\n\n```\n## Mais detalhes sobre a rota Sales\n\n#### Verbo GET : /sales\n\n##### Esperado\n```\nA rota traz todas as vendas cadastrados no banco.\n json\n  [\n     {\n\t\"saleId\": 1,\n\t\"date\": \"2022-08-14T10:08:20.000Z\",\n\t\"productId\": 1,\n\t\"quantity\": 5\n     },\n     {\n\t\"saleId\": 2,\n\t\"date\": \"2022-08-14T10:08:20.000Z\",\n\t\"productId\": 3,\n\t\"quantity\": 15\n     }\n    */ ...../*\n  ]\n\n```\n\n#### verbo Post : /sales\n\n##### Esperado\n```\nA rota post espera um body com este formato para cadastrar uma venda \n json\n  [\n    {\n      \"productId\": 1,\n      \"quantity\":1\n    },\n    {\n      \"productId\": 1,\n      \"quantity\":2\n    }\n  ]\n  \nA rota responde, caso bem sucedido um objeto neste formato:\n\n json\n     {\n\t\"id\": 3,\n    \"itemsSold\": [\n\t  {\n    \t     \"productId\": 1,\n\t     \"quantity\": 1\n\t  },\n\t  {\n\t     \"productId\": 1,\n\t     \"quantity\": 2\n\t  }\n    \t]\n      }\n```\n#### Verbo Get : /sales/:id\n\n##### Esperado\n\n```\nA rota espera receber um id para a busca de todas as vendas vinculado a este id.\n   json\n      [\n\t{\n  \t   \"date\": \"2022-08-14T10:08:20.000Z\",\n\t   \"productId\": 1,\n\t   \"quantity\": 5\n\t}\n      ]\n\n```\n#### Verbo Put : /sales/:id\n\n##### Esperado\n```\nO verbo put espera rebeber um id de um produto existente no banco e um body. Os dados serão utilizados para atualizar o produto cadastrado no banco.\n json     \n  [\n    {\n      \"productId\": 1,\n      \"quantity\":10\n    },\n    {\n      \"productId\": 2,\n      \"quantity\":50\n    }\n  ]\n  \n A rota responde, caso bem sucedido um objeto neste formato:\n \n      {\n\t\"id\": 3,\n    \"itemsSold\": [\n\t  {\n    \t     \"productId\": 1,\n\t     \"quantity\": 1\n\t  },\n\t  {\n\t     \"productId\": 1,\n\t     \"quantity\": 2\n\t  }\n    \t]\n      }\n```\n#### Verbo Delete : /sales/:id\n\n##### Esperado\n\n```\nA rota espera receber um id para exclusão de uma venda caso ela exista.\n  \n```\n\n## Técnologias usadas\n\n\u003e Desenvolvido em nodejs.\n\n\u003e Drive : Mysql\n\n\u003e Framework utilizado: Express.\n\n\u003e Libs: Joi, nodemon, express-async-errors, mysql2, eslint, sinon, mocha, chai, dotenv, body-parser\n\n## Instalando Dependências\n\n\u003e Node\n```bash\ncd Store-Manager/\nnpm install\n``` \n\u003e Docker\n```\ncd Store-Manager/\nnpm install\ndocker-compose up -d\n```\n## Rodando a aplicação\n```\ncd Store-Manager/\nnpm run debug\n```\n\n## Aviso Importante \nCaso queira roda a aplicação via docker deverá ter o docker instalado no dispositivo, caso não esteja instalado você pode encontra como instalar neste [link](https://docs.docker.com/engine/install/ubuntu/) site oficial \n\n## Executando Testes\n\n* Para rodar todos os testes:\n\n\u003e Test\n```bash\ncd Store-Manager/ \nnpm test\n``` \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjonathanprojetos%2Fstore-manager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjonathanprojetos%2Fstore-manager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjonathanprojetos%2Fstore-manager/lists"}