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 🧡
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
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)
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
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
A seguir, estão listados os endpoints disponíveis na API Labeddit:
-
Cadastro de Usuários (POST)
- URL:
http://localhost:3003/users/signup
- Descrição: Permite que os usuários se cadastrem na plataforma Labeddit.
- URL:
-
Login de Usuários (POST)
- URL:
http://localhost:3003/users/login
- Descrição: Permite que os usuários façam login na plataforma Labeddit.
- URL:
-
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.
- URL:
-
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.
- URL:
-
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.
- URL:
-
Criar um Novo Post (POST)
- URL:
http://localhost:3003/posts/
- Descrição: Permite que os usuários criem um novo post na plataforma Labeddit.
- URL:
-
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.
- URL:
-
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.
- URL:
-
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".
- URL:
-
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.
- URL:
-
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.
- URL:
-
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.
- URL:
-
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.
- URL:
-
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.
- URL:
-
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".
- URL:
-
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.
- URL:
Diagrama do banco de dados, suas tabelas e relações: