Skip to content

2daniell/challenge

Repository files navigation

Task Management API

Um backend moderno para gerenciamento de tarefas, desenvolvido com TypeScript, Express.js e Prisma ORM.


🚀 Tecnologias Utilizadas

  • TypeScript: Para código mais seguro, escalável e fácil de manter.
  • Express.js: Framework web leve e amplamente utilizado para APIs REST.
  • Prisma ORM: Comunicação elegante e eficiente com o banco de dados PostgreSQL.
  • PostgreSQL: Banco de dados relacional.
  • Zod: Validação de dados robusta para garantir a integridade das requisições.
  • Docker & Docker Compose: Facilita o desenvolvimento e deploy, garantindo ambiente idêntico em qualquer máquina.

🌟 Destaques do Projeto

  • Arquitetura clara e organizada: Separação entre controllers, services, schemas e rotas.
  • Validação rigorosa: Uso de Zod para validar dados de entrada e evitar erros e vulnerabilidades.
  • Tratamento completo de erros: Diferencia erros de validação, conflitos de dados (ex: entradas duplicadas) e erros internos, sempre retornando respostas HTTP adequadas.
  • Paginação eficiente: Endpoints que listam múltiplos recursos, como /users e /users/:userId/tasks, contam com paginação por parâmetros limit e page. Para obter a melhor performance e evita sobrecarregar o banco ou a aplicação.
  • Dockerizado: Ambiente completo com PostgreSQL rodando em container, garantindo que você possa rodar tudo localmente sem dores de cabeça.

💻 Como Rodar o Projeto

Pré-requisitos

  1. Clone o repositório:

    git clone https://github.com/2daniell/challenge
    cd challenge
  2. Suba os containers e construa a aplicação usando Docker Compose:

    docker compose up --build

    Ou, se não funcionar, use:

    docker-compose up --build

OBS: O banco de dados será gerado e configurado automaticamente na porta 5432.
Certifique-se de que nenhuma outra aplicação (como outra instância do PostgreSQL) esteja usando essa porta para evitar conflitos.

  1. Para parar os containers:

    docker-compose down

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published