API RESTful do projeto HoCo, que dispõe de funcionalidades CRUD de um sistema para gerenciamento de horas complementares dos alunos da graduação de Ciência da Computação na UFCG.
- Cadastra uma atividade do aluno
- Lista as atividades cadastradas do aluno
- Edita uma atividade do aluno
- Remove uma atividade do aluno
Retorna um JSON contendo o número de créditos atual do aluno e o número máximo de créditos necessários no curso.
GET /credits
Exemplo
curl -L -X GET 'https://hoco.netlify.app/credits'
Status: 200 OK
{
"creditos": 11,
"maximo": 22
}
Retorna uma lista contendo o total de créditos acumulados, por categoria, do aluno e o número máximo de créditos possíveis na categoria, ordenado de forma decrescente a partir da categoria de maior proporção para a de menor proporção na proporção total.
GET /categories/
Exemplo
curl -L -X GET 'https://hoco.netlify.app/categories/'
Status: 200 OK
[
{
"category": "Projeto",
"amount": 16,
"max": 16,
"category_piece": 0.20
},
{
"category": "Evento",
"amount": 12,
"max": 16,
"category_piece": 0.18
},
{
"category": "Monitoria",
"amount": 4,
"max": 18,
"category_piece": 0.15
},
{
"category": "Caesi",
"amount": 2,
"max": 4,
"category_piece": 0.10
}
]
Adiciona no banco de dados uma atividade do aluno e retorna uma lista contendo todas as atividades adicionadas do aluno. A requisição deve enviar no body um JSON com os campos title
, credits
, time (horas)
e category
.
POST /activity
Parameters | Type | Requirement | Description |
---|---|---|---|
title |
String | obrigatório | o nome da atividade. |
credits |
int | obrigatório | os créditos obtidos na atividade. |
time |
int | obrigatório | as horas gastas na atividade. |
category |
String | obrigatório | a categoria da atividade. |
Exemplos
curl -L -X POST 'https://hoco.netlify.app/activity' \
-H 'Content-Type: application/json' \
--data-raw '{
"titulo": "projeto ePol",
"creditos": 10,
"categoria": "Projeto"
}
}'
Status: 201 CREATED
[
{
"id:": 129087124908,
"title": "projeto ePol",
"credits": 10,
"category": "Projeto"
},
{
"id:": 129087124901,
"title": "CodeSQ",
"time": 320,
"category": "Projeto"
},
{
"id:": 132312312312,
"title": "Andromedev",
"time": 135,
"category": "Evento"
}
]
Retorna uma lista contendo todas as atividades adicionadas do aluno.
GET /activities
Exemplo
curl -L -X GET 'https://hoco.netlify.app/activities'
Status: 200 OK
[
{
"id:": 129087124908,
"title": "projeto ePol",
"credits": 10,
"category": "Projeto"
},
{
"id:": 129087124901,
"title": "CodeSQ",
"credits": 4,
"category": "Projeto"
},
{
"id:": 132312312312,
"title": "Andromedev",
"time": 135,
"category": "Evento"
}
]
Atualiza no banco de dados as informações de uma atividade do aluno e retorna uma lista contendo todas as atividades atuais do aluno. O ID da atividade deve ser informado na URL. A requisição deve enviar no body um JSON contendo os campos de possível edição, sendo estes: title
, credits
, time (horas)
e category
.
PATCH /activity?id=<atividade_id>
Parameters | Type | Requirement | Description |
---|---|---|---|
activity_id |
String | obrigatório | o id da atividade. |
Parameters | Type | Requirement | Description |
---|---|---|---|
title |
String | opcional | o nome da atividade. |
credits |
int | opcional | os créditos obtidos na atividade. |
time |
int | opcional | as horas gastas na atividade. |
category |
String | opcional | a categoria da atividade. |
Exemplos
curl -L -X PATCH 'https://hoco.netlify.app/activity?id=129087124908' \
-H 'Content-Type: application/json' \
--data-raw '{
"creditos": 12
}'
Status: 200 OK
[
{
"id:": 129087124908,
"title": "projeto ePol",
"credits": 12,
"time": 950,
"category": "Projeto"
},
{
"id:": 129087124901,
"title": "CodeSQ",
"credits": 4,
"time": 320,
"category": "Projeto"
},
{
"id:": 132312312312,
"title": "Andromedev",
"time": 135,
"category": "Evento"
}
]
Deleta do banco de dados uma atividade do aluno e retorna uma lista contendo todas as atividades restantes do aluno. O ID da atividade deve ser informado na URL.
DELETE /atividade?id=<atividade_id>
Parameters | Type | Requirement | Description |
---|---|---|---|
atividade_id |
String | obrigatório | o id da atividade. |
Exemplos
curl -L -X DELETE 'https://hoco.netlify.app/activity?id=129087124908'
Status: 200 OK
[
{
"id:": 129087124901,
"title": "CodeSQ",
"credits": 4,
"category": "Projeto"
},
{
"id:": 132312312312,
"title": "Andromedev",
"time": 135,
"category": "Evento"
}
]
Adiciona no banco de dados uma organização do curso e retorna uma lista contendo todas as organizações adicionadas do curso.
POST /org
Content-type: Multipart Form
Parameters | Type | Requirement | Description |
---|---|---|---|
name |
String | obrigatório | o nome da organização. |
org_url |
String | obrigatório | Url de acesso da organização na web. |
image |
File | obrigatório | Arquivo de imagem representante da organização |
Exemplos
curl -L -X POST 'https://hoco.netlify.app/org' \
-H 'Content-Type: form-data' \
-F name='nome'\
-F org_url=url'\
-F image <caminho/para/arquivo>
}'
Status: 201 CREATED
{
"_id": 1231231231231232,
"name": "OpenDevUFCG",
"org_url": "<URL>",
"image": <coded_image>
}
Retorna uma lista contendo todas as organizações adicionadas do curso.
GET /orgs
Exemplo
curl -L -X GET 'https://hoco.netlify.app/orgs'
Status: 200 OK
[
{
"_id": 1231231231231232,
"name": "OpenDevUFCG",
"org_url": "<URL>",
"image": <coded_image>
},
{
"_id": 1231231231231232,
"name": "Pet@Computação",
"org_url": "<URL>",
"image": <coded_image>
},
{
"_id": 1231231231231232,
"name": "Caesi",
"org_url": "<URL>",
"image": <coded_image>
},
{
"_id": 1231231231231232,
"name": "Guardians",
"org_url": "<URL>",
"image": <coded_image>
},
{
"_id": 1231231231231232,
"name": "Elas@Computação",
"org_url": "<URL>",
"image": <coded_image>
}
]
Deleta do banco de dados uma organização do curso e retorna uma lista contendo todas as organizações restantes do curso. O ID da organização deve ser informado na URL.
DELETE /org?id=<org_id>
Parameters | Type | Requirement | Description |
---|---|---|---|
id |
String | obrigatório | id da organização no banco de dados. |
Exemplos
curl -L -X DELETE 'https://hoco.netlify.app/org?id=62a60f4fc230515f63abae43'
Status: 200 OK
[
{
"_id": 1231231231231232,
"name": "Pet@Computação",
"org_url": "<URL>",
"image": <coded_image>
},
{
"_id": 1231231231231232,
"name": "Caesi",
"org_url": "<URL>",
"image": <coded_image>
},
{
"_id": 1231231231231232,
"name": "Guardians",
"org_url": "<URL>",
"image": <coded_image>
},
{
"_id": 1231231231231232,
"name": "Elas@Computação",
"org_url": "<URL>",
"image": <coded_image>g"
}
]
`
Adiciona no banco de dados uma dúvida sobre o curso com a respectiva resposta e retorna uma lista contendo todas as dúvidas adicionadas sobre o curso. A requisição deve enviar no body um JSON com os campos question
e answer
.
POST /question
Parameters | Type | Requirement | Description |
---|---|---|---|
question |
String | obrigatório | a dúvida sobre o curso. |
answer |
String | obrigatório | a resposta da dúvida sobre o curso. |
Exemplos
curl -L -X POST 'https://hoco.netlify.app/question' \
-H 'Content-Type: application/json' \
--data-raw '{
"question": "[a pergunta aqui]",
"answer": "[a resposta aqui]"
}
}'
Status: 201 CREATED
{
"_id": 12345,
"question": "[a pergunta aqui]",
"answer": "[a resposta aqui]"
}
Retorna uma lista contendo todas as dúvidas adicionadas sobre o curso.
GET /questions
Exemplo
curl -L -X GET 'https://hoco.netlify.app/questions'
Status: 200 OK
[
{
"_id": 12345,
"question": "[a pergunta aqui]",
"answer": "[a resposta aqui]"
},
{
"_id": 12678,
"question": "[a pergunta aqui]",
"answer": "[a resposta aqui]"
},
{
"_id": 12901,
"question": "[a pergunta aqui]",
"answer": "[a resposta aqui]"
}
]
Deleta do banco de dados uma dúvida sobre o curso e retorna uma lista contendo todas as dúvidas restantes sobre o curso. O ID da organização deve ser informado na URL.
DELETE /question?id=<question_id>
Parameters | Type | Requirement | Description |
---|---|---|---|
question_id |
String | obrigatório | o id da dúvida no bd. |
Exemplos
curl -L -X DELETE 'https://hoco.netlify.app/question?id=12345'
Status: 200 OK
[
{
"_id": 12678,
"question": "[a pergunta aqui]",
"answer": "[a resposta aqui]"
},
{
"_id": 12901,
"question": "[a pergunta aqui]",
"answer": "[a resposta aqui]"
}
]