{"id":19536740,"url":"https://github.com/felipeg-almeida/labeddit-backend","last_synced_at":"2026-04-12T15:06:10.698Z","repository":{"id":181495577,"uuid":"662329342","full_name":"FelipeG-Almeida/labeddit-backend","owner":"FelipeG-Almeida","description":"Este é o backend do projeto Labeddit, uma rede social inspirada no reddit. Desenvolvido como parte do projeto final do curso de Desenvolvimento Full Stack da Labenu, unicamente para fins didáticos.","archived":false,"fork":false,"pushed_at":"2023-08-06T01:27:45.000Z","size":42,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-08T18:10:10.171Z","etag":null,"topics":["api","backend","crud","express","jest","knex","layered-architecture","nodejs","poo","sqlite","typescript","unit-testing"],"latest_commit_sha":null,"homepage":"https://documenter.getpostman.com/view/24823235/2s9XxyRtDt","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/FelipeG-Almeida.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-07-04T22:27:28.000Z","updated_at":"2023-08-05T20:43:19.000Z","dependencies_parsed_at":"2023-07-15T21:29:57.120Z","dependency_job_id":"b94affe3-9b56-4a56-b5e1-001b897e49c0","html_url":"https://github.com/FelipeG-Almeida/labeddit-backend","commit_stats":null,"previous_names":["felipeg-almeida/labeddit-backend"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FelipeG-Almeida%2Flabeddit-backend","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FelipeG-Almeida%2Flabeddit-backend/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FelipeG-Almeida%2Flabeddit-backend/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FelipeG-Almeida%2Flabeddit-backend/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/FelipeG-Almeida","download_url":"https://codeload.github.com/FelipeG-Almeida/labeddit-backend/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240790284,"owners_count":19858007,"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":["api","backend","crud","express","jest","knex","layered-architecture","nodejs","poo","sqlite","typescript","unit-testing"],"created_at":"2024-11-11T02:24:09.159Z","updated_at":"2026-04-12T15:06:10.657Z","avatar_url":"https://github.com/FelipeG-Almeida.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Banner](https://github.com/FelipeG-Almeida/labeddit-frontend/assets/73674044/06ebc5a6-9abc-4631-b8c8-9099770ccb60)\n\n\u003ch1 align=\"center\" id=\"title\"\u003eLabeddit Backend\u003c/h1\u003e\n\n\u003cp id=\"description\"\u003eBem-vindos ao Labeddit! 😎 Uma rede social inspirada no reddit. Esta é o repositório do backend do Projeto. Desenvolvido usando NodeJs, Typescript, Express e SQLite. Este é o projeto final que coroa nosso percurso pelo curso full-stack da Labenu 🧡\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://img.shields.io/badge/node.js-6DA55F?style=for-the-badge\u0026amp;logo=node.js\u0026amp;logoColor=white\" alt=\"shields\"\u003e\u003cimg src=\"https://img.shields.io/badge/typescript-%23007ACC.svg?style=for-the-badge\u0026amp;logo=typescript\u0026amp;logoColor=white\" alt=\"shields\"\u003e\u003cimg src=\"https://img.shields.io/badge/express.js-%23404d59.svg?style=for-the-badge\u0026amp;logo=express\u0026amp;logoColor=%2361DAFB\" alt=\"shields\"\u003e\u003cimg src=\"https://img.shields.io/badge/sqlite-%2307405e.svg?style=for-the-badge\u0026amp;logo=sqlite\u0026amp;logoColor=white\" alt=\"shields\"\u003e\u003cimg src=\"https://img.shields.io/badge/-jest-%23C21325?style=for-the-badge\u0026amp;logo=jest\u0026amp;logoColor=white\" alt=\"shields\"\u003e\u003cimg src=\"https://img.shields.io/badge/Postman-FF6C37?style=for-the-badge\u0026amp;logo=postman\u0026amp;logoColor=white\" alt=\"shields\"\u003e\u003c/p\u003e\n\n\u003ch2\u003e📜 Documentação da API\u003c/h2\u003e\n\nA documentação da API pode ser encontrada no [Postman](https://documenter.getpostman.com/view/24823235/2s9XxyRtDt), que fornece detalhes sobre os endpoints disponíveis, parâmetros de entrada, exemplos de solicitações e respostas.\n\nRepositório do Front-end: [https://github.com/FelipeG-Almeida/labeddit-frontend](https://github.com/FelipeG-Almeida/labeddit-frontend)\n  \n\u003ch2\u003e🧐 Funcionalidades\u003c/h2\u003e\n\nO backend do Labeddit possui as seguintes funcionalidades:\n\n*   Cadastro/Login de Usuários\n*   Criação Edição e Exclusão de Posts e Comentários\n*   Interagir com os Posts e seus respectivos Comentários (Likes e Dislikes)\n\n\u003ch2\u003e🛠️ Passos para Instação:\u003c/h2\u003e\n\nPara configurar o projeto em sua máquina local, siga os passos abaixo:\n\n\u003cp\u003e1. Clonar o repositório:\u003c/p\u003e\n\n```\ngit clone https://github.com/FelipeG-Almeida/labeddit-backend.git\n```\n\n\u003cp\u003e2. Acessar a pasta do projeto:\u003c/p\u003e\n\n```\ncd labeddit-backend\n```\n\n\u003cp\u003e3. Instalar as dependências:\u003c/p\u003e\n\n```\nnpm install\n```\n\n\u003cp\u003e4. Configurar variáveis de ambiente:\u003c/p\u003e\n\n```\nPORT=3003 DB_FILE_PATH=./src/database/labeddit.db JWT_KEY=sua-senha JWT_EXPIRES_IN=7d BCRYPT_COST=12\n```\n\n\u003cp\u003e5. Crie as tabelas do banco usando o arquivo labeddit.sql\u003c/p\u003e\n\n\u003cp\u003e6. Inicie o servidor:\u003c/p\u003e\n\n```\nnpm run dev\n```\n\n  \n  \n\u003ch2\u003e💻 Construído com\u003c/h2\u003e\n\nTécnologias e Métodologias Utilizadas:\n\n*   NodeJs\n*   Typescript\n*   Express\n*   SQL e SQLite\n*   Knex\n*   Jest\n*   POO\n*   Arquitetura em camadas\n*   Geração de UUID\n*   Geração de hashes\n*   Autenticação e autorização\n*   Testes unitários\n\n\u003ch2\u003e🔚 Endpoints\u003c/h2\u003e\n\nA seguir, estão listados os endpoints disponíveis na API Labeddit:\n\n### Usuários\n\n1. **Cadastro de Usuários (POST)**\n   - URL: `http://localhost:3003/users/signup`\n   - Descrição: Permite que os usuários se cadastrem na plataforma Labeddit.\n\n2. **Login de Usuários (POST)**\n   - URL: `http://localhost:3003/users/login`\n   - Descrição: Permite que os usuários façam login na plataforma Labeddit.\n\n3. **Obter o ID do Usuário (GET)**\n   - URL: `http://localhost:3003/users/`\n   - Descrição: Permite que os usuários obtenham o ID do usuário autenticado com base no Token JWT.\n\n### Publicações\n\n4. **Obter Todos os Posts (GET)**\n   - URL: `http://localhost:3003/posts/`\n   - Descrição: Permite que os usuários obtenham todos os posts existentes na plataforma Labeddit.\n\n5. **Obter Post por ID (GET)**\n   - URL: `http://localhost:3003/posts/:id`\n   - Descrição: Permite que os usuários obtenham informações detalhadas sobre um post específico com base no ID fornecido.\n\n6. **Criar um Novo Post (POST)**\n   - URL: `http://localhost:3003/posts/`\n   - Descrição: Permite que os usuários criem um novo post na plataforma Labeddit.\n\n7. **Editar um Post Existente (PUT)**\n   - URL: `http://localhost:3003/posts/:id`\n   - Descrição: Permite que os usuários editem o conteúdo de um post existente com base no ID fornecido.\n\n8. **Excluir um Post (DELETE)**\n   - URL: `http://localhost:3003/posts/:id`\n   - Descrição: Permite que os usuários excluam um post específico na plataforma Labeddit.\n\n9. **Interagir com um Post (Like/Dislike) (PUT)**\n   - URL: `http://localhost:3003/posts/:id/like`\n   - Descrição: Permite que os usuários interajam com os posts através das ações de \"like\" e \"dislike\".\n\n10. **Verificar Reação do Usuário em um Post (GET)**\n    - URL: `http://localhost:3003/posts/:id/checklike`\n    - Descrição: Permite que os usuários obtenham a reação registrada para um post específico com base no ID fornecido.\n\n### Comentários\n\n11. **Obter Todos os Comentários de um Post (GET)**\n    - URL: `http://localhost:3003/comments/:id`\n    - Descrição: Permite que os usuários obtenham todos os comentários existentes para um post específico.\n\n12. **Criar um Novo Comentário em um Post (POST)**\n    - URL: `http://localhost:3003/comments/:id`\n    - Descrição: Permite que os usuários criem um novo comentário em um post específico.\n\n13. **Editar um Comentário Existente (PUT)**\n    - URL: `http://localhost:3003/comments/:id`\n    - Descrição: Permite que os usuários editem o conteúdo de um comentário existente com base no ID fornecido.\n\n14. **Excluir um Comentário (DELETE)**\n    - URL: `http://localhost:3003/comments/:id`\n    - Descrição: Permite que os usuários excluam um comentário específico na plataforma Labeddit.\n\n15. **Interagir com um Comentário (Like/Dislike) (PUT)**\n    - URL: `http://localhost:3003/comments/:id/like`\n    - Descrição: Permite que os usuários interajam com os comentários através das ações de \"like\" e \"dislike\".\n\n16. **Verificar Reação do Usuário em um Comentário (GET)**\n    - URL: `http://localhost:3003/comments/:id/checklike`\n    - Descrição: Permite que os usuários obtenham a reação registrada para um comentário específico com base no ID fornecido.\n\n\u003ch2\u003e🎲 Banco de Dados\u003c/h2\u003e\n\nDiagrama do banco de dados, suas tabelas e relações:\n\n![Untitled](https://github.com/FelipeG-Almeida/labeddit-backend/assets/73674044/b95dc80a-b4e6-4582-a8bb-38b6c682ba52)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffelipeg-almeida%2Flabeddit-backend","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffelipeg-almeida%2Flabeddit-backend","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffelipeg-almeida%2Flabeddit-backend/lists"}