{"id":21930609,"url":"https://github.com/tonyycruz/trybesmith","last_synced_at":"2026-04-14T04:01:52.459Z","repository":{"id":103257808,"uuid":"538261693","full_name":"TonyyCruz/trybesmith","owner":"TonyyCruz","description":"Neste projeto, foi desenvolvida uma API para simular uma loja de itens medievais utilizando Typescript.","archived":false,"fork":false,"pushed_at":"2022-11-17T21:55:22.000Z","size":213,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-27T12:14:12.406Z","etag":null,"topics":["commit-conventions","express","jwt","mysql","mysql2","nodejs","nodemon","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/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-09-18T22:51:36.000Z","updated_at":"2023-02-11T14:43:51.000Z","dependencies_parsed_at":null,"dependency_job_id":"5c9db0a3-5168-4467-ad89-e86b62dbb897","html_url":"https://github.com/TonyyCruz/trybesmith","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%2Ftrybesmith","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TonyyCruz%2Ftrybesmith/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TonyyCruz%2Ftrybesmith/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TonyyCruz%2Ftrybesmith/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TonyyCruz","download_url":"https://codeload.github.com/TonyyCruz/trybesmith/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","jwt","mysql","mysql2","nodejs","nodemon","typescript"],"created_at":"2024-11-28T23:10:27.396Z","updated_at":"2026-04-14T04:01:47.436Z","avatar_url":"https://github.com/TonyyCruz.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003eProjeto Trybesmith Api\u003c/h1\u003e\n\u003cp align=\"center\"\u003eNeste projeto, foi desenvolvida uma API para simular uma loja de itens medievais utilizando \u003cstrong\u003eTypescript\u003c/strong\u003e.\u003c/p\u003e\n\n---\n\n\u003cbr\u003e\n\n\u003ch2 align=\"center\"\u003e📃 Sobre o Projeto\u003c/h2\u003e\n\n\u003cp align=\"center\"\u003eForam desenvolvidas todas as camadas da aplicação (Models, Service e Controllers), e por meio dessa aplicação, será possível realizar as operações básicas que se pode fazer em um determinado banco de dados: Criação, Leitura, Atualização e Exclusão (ou CRUD, para as pessoas mais íntimas  - Create, Read, Update e Delete). O REST foi feito utilizando MySql.\n\u003c/p\u003e\n\n\u003cbr\u003e\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 novo produto. Utilize um body nesse formato:\n\n```jsx\n  {\n    \"name\": \"Adaga misteriosa\",\n    \"amount\": \"26 peças de ouro\"\n  }\n```\n  \n---\n\n- POST `/users` para criar um novo usuário. Utilize um body nesse formato:\n\n```jsx\n{ \n  \"username\": \"Arthur\",\n  \"classe\": \"swordsman\",\n  \"level\": 10,\n  \"password\": \"kingArthur\"\n}\n```\n\n---\n\n- POST `/login` para fazer login e receber um token. Utilize um body nesse formato:\n\n```jsx\n  {\n    \"username\": \"yourUser\",\n    \"password\": \"yourPassword\"\n  }\n```\n  \n---\n\n- POST `/orders` para adicionar um novo pedido, o usuário precisa estar logado. Utilize um body nesse formato:\n\n```jsx\n  {\n    \"productsIds\": [1, 2]\n  }\n```\n\n---\n\n- GET `/products` para listar todos os produtos.\n\n---\n\n- GET `/orders` para listar todos os pedidos.\n  \n\u003c/details\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- **[JWT](https://jwt.io/introduction)**\n\n- **[TypeScript](https://www.typescriptlang.org/pt/)**\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- [Mysql](https://www.mysql.com/) para rodar local ou [Docker](https://docs.docker.com/get-docker/) para rodar em container.\n\n\nÉ recomendado utilizar algum cliente HTTP, como [Postman](https://www.postman.com/) ou o [Insomnia](https://insomnia.rest/download).\n\nTambém é bom ter um editor para trabalhar com o código como [VSCode](https://code.visualstudio.com/)\n\n---\n\n_1- Clonar o repositorio_\n\n```jsx\ngit clone git@github.com:TonyyCruz/trybesmith.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\n  docker-compose up -d\n```\n\n- Esse serviço irá inicializar dois containers chamados `trybesmith` e outro chamado `trybesmith_db`.\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 trybesmith bash\n```\n- Ele te dará acesso ao terminal interativo do container trybesmith 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 dbcreate\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  \u003cbr /\u003e\n\u003c/details\u003e\n\n---\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003cstrong\u003e🎲 Diagrama Entidade Relacionamento do projeto\u003c/strong\u003e\u003c/summary\u003e\u003cbr /\u003e\n\n  O banco de dados do projeto segue a estrutura abaixo:\n\n  \u003cimg src=\"diagram-der.png\" width=\"200px\" \u003e\n\u003c/details\u003e\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftonyycruz%2Ftrybesmith","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftonyycruz%2Ftrybesmith","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftonyycruz%2Ftrybesmith/lists"}