Skip to content

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.

Notifications You must be signed in to change notification settings

FelipeG-Almeida/labeddit-backend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Banner

Labeddit Backend

Bem-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 🧡

shieldsshieldsshieldsshieldsshieldsshields

📜 Documentação da API

A documentação da API pode ser encontrada no Postman, que fornece detalhes sobre os endpoints disponíveis, parâmetros de entrada, exemplos de solicitações e respostas.

Repositório do Front-end: https://github.com/FelipeG-Almeida/labeddit-frontend

🧐 Funcionalidades

O backend do Labeddit possui as seguintes funcionalidades:

  • Cadastro/Login de Usuários
  • Criação Edição e Exclusão de Posts e Comentários
  • Interagir com os Posts e seus respectivos Comentários (Likes e Dislikes)

🛠️ Passos para Instação:

Para configurar o projeto em sua máquina local, siga os passos abaixo:

1. Clonar o repositório:

git clone https://github.com/FelipeG-Almeida/labeddit-backend.git

2. Acessar a pasta do projeto:

cd labeddit-backend

3. Instalar as dependências:

npm install

4. Configurar variáveis de ambiente:

PORT=3003 DB_FILE_PATH=./src/database/labeddit.db JWT_KEY=sua-senha JWT_EXPIRES_IN=7d BCRYPT_COST=12

5. Crie as tabelas do banco usando o arquivo labeddit.sql

6. Inicie o servidor:

npm run dev

💻 Construído com

Técnologias e Métodologias Utilizadas:

  • NodeJs
  • Typescript
  • Express
  • SQL e SQLite
  • Knex
  • Jest
  • POO
  • Arquitetura em camadas
  • Geração de UUID
  • Geração de hashes
  • Autenticação e autorização
  • Testes unitários

🔚 Endpoints

A seguir, estão listados os endpoints disponíveis na API Labeddit:

Usuários

  1. Cadastro de Usuários (POST)

    • URL: http://localhost:3003/users/signup
    • Descrição: Permite que os usuários se cadastrem na plataforma Labeddit.
  2. Login de Usuários (POST)

    • URL: http://localhost:3003/users/login
    • Descrição: Permite que os usuários façam login na plataforma Labeddit.
  3. Obter o ID do Usuário (GET)

    • URL: http://localhost:3003/users/
    • Descrição: Permite que os usuários obtenham o ID do usuário autenticado com base no Token JWT.

Publicações

  1. Obter Todos os Posts (GET)

    • URL: http://localhost:3003/posts/
    • Descrição: Permite que os usuários obtenham todos os posts existentes na plataforma Labeddit.
  2. Obter Post por ID (GET)

    • URL: http://localhost:3003/posts/:id
    • Descrição: Permite que os usuários obtenham informações detalhadas sobre um post específico com base no ID fornecido.
  3. Criar um Novo Post (POST)

    • URL: http://localhost:3003/posts/
    • Descrição: Permite que os usuários criem um novo post na plataforma Labeddit.
  4. Editar um Post Existente (PUT)

    • URL: http://localhost:3003/posts/:id
    • Descrição: Permite que os usuários editem o conteúdo de um post existente com base no ID fornecido.
  5. Excluir um Post (DELETE)

    • URL: http://localhost:3003/posts/:id
    • Descrição: Permite que os usuários excluam um post específico na plataforma Labeddit.
  6. Interagir com um Post (Like/Dislike) (PUT)

    • URL: http://localhost:3003/posts/:id/like
    • Descrição: Permite que os usuários interajam com os posts através das ações de "like" e "dislike".
  7. Verificar Reação do Usuário em um Post (GET)

    • URL: http://localhost:3003/posts/:id/checklike
    • Descrição: Permite que os usuários obtenham a reação registrada para um post específico com base no ID fornecido.

Comentários

  1. Obter Todos os Comentários de um Post (GET)

    • URL: http://localhost:3003/comments/:id
    • Descrição: Permite que os usuários obtenham todos os comentários existentes para um post específico.
  2. Criar um Novo Comentário em um Post (POST)

    • URL: http://localhost:3003/comments/:id
    • Descrição: Permite que os usuários criem um novo comentário em um post específico.
  3. Editar um Comentário Existente (PUT)

    • URL: http://localhost:3003/comments/:id
    • Descrição: Permite que os usuários editem o conteúdo de um comentário existente com base no ID fornecido.
  4. Excluir um Comentário (DELETE)

    • URL: http://localhost:3003/comments/:id
    • Descrição: Permite que os usuários excluam um comentário específico na plataforma Labeddit.
  5. Interagir com um Comentário (Like/Dislike) (PUT)

    • URL: http://localhost:3003/comments/:id/like
    • Descrição: Permite que os usuários interajam com os comentários através das ações de "like" e "dislike".
  6. Verificar Reação do Usuário em um Comentário (GET)

    • URL: http://localhost:3003/comments/:id/checklike
    • Descrição: Permite que os usuários obtenham a reação registrada para um comentário específico com base no ID fornecido.

🎲 Banco de Dados

Diagrama do banco de dados, suas tabelas e relações:

Untitled

About

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.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published