/polls

Primary LanguageTypeScript

Aplicação de Votação

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.

Instalação

  1. Clone o repositório:

https://github.com/leitecsleite/polls.git

  1. Instale as dependências:
cd enquetes
npm install

Uso

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.

Dependências

  • @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.

Estrutura do Projeto

  • 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.

Licença

Este projeto está licenciado sob a Licença ISC. Consulte o arquivo LICENSE para obter detalhes.