Pitch: Enquetes dentro do TabNews (e qualquer markdown!)
O Problema
Há alguns dias senti vontade de criar uma enquete dentro do TabNews, mas não havia como fazer sem depender de comentarios, e pela politica do TabNews, comentarios curtos são desincentivados, impedindo que a enquete funcione como deveria.
A Solução
Criei um pequeno SaaS, ainda em beta, que permite você criar enquetes com até 5 escolhas, e embeddar direto no markdown.
Para criar uma enquete, basta visitar: https://md-poll.vercel.app/polls/create e preencher rapidamente o formulario com um título (a pergunta da sua enquete), e as opções que quer dar para o usuário votar, e salvar.
Será exibido uma prévia da enquete, e logo abaixo será exibido o código markdown para incluir a enquete aqui no tabnews, ou em qualquer ambiente markdown.
Exemplo
Criei uma enquete de exemplo para embeddar aqui. O código markdown a ser incluído é esse:
Você acha essa ideia útil?
<a href="https://md-poll.vercel.app/polls/b5235ff9-fb8d-419f-b159-2e382002f5b7/vote?option=0&close" target="_blank">
<img src="https://md-poll.vercel.app/api/polls/b5235ff9-fb8d-419f-b159-2e382002f5b7/options/0/img" alt="Não acho"/>
</a>
<br/>
<a href="https://md-poll.vercel.app/polls/b5235ff9-fb8d-419f-b159-2e382002f5b7/vote?option=1&close" target="_blank">
<img src="https://md-poll.vercel.app/api/polls/b5235ff9-fb8d-419f-b159-2e382002f5b7/options/1/img" alt="Acho um pouco"/>
</a>
<br/>
<a href="https://md-poll.vercel.app/polls/b5235ff9-fb8d-419f-b159-2e382002f5b7/vote?option=2&close" target="_blank">
<img src="https://md-poll.vercel.app/api/polls/b5235ff9-fb8d-419f-b159-2e382002f5b7/options/2/img" alt="Acho bastante"/>
</a>
<br/>
<a href="https://md-poll.vercel.app/polls/b5235ff9-fb8d-419f-b159-2e382002f5b7/vote?option=3&close" target="_blank">
<img src="https://md-poll.vercel.app/api/polls/b5235ff9-fb8d-419f-b159-2e382002f5b7/options/3/img" alt="Achei demais!!!"/>
</a>
<br/>
<small>Click on the option you want to vote.</small>
E gera a seguinte enquete, que você pode clicar em uma opção e votar.
Por uma limitação da implementação, é preciso atualizar a página após votar para
ver a quantidade de votos atualizada.
Você acha essa ideia útil?
Click on the option you want to vote.
Próximos passos
Como disse, fiz este projeto em 5 dias, sendo que perdi 2 dias só fazendo o deploy na vercel pois havia uma incompatibilidade da biblioteca canvas
com o ambiente da vercel, portanto, ainda há muito o que implementar:
- Impedir multiplos votos na mesma enquete por endereço IP
- Salvar endereço de IP do criador da enquete
- Implementar rate-limit de criação de enquetes por IP
- Melhorar a interface de usuário e estilizar melhor as opções da enquete
- Implementar multi-idiomas
- Implementar estatisticas da enquete
- Implementar autenticação para evitar flood de enquetes (continuar permitindo sem autenticação, porém com rate-limit por IP)
- Implementar cache da renderização da opção
- Pagina de estatisticas gerais (https://md-poll.vercel.app/polls)
- Implementar ✅ como feedback na opção votada
GitHub
O projeto está acessivel para quem quiser contribuir no github: https://github.com/iget-master/markdown-poll/
Caso haja interesse da comunidade, irei continuar o projeto!