{"id":23675493,"url":"https://github.com/lipej/4pets-monorepo","last_synced_at":"2026-04-15T14:02:51.165Z","repository":{"id":47075198,"uuid":"394393021","full_name":"lipej/4pets-monorepo","owner":"lipej","description":null,"archived":false,"fork":false,"pushed_at":"2021-09-15T02:24:47.000Z","size":9817,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-01T16:18:33.664Z","etag":null,"topics":["monorepo","nestjs","react","sqlite","typescript","yarn-workspaces"],"latest_commit_sha":null,"homepage":"https://4pets.company","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/lipej.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":".github/CODEOWNERS","security":null,"support":null}},"created_at":"2021-08-09T18:08:00.000Z","updated_at":"2021-09-15T02:24:50.000Z","dependencies_parsed_at":"2022-09-05T11:52:07.109Z","dependency_job_id":null,"html_url":"https://github.com/lipej/4pets-monorepo","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/lipej/4pets-monorepo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lipej%2F4pets-monorepo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lipej%2F4pets-monorepo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lipej%2F4pets-monorepo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lipej%2F4pets-monorepo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lipej","download_url":"https://codeload.github.com/lipej/4pets-monorepo/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lipej%2F4pets-monorepo/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262639193,"owners_count":23341440,"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":["monorepo","nestjs","react","sqlite","typescript","yarn-workspaces"],"created_at":"2024-12-29T14:00:04.692Z","updated_at":"2025-10-08T08:01:52.437Z","avatar_url":"https://github.com/lipej.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# 🐶 🐱  4Pets\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://i.ibb.co/QJRM0XD/banner-mobile.png\" /\u003e\u003c/p\u003e\n\n## Deploy link\n\n[4pets.company](https://4pets.company)\n\n## Time\n\n**Hipster:** Otávio, Leonardo, Marcela, Débora\n\n**Hacker:** Felipe\n\n## Introdução\n\nNosso desafio foi criar uma vitrine para produto digital, preferencialmente utilizando PWA (é uma aplicação híbrida entre web e mobile). Após muita conversa e debate entre os membros da equipe, foi escolhido o mercado pet.\n\nEssa decisão foi tomada através de um dot voting feito no Miro, no qual cada um do time escolheu um tema diverso e foi feito um levantamento dos prós e contras de cada um deles. No final do processo cada um deu um voto para o tema favorito.\n\nAtravés de pesquisa com o usuário, mercado e benchmark optamos por utilizar somente roupas e acessórios para cachorros e gatos. Futuramente o site deve ser ampliado para atender outros animais de estimação.\n\n    \n\n\n## 🧰  Principais técnologias utilizadas\n\n\u003cp align=\"center\"\u003e\u003cimg width=\"100%\"  src=\"https://i.ibb.co/QC4K1S3/tecs.png\" /\u003e\u003c/p\u003e\n\n\n\n\n**Client:** React, Javascript\n\n**Server:** Node, NestJS, Typescript, MySQL, Jest\n\n**Deploy:**  DigitalOcean\n\n**Automação:** GitHub Actions\n## 💻  Screenshots\n\n\u003cp align=\"center\"\u003e\u003cimg width=\"100%\" src=\"https://media.giphy.com/media/tKsZJCIQNVOGn1bTi9/giphy.gif\" /\u003e\u003c/p\u003e\n\n\n  \n\n# 🏭  Instalar e rodar o projeto\n\n## Sem docker\n\n1. Clonar o projeto\n2. Instalar as dependências com: (caso não tenha yarn instalado executar antes ```npm i -g yarn```)\n\n```bash\nyarn install\n```\n3. Configurar as váriaveis de ambiente (seguindo os arquivos .env.example em casa projeto)\n4. Rodar front\n```bash\nyarn start:front\n```\n5. Rodar back\n```bash\nyarn start:back\n```\n\n\n## Com docker\n\n1. Clonar o projeto\n2. Configurar as váriaveis de ambiente (dentro do Dockerfile)\n3. Realizar o build do docker\n```bash\ndocker-compose up --build\n```\n\n\n## 📖  API\n\n#### GET - todos produtos/paginado\n\n```http\n  GET /api/v1/store/products?page=:number\n```\n\n#### GET - um produto\n\n```http\n   GET /api/v1/store/product/:id\n```\n\n| Parametro | Tipo     | Descrição                       |\n| :-------- | :------- | :-------------------------------- |\n| `id`      | `number` | **Required** - Id do produto |\n\n-----\n\n#### POST - adicionar produto\n\n```http\n   GET /api/v1/store/product\n```\n\n| body | Tipo atributo    | Descrição                       |\n| :-------- | :------- | :-------------------------------- |\n| `name`      | `string` | **Required** - nome do produto |\n| `description`      | `string` | **Required** - descrição do produto |\n| `image`      | `string` | **Required** - link da imagem do produto |\n| `storeName`      | `string` | **Required** - nome da loja |\n| `linkToProd`      | `string` | **Required** - link para loja |\n| `sizes`      | `Array\u003cstring\u003e` | **Required** - tamanhos do produto |\n| `categoryId`      | `number` | **Required** - id da categoria que o produto pertence |\n\n-----\n\n  \n#### DELETE - deletar produto\n\n```http\n   DELETE /api/v1/store/product/:id\n```\n\n| Parametro | Tipo     | Descrição                       |\n| :-------- | :------- | :-------------------------------- |\n| `id`      | `number` | **Required** - Id do produto |\n\n-----\n\n#### PUT - atualizar produto\n\n```http\n   PUT /api/v1/store/product/:id\n```\n\n| Parametro | Tipo     | Descrição                       |\n| :-------- | :------- | :-------------------------------- |\n| `id`      | `number` | **Required** - Id do produto |\n\n| body | Tipo  atributo   | Descrição                       |\n| :-------- | :------- | :-------------------------------- |\n| `name`      | `string` | **Not Required** - nome do produto |\n| `description`      | `string` | **Not Required** - descrição do produto |\n| `image`      | `string` | **Not Required** - link da imagem do produto |\n| `storeName`      | `string` | **Not Required** - nome da loja |\n| `linkToProd`      | `string` | **Not Required** - link para loja |\n| `categoryId`      | `number` | **Not Required** - id da categoria que o produto pertence |\n\n-----\n\n#### GET - Procurar por categoria e departamento \n\n```http\n   GET /api/v1/store/findby?department=:department\u0026category=:category\u0026limit=:limit\u0026page=:page\u0026by=:by\u0026order=:order\n```\n\n| Parametro | Tipo     | Descrição                       |\n| :-------- | :------- | :-------------------------------- |\n| `department`      | `number` | **Required** - id do departamento |\n| `category`      | `number` | **Required** - id da categoria |\n| `limit`      | `number` | **Required** - limite de produtos retornados |\n| `page`      | `number` | **Required** - pagina atual |\n| `by`      | `number` | **Required** - parametro a ser considerado na ordem (id, updatedAt...) |\n| `order`      | `string` | **Required** - ordem de retorno ASC/DESC |\n\n-----\n\n#### GET - um produto\n\n```http\n   GET /api/v1/store/store/search?name=:name\u0026page=:page\n```\n\n| Parametro | Tipo     | Descrição                       |\n| :-------- | :------- | :-------------------------------- |\n| `name`      | `string` | **Required** - parametro a ser buscado|\n| `page`      | `number` | **Required** - pagina atual |\n\n-----\n\n#### POST - criar categoria\n\n```http\n   POST /api/v1/store/department\n```\n\n| body | Tipo atributo    | Descrição                       |\n| :-------- | :------- | :-------------------------------- |\n| `name`      | `string` |  **Required** nome do departamento|\n\n-----\n\n#### POST - criar categoria\n\n```http\n   POST /api/v1/store/category\n```\n\n| body | Tipo  atributo   | Descrição                       |\n| :-------- | :------- | :-------------------------------- |\n| `name`      | `string` | **Required** - nome da categoria |\n| `departmentId`      | `number` | **Required** - id do departamento a qual vai pertencer|\n\n-----\n\n#### GET - procurar produtos de um departamento\n\n```http\n   GET /api/v1/store/getAllByDep?department=:id\u0026limit=:limit\u0026page=:page\n```\n\n| Parametro | Tipo     | Descrição                       |\n| :-------- | :------- | :-------------------------------- |\n| `id`      | `number` | **Required** - id do departamento |\n| `limit`      | `number` | **Required** - limite de retorno |\n| `page`      | `number` | **Required** - pagina atual |\n\n\n## Autores\n\n- [@fej0se](https://www.github.com/fej0se)\n\n  \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flipej%2F4pets-monorepo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flipej%2F4pets-monorepo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flipej%2F4pets-monorepo/lists"}