Poste suas duvidas à comunidade, verifique por dúvidas não respondidas, e verifique se algém respondeu sua dúvida
API em Produção: https://projeto-18-fullstack-overflow.herokuapp.com/
- 💻 Sobre o projeto
- ⚙️ Funcionalidades
- 🚀 Como executar o projeto Localmente
- 🛠 Tecnologias
- End Points
- 🦸 Autor
💻 Full stack overflow é uma api para alunos postarem suas dúvidas e que qualquer pessoa pode solicitar as questões não respondidas e responder a essas dúvidas
- Criar uma dúvida
- Ver a resposta da dúvida criada
- Pegar as perguntas não respondidas
- Responder à uma pergunta
- Cadastrar usuários para responder as perguntas
Este projeto conta apenas com o back-end da api
Antes de começar, você vai precisar ter instalado em sua máquina as seguintes ferramentas: Git, Node.js. Além disto é bom ter um editor para trabalhar com o código como VSCode
# Clone este repositório
$ git clone https://github.com/camilocoelhogomes/projeto_18_fullstack_overflow_developer.git
# Acesse a pasta do projeto no terminal/cmd
$ cd [projeto_17_api_sing_me_a_song_back_end](https://github.com/camilocoelhogomes/projeto_18_fullstack_overflow_developer.git)
# Instale as dependências
$ npm install
# crie o banco de dados a partir do arquivo dbConfig.sql e coloque as variavies de ambiente conforme o .env.example e crie um arquivo .env.dev baseado nele
# Execute a aplicação em modo de desenvolvimento
$ npm run dev
# O server iniciará na porta configurada em sua variavel de ambiente do .env.test
As seguintes ferramentas foram usadas na construção do projeto:
Server (NodeJS)
Veja o arquivo package.json
Veja o arquivo .env.exemple
Retorna I'm alive para verificar se o servidor está no ar
Deve ser enviado um Json com o formato
{
"name": "String contendo o Nome do usuário",
"class": "String contendo a turma do usuário"
}
E receberá de volta um token de usuário, que será utilizado posteriormente para responder à perguntas
{
"token": "Token no formato JWT"
}
Deve ser enviado um objeto no formato:
{
"question": "Uma string contendo a pergunta",
"student": "Uma string contendo o nome do aluno ",
"class": "Uma string contendo o nome da turma ",
"tags": "Uma string contendo algumas tags de indentificação da área da pergunta ",
}
Receberá de volta um Objeto identificador da pergunta que será utilizado mais tarde para saber se a pergunta foi respondida ou não
{
"id": "id no formato UUID"
}
Recebe de volta todas as perguntas nã respondidas em um array de objetos
[
{
"id":"id no formato UUID",
"question": "Uma string contendo a pergunta",
"student": "Uma string contendo o nome do aluno ",
"class": "Uma string contendo o nome da turma ",
"tags": "Uma string contendo algumas tags de indentificação da área da pergunta ",
"isAnswer":"false"
}
]
-
Essa rota é utilizada para responder à alguma questão
- questionId = id da questão a ser respondida
-
Deve passar junto a rota um header authorization do tipo Bearer Token contendo o token do usuário recebido pelo mesmo quando criou o usuário na rota users
O body da requisição deve ser no formato
{
"answer": "String contendo a resposta da questão",
}
- Essa rota é utilizada para obter informações de questões específicas
- questionId = id da questão a ser respondida
Ela poderá ter duas respostas diferentes uma quando a questão ainda não foi respondida, e outra caso a questão já tenha sido respondida
- Questão não respondida
{
"submitAt":"Informação no formato datetime indicando quando a questão foi criada",
"question": "Uma string contendo a pergunta",
"student": "Uma string contendo o nome do aluno ",
"class": "Uma string contendo o nome da turma ",
"tags": "Uma string contendo algumas tags de indentificação da área da pergunta ",
"isAwnser":"Boolano indicando false, já que a questão não foi respondida"
}
- Questão respondida
{
"submitAt":"Informação no formato datetime indicando quando a questão foi criada",
"question": "Uma string contendo a pergunta",
"student": "Uma string contendo o nome do aluno ",
"class": "Uma string contendo o nome da turma ",
"tags": "Uma string contendo algumas tags de indentificação da área da pergunta ",
"isAwnser":"Boolano indicando false, já que a questão não foi respondida",
"answeredAt": "Informação no formato datetime indicando quando a questão foi respondida",
"answeredBy": "O nome da pessoa que respondeu a pergunta",
"answer": "A resposta da pergunta em si",
}
Camilo Coelho Gomes
Feito com ❤️ por Camilo Coelho Entre em contato!