Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/renanstn/poll-generator-backend
Backend de um app para criação de enquetes. Fornece uma API REST, e um endpoint para websockes. Utiliza o django channels.
https://github.com/renanstn/poll-generator-backend
backend channels django django-channels django-rest-framework djangorestframework-jwt python websocket
Last synced: 9 days ago
JSON representation
Backend de um app para criação de enquetes. Fornece uma API REST, e um endpoint para websockes. Utiliza o django channels.
- Host: GitHub
- URL: https://github.com/renanstn/poll-generator-backend
- Owner: renanstn
- Created: 2021-05-17T20:39:00.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2023-11-30T19:56:44.000Z (about 1 year ago)
- Last Synced: 2024-11-30T12:13:35.789Z (2 months ago)
- Topics: backend, channels, django, django-channels, django-rest-framework, djangorestframework-jwt, python, websocket
- Language: Python
- Homepage:
- Size: 72.3 KB
- Stars: 1
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# poll-generator-backend
[![Python](https://img.shields.io/badge/python-%2314354C.svg?style=flat&logo=python&logoColor=white)](https://www.python.org/)
[![Django](https://img.shields.io/badge/django-%23092E20.svg?style=flat&logo=django&logoColor=white)](https://www.djangoproject.com/)
[![DjangoREST](https://img.shields.io/badge/DJANGO-REST-ff1709?style=flat&logo=django&logoColor=white&color=ff1709&labelColor=gray)](https://www.django-rest-framework.org/)
[![Insomnia](https://img.shields.io/badge/Insomnia-black?style=flat&logo=insomnia&logoColor=5849BE)](https://insomnia.rest/)
[![Lint Markdown](https://github.com/renanstn/poll-generator-backend/actions/workflows/markdown-lint.yaml/badge.svg)](https://github.com/renanstn/poll-generator-backend/actions/workflows/markdown-lint.yaml)## O que é
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.## O que usa
Para desenvolver este projeto, utilizei a seguinte stack:
- [Django](https://www.djangoproject.com/) como base
- [Django Rest Framework](https://www.django-rest-framework.org/) para agilizar
funcionalidades do endpoint da API REST
- [Django Channels](https://channels.readthedocs.io/en/stable/) para extender o
Django e fazer com que ele suporte conexões websockets
- [Django Rest Framework Simple JWT](https://django-rest-framework-simplejwt.readthedocs.io/en/latest/)
para autenticaçãoTambém utilizei uma imagem docker do Redis em ambiente de desenvolvimento.
## Features
- 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## Desenvolvimento
Suba o backend utilizando docker, com o comando:
```sh
docker-compose up
```