Este projeto é um sistema de rastreamento de abertura de emails, que registra dados de campanhas e emails dos clientes ao acessar uma rota específica. O sistema também identifica se a conexão foi abortada, adicionando um delay de 5 segundos para contornar rastreadores automáticos e pré-carregamentos com timeouts baixos. A funcionalidade principal entrega uma imagem de 1px após salvar os dados no banco de dados.
A URL do sistema deve ser incluída como uma imagem no corpo do email. Para envios em massa, recomenda-se utilizar estratégias que substituam dinamicamente o endereço de email na URL para personalização.
<img
src="https://yourserver.com/track/campaign/email"
width="1"
height="1"
style="display: none;"
alt=""
/>- Base: Node.js
- Framework HTTP: Fastify
- Lint: Biome
- Linguagem: TypeScript
- Banco de Dados: PostgreSQL
- ORM: Prisma
- Containerização: Docker Compose
- Documentação: Swagger
-
Instalar dependências:
pnpm install
-
Executar migrações no banco de dados:
pnpm run db:migrate
-
Construir o projeto:
pnpm run build
-
Iniciar o servidor:
pnpm run start
- Descrição: Registra a abertura de email vinculada a uma campanha.
- Parâmetros:
:campaign- Nome ou identificador da campanha.:email- Endereço de email do cliente.
- Resposta:
- Retorna uma imagem de 1px.
- Lógica adicional:
- Delay de 5 segundos para contornar rastreadores.
- Registro no banco de dados se a conexão foi abortada antes da resposta.
Este projeto utiliza o Docker Compose para simplificar o setup. Certifique-se de que o Docker e o Docker Compose estão instalados em seu ambiente.
-
Subir os serviços:
docker-compose up -d
-
Parar os serviços:
docker-compose down
A documentação da API foi gerada utilizando Swagger. Após iniciar o servidor, acesse /docs para visualizar e interagir com a API.
- Segurança em envios em massa: Utilize estratégias para personalizar o endereço do cliente no final da URL ao montar emails em massa, garantindo rastreamento preciso.
- Delay ajustável: Se necessário, ajuste o delay para mitigar problemas específicos de rastreadores no arquivo de configuração.
Autor: Vinicius Colodetti Licença: MIT