{"id":15170474,"url":"https://github.com/mairess/project-trybesmith","last_synced_at":"2026-02-09T12:31:31.912Z","repository":{"id":224105319,"uuid":"762417271","full_name":"mairess/project-trybesmith","owner":"mairess","description":"Trybesmith é uma loja de itens medievais no formato de api CRUD, feita com typescript, node, express, sequelize e mysql. Testada com mocha, chai e sinon, orquestrada com docker compose e documentada com swagger-ui.","archived":false,"fork":false,"pushed_at":"2024-04-14T18:53:54.000Z","size":283,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-14T07:17:28.917Z","etag":null,"topics":["bcrypt","chai","docker","express","joi","jwt","mocha","mysql","node","sequelize","sinon","swagger-ui","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/mairess.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":"2024-02-23T18:30:31.000Z","updated_at":"2024-04-15T12:39:13.000Z","dependencies_parsed_at":null,"dependency_job_id":"9473a646-8c9a-4dde-bf32-0f2f4d6157b7","html_url":"https://github.com/mairess/project-trybesmith","commit_stats":null,"previous_names":["mairess/project-trybesmith"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mairess/project-trybesmith","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mairess%2Fproject-trybesmith","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mairess%2Fproject-trybesmith/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mairess%2Fproject-trybesmith/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mairess%2Fproject-trybesmith/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mairess","download_url":"https://codeload.github.com/mairess/project-trybesmith/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mairess%2Fproject-trybesmith/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267470062,"owners_count":24092352,"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","status":"online","status_checked_at":"2025-07-28T02:00:09.689Z","response_time":68,"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":["bcrypt","chai","docker","express","joi","jwt","mocha","mysql","node","sequelize","sinon","swagger-ui","typescript"],"created_at":"2024-09-27T08:03:10.358Z","updated_at":"2026-02-09T12:31:31.871Z","avatar_url":"https://github.com/mairess.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# \u003cp align=\"center\"\u003eProjeto Trybesmith\u003c/p\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \n| Statements                  | Branches                | Functions                 | Lines                |\n| --------------------------- | ----------------------- | ------------------------- | -------------------- |\n| ![Statements](https://img.shields.io/badge/Coverage-100%25-brightgreen.svg) | ![Branches](https://img.shields.io/badge/Coverage-86.36%25-yellow.svg) | ![Functions](https://img.shields.io/badge/Coverage-100%25-brightgreen.svg) | ![Lines](https://img.shields.io/badge/Coverage-100%25-brightgreen.svg)    |\n\n\u003c/div\u003e\n\n## Contexto\n\nEste projeto consiste em uma loja de itens medievais no formato de uma API de `Node.js` com `Express`, utilizando `Typescript` e `Sequelize` seguindo o modelo `MSC`. Sendo possível cadastrar um produto, listar todos produtos, listar usuários com seus respectivos produtos através do relacionamento `1:N` e uma rota de login para obter autenticação com `JWT`. A aplicação também possui uma boa cobertura de testes, com testes de `integração` e testes `unitários`.\n\n\u003cdetails\u003e\n\n\u003csummary\u003e\u003cstrong\u003eRode o projeto localmente\u003c/strong\u003e\u003c/summary\u003e\u003cbr\u003e\n\n\u003e ⚠️ É preciso ter o [Node](https://nodejs.org/en) instalado em sua máquina.\n\u003e\n\u003c!-- \u003e ⚠️ É preciso criar um arquivo `.env` na raiz do projeto, siga o exemplo do arquivo [`env.example`](./env.example). --\u003e\n\u003e\n\n1. Clone o repositório:\n\n```BASH\ngit clone git@github.com:mairess/project-trybesmith.git\n```\n\n2. Instale as dependências:\n\n```BASH\nnpm install\n```\n\n3. Inicie o container do banco de dados:\n\n```BASH\ndocker compose up -d db\n```\n\n4. Crie o banco, rode as migrations e os seeders:\n\n```BASH\nnpm run db:reset\n```\n\n5. Inicie o servidor:\n\n```BASH\nnpm run dev\n```\n\n6. O servidor estará disponível na porta `3001`\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\n\u003csummary\u003e\u003cstrong\u003eRode o projeto com o docker\u003c/strong\u003e\u003c/summary\u003e\u003cbr\u003e\n\n\u003e ⚠️ É preciso ter o [Docker](https://www.docker.com/get-started/) instalado em sua máquina.\n\n1. Clone o repositório:\n\n```BASH\ngit clone git@github.com:mairess/project-trybesmith.git\n```\n\n2. Suba os containers:\n\n```BASH\ndocker compose up -d\n```\n\n3. Crie o banco, rode as migrations e os seeders:\n\n```BASH\nnpm run db:reset\n```\n\n4. O servidor estará disponível na porta `3001`\n\n\u003c/details\u003e\n\n\n\u003cdetails\u003e\n\n\u003csummary\u003e\u003cstrong\u003eRode os testes\u003c/strong\u003e\u003c/summary\u003e\u003cbr\u003e\n\nRode os testes com:\n\n```SHELL\nnpm run test:local\n```\n\nRode a cobertura:\n\n```SHELL\nnpm run test:coverage\n```\n\n\u003c/details\u003e\n\n## Documentação da API\n\nA documentação desta api está disponível na rota `/api-docs`\n\n## Tecnologias utilizadas\n\n- Typescript\n- Node\n- Express\n- Sequelize\n- MySQL\n- JWT\n- Bcrypt\n- Joi\n- Docker\n- Mocha\n- Chai\n- Sinon\n- Swagger-ui\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmairess%2Fproject-trybesmith","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmairess%2Fproject-trybesmith","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmairess%2Fproject-trybesmith/lists"}