Uma jovem empreendedora teve uma ideia revolucionária que parece estar dando certo, mas está precisando de uma força para deixar o backend redondo.
O Labook é uma rede social com o objetivo de promover a conexão e interação entre seus mais diversos usuários. As pessoas poderão criar e curtir publicações.
-
Cadastro de usuários
- name, email e password devem ser do tipo string
- name deve possuir ao menos 3 caracteres, enquanto password ao menos 6 caracteres
- email deve ter um formato válido e único, não podendo repetir no banco de dados
- Em caso de sucesso, retorna uma mensagem e um token de acesso que guarda o id e a role da pessoa (NORMAL ou ADMIN)
-
Login de usuários
- email e password devem ser fornecidos e serem do tipo string
- password deve possuir ao menos 6 caracteres
- email deve ter um formato válido
- O usuário com o e-mail fornecido deve existir no sistema
- Em caso de sucesso, retorna uma mensagem e um token de acesso
-
Criar post
- Endpoint protegido: caso tentem acessá-lo sem token, deve ser retornada uma mensagem de erro
- content deve possuir no mínimo 1 caractere
-
Deletar post
- Endpoint protegido: caso tentem acessá-lo sem token, deve ser retornada uma mensagem de erro
- ADMINS podem deletar qualquer post, equanto contas NORMAIS só podem deletar seus próprios posts
- id do post a ser deletado deve existir no sistema
-
Dar like em post
- Uma mesma pessoa não pode dar mais de um like em um post
- id do post deve existir no sistema
- se o post já estiver com um like do usuário, é retornado um erro
-
Remover like de um post
- id do post deve existir no sistema
- se o post não estiver com o like do usuário, é retornado um erro
-
Ver todos os posts
- Endpoint protegido: caso tentem acessá-lo sem token, deve ser retornada uma mensagem de erro
- dentre as informações dos posts, deve existir também o número de likes de cada um
npm install: Instala todas as dependências listadas nopackage.json.
Criar o arquivo .env e configurar com as informações de seu banco de dados.
DB_HOST = host
DB_USER = usuario
DB_PASS = senha
DB_NAME = nome-do-banco-de-dados
JWT_KEY = "minha-senha-segura"
JWT_EXPIRES_IN = "1h"
BCRYPT_COST = 12
npm run dev:Estabelece a conexão com o banco de dados e reinicia automaticamente o servidorlocalhosttoda a vez que o projeto for alterado e salvo.
Acessar o arquivo tables.sql e executar os comandos de criação das tabelas Labook_Users, Labook_Posts e Labook_Likes, respectivamente.
Popular as tabelas através das requisições do Postman ou do arquivo requests.rest da aplicação.
- NodeJS
- TypeScript
- MySQL
- Knex
- Express
- Cors
- JWT
- UUID
- BcryptJS
- Markdown
📝 Cobertura de testes automatizados
📝 Deploy do backend
Andressa Darzé - Desenvolvedora Web Full-Stack