O Labook é uma rede social desenvolvida utilizando NodeJS, Typescript, Express, SQL, SQLite, Knex, seguindo boas práticas de programação, arquitetura em camadas e princípios de Programação Orientada a Objetos (POO).
- NodeJS
- Typescript
- Express
- SQL e SQLite
- Knex
- POO
- Arquitetura em camadas
- Geração de UUID
- Geração de hashes
- Autenticação e autorização
- Roteamento
- Postman
Consulte o arquivo Labook.postman_collection.json
para obter detalhes sobre os endpoints disponíveis e exemplos de requisições.
- Requisição:
GET
para/api/users
- Cabeçalho:
Authorization: seu_token_jwt
- Resposta Esperada (200 OK):
[ { "id": "uma_uuid_v4", "name": "Fulano", "email": "fulano@email.com", "createdAt": "2023-01-01T08:00:00.000Z", "updatedAt": "2023-01-20T14:30:00.000Z" }, { "id": "outra_uuid_v4", "name": "Ciclano", "email": "ciclano@email.com", "createdAt": "2023-02-01T10:00:00.000Z", "updatedAt": "2023-02-20T16:45:00.000Z" } // Outros usuários... ]
-
signup
- Rota:
/api/users/signup
- Método:
POST
- Descrição: Endpoint utilizado para cadastrar um novo usuário.
- Corpo da Requisição:
{ "name": "Nome do Usuário", "email": "email@example.com", "password": "senha123" }
- Resposta:
{ "token": "um_token_jwt" }
- Rota:
-
login
- Rota:
/api/users/login
- Método:
POST
- Descrição: Endpoint utilizado para autenticar um usuário existente.
- Corpo da Requisição:
{ "email": "email@example.com", "password": "senha123" }
- Resposta:
{ "token": "um_token_jwt" }
- Rota:
-
create post
- Rota:
/api/posts
- Método:
POST
- Descrição: Endpoint utilizado para criar uma nova publicação.
- Cabeçalho:
Authorization:um_token_jwt
- Corpo da Requisição:
{ "content": "Conteúdo da Publicação" }
- Resposta:
Status 201 CREATED
- Rota:
-
get posts
- Rota:
/api/posts
- Método:
GET
- Descrição: Endpoint utilizado para obter todas as publicações.
- Cabeçalho:
Authorization:um_token_jwt
- Resposta:
[ { "id": "uma_uuid_v4", "content": "Conteúdo da Publicação", "likes": 2, "dislikes": 1, "createdAt": "2023-01-20T12:11:47.000Z", "updatedAt": "2023-01-20T12:11:47.000Z", "creator": { "id": "uma_uuid_v4", "name": "Nome do Criador" } }, // Outras publicações... ]
- Rota:
-
edit post
- Rota:
/api/posts/{id}
- Método:
PUT
- Descrição: Endpoint utilizado para editar uma publicação existente.
- Cabeçalho:
Authorization:um_token_jwt
- Corpo da Requisição:
{ "content": "Novo Conteúdo da Publicação" }
- Resposta:
Status 200 OK
- Rota:
-
delete post
- Rota:
/api/posts/{id}
- Método:
DELETE
- Descrição: Endpoint utilizado para excluir uma publicação existente.
- Cabeçalho:
Authorization:um_token_jwt
- Resposta:
Status 200 OK
- Rota:
-
like / dislike post
- Rota:
/api/posts/{id}/like
- Método:
PUT
- Descrição: Endpoint utilizado para dar like ou dislike em uma publicação.
- Cabeçalho:
Authorization:um_token_jwt
- Corpo da Requisição (Like):
{ "like": true }
- Corpo da Requisição (Dislike):
{ "like": false }
- Rota:
- Resposta:
Status 200 OK
O Labook é um projeto NodeJS desenvolvido utilizando Typescript, Express, SQLite e Knex. Siga as instruções abaixo para configurar e executar o projeto em seu ambiente local.
Certifique-se de ter o NodeJS e o npm instalados em sua máquina. Você pode baixá-los em https://nodejs.org/.
- Clone o repositório para sua máquina:
git clone (https://github.com/Lu4n-M0ur4/labook)
Navegue até o diretório do projeto:
cd labook
Instale as dependências.
npm install
Arquivo .env
Configure o arquivo .env com as variáveis de ambiente necessárias.
Um exemplo pode ser encontrado no arquivo .env.example.
SQLITE
Execute as query's para popular o banco de dados com dados iniciais (opcional):
Execução do Projeto Inicie o servidor:
npm run start
O projeto estará acessível em http://localhost:3003/.
- Para maiores informações entre em contato :
- email >> luan.moura-rj@hotmail.com
- telefone >> 21 - 993636584