Este é o backend funcional de um app de criação de enquetes públicas. Ele fornece os seguintes endpoints:
- Endpoint REST para cadastros e edição de enquetes, e registro de votos.
- Endpoint Websocket para acompanhar os resultados em tempo real.
Para desenvolver este projeto, utilizei a seguinte stack:
- Django como base
- Django Rest Framework para agilizar funcionalidades do endpoint da API REST
- Django Channels para extender o Django e fazer com que ele suporte conexões websockets
- Django Rest Framework Simple JWT para autenticação
Também utilizei uma imagem docker do Redis em ambiente de desenvolvimento.
- Permite cadastrar enquetes com título, descrição, e N opções de voto
- Permite encerrar uma enquete ativa
- Permite reabrir uma enquete encerrada
- Permite excluir uma enquete criada
- Sistema de login e token para ações de criação e edição de enquetes
- Permite receber votos nas enquetes ativas
- Faz o controle para que cada usuário vote somente uma vez em cada enquete, através de um código único gerado e armazenado nos cookies
- Permite vizualizar e acompanhar os resultados das votações em tempo real
Suba o backend utilizando docker, com o comando:
docker-compose up