Aplicação de enquetes feita com base no Voting App do repositório App Ideas.
Aplicação de enquetes onde é possível criar, compartilhar e gerenciar enquetes. Feita com base no Voting App » do repositório App Ideas » com o propósito de praticar e aprender tecnologias como Jest, TDD, CI/CD, criação de API's REST, Azure, Knex.js, entre outros. Para mais informações como diagramas, planejamento e futuras funcionalidades visite o quadro Trello » deste projeto.
Informações básicas sobre as rotas da aplicação, para informações mais detalhadas visite a documentação da API »
HTTP | Rota | Descrição | Autenticação |
---|---|---|---|
POST | /register | registra um novo usuário | não |
POST | /login | autentica um usuário | não |
GET | /users/? | lista um ou mais usuários | sim |
GET | /users/:id/votes | lista os votos de um usuário | sim |
POST | /users/:id/password | altera a senha do usuário | sim |
POST | /users/:id/avatar | altera o avatar do usuário | sim |
PUT | /users/:id | edita um usuário | sim |
DELETE | /users/:id | deleta um usuário | sim |
POST | /surveys | cria uma survey | sim |
GET | /surveys/? | lista uma ou mais surveys | não |
POST | /suveys/:surveyID/vote/:optionID | vota em uma opção | sim |
PUT | /surveys/:surveyID | edita uma survey | sim |
DELETE | /surveys/:surveyID | deleta uma survey | sim |
POST | /surveys/:id/banner | altera o banner da survey | sim |
GET | /docs | acessa a documentação da API | não |
Este projeto foi construído com as seguintes tecnologias:
- Um banco de dados MongoDB » para os logs
- Uma Azure Storage Account » para upload dos avatares e banners
- Clone o projeto:
git clone https://github.com/JorgeLNJunior/voting-app-back-end.git
- Instale as dependências:
npm i
- Renomeie o arquivo
.env.example
para.env
- Crie duas bases de dados, uma para a aplicação e outras para os testes
- Altere as variáveis do arquivo
.env
com as configurações das bases de dados e da storage account - Banner e avatares podem ser armazenados tanto em uma storage account quanto localmente, para utilizar uma storage account modifique a variável
AZURE_STORAGE
no arquivo.env
paratrue
, oufalse
para armazenar localmente - Para iniciar a aplicação execute
npm run dev
, para os testes executenpm test
- Caso esteja usado o VSCode abra a command palette com
Ctrl + Shift + P
e use o comandoExtensions: Show Recommended Extensions
para ver as extensões recomendadas
- User can see a list of items he can vote on
- These items must have a button that the user can click on to vote
- After the user clicked a button, the user should see all the votes
- Store items and votes in a database
- Only allow authenticated users to vote
Distribuido sob a licença MIT »