Este repositório contém o código para uma aplicação de votação construída com TypeScript e Fastify. Ela fornece funcionalidades para criar enquetes, obter detalhes das enquetes, votar nas enquetes e exibir resultados de enquetes em tempo real usando WebSockets.
- Clone o repositório:
https://github.com/leitecsleite/polls.git
- Instale as dependências:
cd enquetes
npm install
Para executar a aplicação em modo de desenvolvimento:
npm run dev
Isso iniciará o servidor e observará alterações no arquivo src/http/server.ts
.
- @fastify/cookie: Plugin Fastify para análise de cookies.
- @fastify/websocket: Plugin Fastify para suporte a WebSocket.
- @prisma/client: Cliente Prisma para acesso ao banco de dados.
- @types/node: Definições TypeScript para Node.js.
- crypto: Módulo Node.js para funções criptográficas.
- fastify: Estrutura web rápida e de baixa sobrecarga para Node.js.
- ioredis: Cliente Redis robusto e focado em desempenho para Node.js.
- prisma: ORM Prisma para Node.js.
- tsx: Transpilador TypeScript.
- typescript: Compilador de linguagem TypeScript.
- zod: Biblioteca de declaração e validação de esquema em TypeScript.
src/
: Contém o código-fonte da aplicação.http/
: Rotas HTTP e configuração do servidor.server.ts
: Arquivo principal do servidor.routes/
: Manipuladores de rotas HTTP.create-poll.ts
: Manipulador para criar enquetes.get-poll.ts
: Manipulador para obter detalhes das enquetes.vote-on-poll.ts
: Manipulador para votar nas enquetes.
ws/
: Manipuladores de WebSocket.poll-results.ts
: Manipulador de WebSocket para resultados de enquetes em tempo real.
index.ts
: Ponto de entrada para a aplicação.
Este projeto está licenciado sob a Licença ISC. Consulte o arquivo LICENSE para obter detalhes.