Este repositório fornece uma API REST completa para gerenciamento de tarefas de usuários, utilizando as tecnologias:
- 🔌 Fastify: Framework Node.js para desenvolvimento rápido e eficiente de APIs.
- 📦 Pnpm: Gerenciador de pacotes para manter as dependências do projeto organizadas.
- 💾 Postgres: Banco de dados relacional para armazenamento de dados.
- 💚 Prisma: ORM (Object-Relational Mapping) para facilitar a interação com o banco de dados.
- 🔐 JWT: Padrão de autenticação para proteger endpoints da API.
- 💎 Zod: ️ Validador de dados para garantir a segurança e confiabilidade da API.
- 📝 Swagger: Ferramenta para documentação de APIs.
- ⚓ Docker: Ferramenta para conteinerização e virtualização da API.
- ⚡️ Vitest: Framework de testes unitários rápido e confiável.
- 🌐 Supertest: Ferramenta para testar APIs de forma integrada.
Rota | Autenticação | Descrição |
---|---|---|
POST /api/register |
🌎 |
Criar um usuário |
POST /api/login |
🌎 |
Fazer login |
Rota | Autenticação | Descrição |
---|---|---|
GET /api/tasks |
🔐 |
Listar todas as tarefas do usuário |
GET /api/tasks/:id |
🔐 |
Buscar uma tarefa |
POST /api/tasks |
🔐 |
Cria uma tarefa |
PUT /api/tasks/:id |
🔐 |
Atualizar tarefa |
DELETE /api/tasks/:id |
🔐 |
Deletar tarefa |
- Node.js
- Docker
- Docker Compose
- Pnpm
- Git
git clone https://github.com/mnzsss/pixit-tasks.git
pnpm install
Copie o arquivo .env.example
para .env
:
cp .env.example .env
Edite o arquivo .env
seguindo as instruções do arquivo e configure as variáveis de acordo com seu ambiente.
Rode o Docker Compose:
docker-compose up
Acesse o container do banco de dados:
docker exec -it pixit-fastify sh
Execute o comando para criar o banco de dados e aplicar as migrações:
pnpm prisma generate
- A API estará disponível na URL http://0.0.0.0:3000/api.
- Utilize a documentação (Swagger) da API para explorar os endpoints e funcionalidades disponíveis: http://0.0.0.0:3000/api/docs.
Para rodar os testes, execute o comando:
pnpm test
Ou, se preferir rode os testes com cobertura e UI:
pnpm test:ui