Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/felipeg-almeida/labeddit-backend
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.
https://github.com/felipeg-almeida/labeddit-backend
api backend crud express jest knex layered-architecture nodejs poo sqlite typescript unit-testing
Last synced: 5 days ago
JSON representation
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.
- Host: GitHub
- URL: https://github.com/felipeg-almeida/labeddit-backend
- Owner: FelipeG-Almeida
- Created: 2023-07-04T22:27:28.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-08-06T01:27:45.000Z (over 1 year ago)
- Last Synced: 2024-11-11T02:25:57.722Z (2 months ago)
- Topics: api, backend, crud, express, jest, knex, layered-architecture, nodejs, poo, sqlite, typescript, unit-testing
- Language: TypeScript
- Homepage: https://documenter.getpostman.com/view/24823235/2s9XxyRtDt
- Size: 41 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
![Banner](https://github.com/FelipeG-Almeida/labeddit-frontend/assets/73674044/06ebc5a6-9abc-4631-b8c8-9099770ccb60)
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 🧡
📜 Documentação da API
A 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.
Repositório do Front-end: [https://github.com/FelipeG-Almeida/labeddit-frontend](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
4. **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.5. **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.6. **Criar um Novo Post (POST)**
- URL: `http://localhost:3003/posts/`
- Descrição: Permite que os usuários criem um novo post na plataforma Labeddit.7. **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.8. **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.9. **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".10. **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
11. **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.12. **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.13. **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.14. **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.15. **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".16. **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](https://github.com/FelipeG-Almeida/labeddit-backend/assets/73674044/b95dc80a-b4e6-4582-a8bb-38b6c682ba52)