API RESTful para uma rede social estilo Twitter, construída com Node.js, Express e Prisma. Permite criação de usuários, publicações de tweets, seguir e deixar de seguir usuários, curtir e descurtir tweets e respostas.
- Cadastro, login e consulta de usuários
- Publicação de tweets e respostas
- Seguir e deixar de seguir usuários
- Curtir e descurtir tweets
- Feed com tweets do usuário e seus seguidores
- Tratamento de erros e autenticação JWT
- Node.js
- TypeScript
- Express
- Prisma ORM
- PostgreSQL
- JWT para autenticação
POST /users— Criar usuárioPOST /users/login— LoginGET /users/feed— Obter feed de tweets do usuário e de quem ele segue (requer autenticação)GET /users/:userId— Obter dados do usuário (com tweets, seguidores e seguindo) (requer autenticação)POST /users/follow/:followingId— Seguir usuário (requer autenticação)DELETE /users/follow/:followingId— Deixar de seguir usuário (requer autenticação)
POST /tweets— Criar tweet (requer autenticação)POST /tweets/:tweetId/reply— Criar resposta a um tweet (requer autenticação)GET /tweets/:tweetId— Obter tweet com respostas e contagens de curtidas e respostas (requer autenticação)POST /tweets/:tweetId/like— Curtir tweet (requer autenticação)DELETE /tweets/:tweetId/like— Descurtir tweet (requer autenticação)
src/controllers— Controllers das rotassrc/routes— Definição das rotassrc/services— Lógica de negóciosrc/dtos— Data Transfer Objects para validação e respostasrc/database— Configuração do Prismasrc/middlewares— Middlewares, incluindo autenticação e validaçãosrc/model— Modelos e erros customizadossrc/utils— Utilitários (hash de senha, comparação, JWT)