From 5615efa7280d588fcf1f07c22a9a3d4948857801 Mon Sep 17 00:00:00 2001 From: AntonioNtV Date: Sun, 22 Nov 2020 10:50:54 -0300 Subject: [PATCH 1/2] Removing unsed routes. and changing /session response doc --- backend/README.md | 96 ++++++----------------------------------------- 1 file changed, 12 insertions(+), 84 deletions(-) diff --git a/backend/README.md b/backend/README.md index 6565729..0c89a7a 100644 --- a/backend/README.md +++ b/backend/README.md @@ -89,79 +89,6 @@ yarn dev:server # 🔎 Endpoints da API -## Obter perfil: - -``` -GET /user/:username -``` - -Use essa rota para obter informações sobre o perfil de determinado usuário, basta substituir o parâmetro ":username" da rota pelo usuário do github correspondente, você deve receber uma resposta no seguinte modelo: - -```json -{ - "github_login": "davigsousa", - "avatar_url": "https://avatars0.githubusercontent.com/u/40612788?v=4", - "repositories": [ - { - "name": "algorithms", - "full_name": "davigsousa/algorithms", - "description": "Some useful algorithms (Still learning and updating more).", - "html_url": "https://github.com/davigsousa/algorithms", - "created_at": "2020-05-27T14:50:25Z", - "language": "C++" - }, - { - "name": "doeteca", - "full_name": "davigsousa/doeteca", - "description": "A Frontend for a Conceptual Project named Doeteca. Online on: https://doeteca.netlify.app/", - "html_url": "https://github.com/davigsousa/doeteca", - "created_at": "2020-02-17T22:01:18Z", - "language": "JavaScript" - } - ], - "top_language": "JavaScript", - "top_5_languages": ["JavaScript", "Python", "C++", "CSS", "TypeScript"] -} -``` - -## Obter relatório do dia atual: - -``` -GET /user/daily/:username -``` - -Use essa rota para obter informações de interações de determinado usuário no dia atual, basta substituir o parâmetro ":username" da rota pelo usuário do github correspondente, você deve receber uma resposta no seguinte modelo: - -```json -{ - "new_forks": 0, - "new_issues": 0, - "new_prs": 4, - "new_stars": 0, - "new_repositories": 0, - "new_interactions": 4, - "new_commits": 32, - "commits": [ - { - "repository": { - "id": 289791710, - "name": "Guardians-DSC/GitRadar", - "url": "https://api.github.com/repos/Guardians-DSC/GitRadar" - }, - "message": "initial Service structure created" - }, - { - "repository": { - "id": 293942092, - "name": "davigsousa/GitRadar", - "url": "https://api.github.com/repos/davigsousa/GitRadar" - }, - "message": "Merge pull request #1 from davigsousa/develop\n\nCriação da Api e Criação do Profile Service" - } - ] -} -``` - ## Iniciar sessão com a conta de um professor: ``` @@ -172,18 +99,19 @@ Realiza a sessão de um professor na aplicação, para realizar a requisição, ```json { - "teacher": { - "id": "7ea79496-c141-487c-a810-522aa949839f", - "github_login": "davigsousa", - "name": "Davi Sousa", - "email": "davi@email.com", - "avatar_url": "https://avatars0.githubusercontent.com/u/40612788?v=4", - "github_id": "40612788", - "created_at": "2020-10-28T04:41:07.360Z", - "updated_at": "2020-10-28T04:45:26.492Z" + "manager": { + "id": "058bd335-1a2a-4856-8969-861d6707586a", + "github_login": "AntonioNtV", + "name": "Antonio Bertino de Vasconcelos Cabral Neto ", + "email": "antoniontv1920@gmail.com", + "github_token": null, + "avatar_url": "https://avatars3.githubusercontent.com/u/38543529?v=4", + "github_id": "38543529", + "created_at": "2020-11-22T16:50:12.236Z", + "updated_at": "2020-11-22T16:50:12.236Z" }, - "token": "tokenJWT", - "hasGithubToken": true + "token": "TOKEN", + "hasGithubToken": false } ``` From 78784657cc4410fba6a6d8c9d524bb2c90fbfb1b Mon Sep 17 00:00:00 2001 From: AntonioNtV Date: Sun, 22 Nov 2020 11:02:04 -0300 Subject: [PATCH 2/2] Changing nomenclature of teachers, spots, and projetcs in project docs --- backend/README.md | 245 ++++++++++++++++++++++------------------------ 1 file changed, 119 insertions(+), 126 deletions(-) diff --git a/backend/README.md b/backend/README.md index 0c89a7a..ce2185d 100644 --- a/backend/README.md +++ b/backend/README.md @@ -45,7 +45,7 @@ Guarde os valores do ClientID e ClientSecret, você usará no ".env", além diss - Homepage URL: http://localhost:3000 - Authorization callback URL: http://localhost:3000/dashboard -Essa configuração serve para que a autenticação com o Github de um professor seja possível. A maneira mais fácil e eficiente é executar o frontend e o backend simultaneamente para que você realize o vínculo através da interface gráfica do site. +Essa configuração serve para que a autenticação com o Github de um Manager seja possível. A maneira mais fácil e eficiente é executar o frontend e o backend simultaneamente para que você realize o vínculo através da interface gráfica do site.

Agora, precisamos configurar as variáveis de ambiente. Para isso, você deve copiar o arquivo ".env.sample" e o renomear para ".env" na pasta raiz do Backend. Você precisa preencher os valores de todas as variáveis de acordo com o seu significado. @@ -89,13 +89,13 @@ yarn dev:server # 🔎 Endpoints da API -## Iniciar sessão com a conta de um professor: +## Iniciar sessão com a conta de um Manager: ``` POST /session ``` -Realiza a sessão de um professor na aplicação, para realizar a requisição, deve-se enviar uma chave "email" com o e-mail do professor uma chave "password" com a senha, dessa forma, se recebe como retorno o token JWT para o uso em rotas autenticadas, exemplo de retorno: +Realiza a sessão de um Manager na aplicação, para realizar a requisição, deve-se enviar uma chave "email" com o e-mail do manager uma chave "password" com a senha, dessa forma, se recebe como retorno o token JWT para o uso em rotas autenticadas, exemplo de retorno: ```json { @@ -117,170 +117,163 @@ Realiza a sessão de um professor na aplicação, para realizar a requisição, ## ⭐ A partir daqui, todas as rotas são autenticadas. -## Listar alunos de uma turma: +## Listar Spots de um Projeto: ``` -GET /class/ +GET /project/:project_id ``` -Listar todos os alunos da turma da aplicação, exemplo de retorno: +Listar todos os Spots de um projeto salvo na aplicação, exemplo de retorno: ```json [ { - "id": "69615485-8f7c-473e-9099-cce2ce31200d", - "teacher_id": "7ea79496-c141-487c-a810-522aa949839f", - "github_login": "natalia-sa", - "avatar_url": "https://avatars2.githubusercontent.com/u/55745942?v=4", - "top_language": "Java", - "github_id": "55745942", - "name": "Natália Salvino André", - "created_at": "2020-10-28T04:45:42.499Z", - "updated_at": "2020-10-28T04:45:42.499Z" + "id": "efdbc8b0-8a59-4247-9a65-d80bfc70967d", + "manager_id": null, + "github_login": "davigsousa", + "avatar_url": "https://avatars3.githubusercontent.com/u/40612788?u=abb3a9982b62292b78f741ce47e8eb3a8803bd84&v=4", + "top_language": "none", + "github_id": "MDQ6VXNlcjQwNjEyNzg4", + "name": "Davi Sousa", + "created_at": "2020-11-21T16:17:12.464Z", + "updated_at": "2020-11-21T16:17:12.464Z" + }, + { + "id": "464945d6-f905-481f-8f27-18d09d029240", + "manager_id": null, + "github_login": "arturbs", + "avatar_url": "https://avatars3.githubusercontent.com/u/41977691?v=4", + "top_language": "none", + "github_id": "MDQ6VXNlcjQxOTc3Njkx", + "name": "arturbs", + "created_at": "2020-11-21T18:57:18.116Z", + "updated_at": "2020-11-21T18:57:18.116Z" }, { - "id": "15f7c236-075f-454b-be9e-9b8e4a8aa335", - "teacher_id": "7ea79496-c141-487c-a810-522aa949839f", - "github_login": "kleberfsobrinho", - "avatar_url": "https://avatars2.githubusercontent.com/u/56925275?v=4", - "top_language": "Java", - "github_id": "56925275", - "name": null, - "created_at": "2020-10-28T04:51:31.278Z", - "updated_at": "2020-10-28T04:51:31.278Z" + "id": "1a523c45-5b45-41cb-aec3-325618f60f1f", + "manager_id": null, + "github_login": "NathanLCR", + "avatar_url": "https://avatars1.githubusercontent.com/u/48298897?u=6736c6de331e65dc08b6d79e6fbfac29919c2b3c&v=4", + "top_language": "none", + "github_id": "MDQ6VXNlcjQ4Mjk4ODk3", + "name": "Nathan Lucio", + "created_at": "2020-11-21T18:57:23.884Z", + "updated_at": "2020-11-21T18:57:23.884Z" } ] ``` -## Listar alunos da turma abaixo da média: +## Listar Spots do projeto com interações abaixo da média: ``` -GET /class/below_average?since=2020-10-02 +GET /project/:project_id/below_average?since=2020-10-02 ``` -Informando o parâmetro "since" na query, você informa o início do período de avaliação da média, outro parâmetro opcional na rota é "until" que delimita o final do período. Use essa rota para listar todos os alunos da turma abaixo da média de interações, exemplo de retorno: +Informando o parâmetro "since" na query, você informa o início do período de avaliação da média, outro parâmetro opcional na rota é "until" que delimita o final do período. Use essa rota para listar todos os spots de um projeto abaixo da média de interações, exemplo de retorno: ```json [ { - "id": "69615485-8f7c-473e-9099-cce2ce31200d", - "teacher_id": "7ea79496-c141-487c-a810-522aa949839f", - "github_login": "natalia-sa", - "avatar_url": "https://avatars2.githubusercontent.com/u/55745942?v=4", - "top_language": "Java", - "github_id": "55745942", - "name": "Natália Salvino André", - "created_at": "2020-10-28T04:45:42.499Z", - "updated_at": "2020-10-28T04:45:42.499Z" + "id": "1a523c45-5b45-41cb-aec3-325618f60f1f", + "github_login": "NathanLCR", + "manager_id": null, + "avatar_url": "https://avatars1.githubusercontent.com/u/48298897?u=6736c6de331e65dc08b6d79e6fbfac29919c2b3c&v=4", + "top_language": "none", + "github_id": "MDQ6VXNlcjQ4Mjk4ODk3", + "name": "Nathan Lucio", + "created_at": "2020-11-21T18:57:23.884Z", + "updated_at": "2020-11-21T18:57:23.884Z" }, { - "id": "15f7c236-075f-454b-be9e-9b8e4a8aa335", - "teacher_id": "7ea79496-c141-487c-a810-522aa949839f", - "github_login": "kleberfsobrinho", - "avatar_url": "https://avatars2.githubusercontent.com/u/56925275?v=4", - "top_language": "Java", - "github_id": "56925275", - "name": null, - "created_at": "2020-10-28T04:51:31.278Z", - "updated_at": "2020-10-28T04:51:31.278Z" + "id": "2d624fbc-152e-46be-92f9-60e631ea8db0", + "github_login": "HigorSnt", + "manager_id": null, + "avatar_url": "https://avatars1.githubusercontent.com/u/40602956?u=079b6f0f87e03d57e31081bba7c7809c7c9c14b8&v=4", + "top_language": "none", + "github_id": "MDQ6VXNlcjQwNjAyOTU2", + "name": "Higor Santos", + "created_at": "2020-11-21T18:56:12.970Z", + "updated_at": "2020-11-21T18:56:12.970Z" } ] ``` -## Obter Relatório da Turma: +## Obter Relatório do Projeto: ``` -GET /class/report?since=2020-10-02 +GET /project/:project_id/report?since=2020-10-02 ``` -Informando o parâmetro "since" na query, você informa o início do período, outro parâmetro opcional na rota é "until" que delimita o final do período. Use essa rota para obter o relatório de uma turma em um período, exemplo de retorno: +Informando o parâmetro "since" na query, você informa o início do período, outro parâmetro opcional na rota é "until" que delimita o final do período. Use essa rota para obter o relatório de um projeto em um período, exemplo de retorno: ```json { - "all_new_interactions": 36, - "all_new_commits": 29, - "new_interactions_average": 3, - "new_commits_average": 2.4166666666666665 + "all_new_interactions": 2, + "all_new_commits": 0, + "new_interactions_average": 0.25, + "new_commits_average": 0 } ``` -## Adicionar aluno na Turma: +## Adicionar Spot no Projeto: ``` -POST /student +POST /spot ``` -Adiciona-se um aluno na turma, para realizar a requisição, deve-se enviar uma chave "github_login" com o username do aluno no Github, dessa forma, se recebe como retorno o aluno criado, exemplo de retorno: +Adiciona-se um spot no projeto, para realizar a requisição, deve-se enviar uma chave "github_login" com o username do spot no Github, dessa forma, se recebe como retorno o spot criado, exemplo de retorno: ```json { - "teacher_id": "84e5a509-16af-4f3d-805c-c400751e6d4c", - "github_login": "antoniontv", - "avatar_url": "https://avatars3.githubusercontent.com/u/38543529?v=4", - "top_language": "Java", - "github_id": "38543529", - "name": "Antonio Bertino de Vasconcelos Cabral Neto ", - "id": "62085bb4-4a0a-47ca-a470-c43c3cdcc080", - "created_at": "2020-10-23T08:04:42.903Z", - "updated_at": "2020-10-23T08:04:42.903Z" -} -``` - -## Obtém as informações de um aluno: - -``` -GET /student/:username -``` - -Obtém as informações de um aluno, deve-se enviar o username do Github do aluno como params :username, é retornado as informações do estudante e seus repositórios: - -```json -{ - "student": { - "id": "f5de7532-0a61-4db1-833c-2513aa5f0dab", - "teacher_id": "7ea79496-c141-487c-a810-522aa949839f", - "github_login": "davigsousa", - "avatar_url": "https://avatars0.githubusercontent.com/u/40612788?v=4", - "top_language": "JavaScript", - "github_id": "40612788", - "name": "Davi Sousa", - "created_at": "2020-10-28T04:47:35.601Z", - "updated_at": "2020-10-28T04:47:35.601Z" - }, + "github_login": "DaniloDMF", + "avatar_url": "https://avatars1.githubusercontent.com/u/55511256?v=4", "repositories": [ { - "id": "35d0645f-1ace-439d-8349-379a40f5c8a8", - "student_id": "f5de7532-0a61-4db1-833c-2513aa5f0dab", - "name": "a-granja-api", - "full_name": "davigsousa/a-granja-api", - "description": "API RESTful para servir os dados das votações no Programa \"A Granja\".", - "html_url": "https://github.com/davigsousa/a-granja-api", - "github_id": "277945496", - "created_at": "2020-10-28T04:47:35.864Z", - "updated_at": "2020-10-28T04:47:35.864Z" + "id": "a0826bd8-798f-4c98-bf21-85996aca234b", + "name": "hello-world", + "full_name": "DaniloDMF/hello-world", + "description": null, + "html_url": "https://github.com/DaniloDMF/hello-world" + }, + { + "id": "05348432-3086-4bfc-9806-06e144a438a3", + "name": "README.md", + "full_name": "DaniloDMF/README.md", + "description": "README.md", + "html_url": "https://github.com/DaniloDMF/README.md" }, { - "id": "fdf99a27-c1c7-4f0b-b55c-eb79eb444f4d", - "student_id": "f5de7532-0a61-4db1-833c-2513aa5f0dab", - "name": "viva-web", - "full_name": "davigsousa/viva-web", - "description": "Website desenvolvido no Hackathon MegaHack. (Descontinuado)", - "html_url": "https://github.com/davigsousa/viva-web", - "github_id": "260795504", - "created_at": "2020-10-28T04:47:41.821Z", - "updated_at": "2020-10-28T04:47:41.821Z" + "id": "c1e816bb-7f17-4cc0-a966-89fcb9cc3802", + "name": "OlaMundo", + "full_name": "DaniloDMF/OlaMundo", + "description": null, + "html_url": "https://github.com/DaniloDMF/OlaMundo" + }, + { + "id": "2a87f715-4ee3-4ff0-935d-03aa8ca44410", + "name": "PWEB", + "full_name": "DaniloDMF/PWEB", + "description": null, + "html_url": "https://github.com/DaniloDMF/PWEB" + }, + { + "id": "b8e58c79-9e93-4915-bc10-cdfb4f43191b", + "name": "montanha-do-dragao-negro", + "full_name": "DaniloDMF/montanha-do-dragao-negro", + "description": null, + "html_url": "https://github.com/DaniloDMF/montanha-do-dragao-negro" } ] } ``` -## Obtém a quantidade de interações por dia em um período de um estudante: +## Obtém a quantidade de interações por dia em um período de um Spot: ``` -GET /student/:username/interactions/volume?since=2020-11-02 +GET /spot/volume/:username/interactions?since=2020-11-02 ``` -Informando o parâmetro "since" na query, você informa o início do período, outro parâmetro opcional na rota é "until" que delimita o final do período. Obtém a quantidade de interações por dia de um aluno, deve-se enviar o username do Github do aluno como params :username, as quantidades são retornadas no seguinte modelo: +Informando o parâmetro "since" na query, você informa o início do período, outro parâmetro opcional na rota é "until" que delimita o final do período. Obtém a quantidade de interações por dia de um spot, deve-se enviar o username do Github do spot como params :username, as quantidades são retornadas no seguinte modelo: ```json [ @@ -299,13 +292,13 @@ Informando o parâmetro "since" na query, você informa o início do período, o ] ``` -## Obtém a adição e remoção de linhas por dia em um período de um estudante: +## Obtém a adição e remoção de linhas por dia em um período de um Spot: ``` -GET /student/:username/lines/volume?since=2020-11-02 +GET /spot/volume/:username/lines?since=2020-11-02 ``` -Informando o parâmetro "since" na query, você informa o início do período, outro parâmetro opcional na rota é "until" que delimita o final do período. Obtém a quantidade adições e remoções de linhas de código por dia de um aluno, deve-se enviar o username do Github do aluno como params :username, as quantidades são retornadas no seguinte modelo: +Informando o parâmetro "since" na query, você informa o início do período, outro parâmetro opcional na rota é "until" que delimita o final do período. Obtém a quantidade adições e remoções de linhas de código por dia de um spot, deve-se enviar o username do Github do spot como params :username, as quantidades são retornadas no seguinte modelo: ```json [ @@ -327,13 +320,13 @@ Informando o parâmetro "since" na query, você informa o início do período, o ] ``` -## Obter Relatório de um estudante: +## Obter Relatório de um Spot: ``` -GET /student/:username/report?since=2020-10-02 +GET /spot/:username/report?since=2020-10-02 ``` -Informando o parâmetro "since" na query, você informa o início do período, outro parâmetro opcional na rota é "until" que delimita o final do período. Use essa rota para obter o relatório de um estudante em um período, exemplo de retorno: +Informando o parâmetro "since" na query, você informa o início do período, outro parâmetro opcional na rota é "until" que delimita o final do período. Use essa rota para obter o relatório de um spot em um período, exemplo de retorno: ```json { @@ -364,23 +357,23 @@ Informando o parâmetro "since" na query, você informa o início do período, o } ``` -## Adicionar professor na aplicação: +## Adicionar Manager na aplicação: ``` -POST /teacher +POST /manager ``` -Adiciona-se um professor na aplicação, para realizar a requisição, deve-se enviar uma chave "github_login" com o username do professor no Github, uma chave "email" com o e-mail do professor e uma chave "password" no body da requisição, dessa forma, se recebe como retorno o professor criado, exemplo de retorno: +Adiciona-se um Manger na aplicação, para realizar a requisição, deve-se enviar uma chave "github_login" com o username do Manager no Github, uma chave "email" com o e-mail do Manager e uma chave "password" no body da requisição, dessa forma, se recebe como retorno o Manager criado, exemplo de retorno: ```json { - "github_login": "davigsousa", - "name": "Davi Sousa", - "email": "davi.gomes.sousa@ccc.ufcg.edu.br", - "avatar_url": "https://avatars0.githubusercontent.com/u/40612788?v=4", - "github_id": "40612788", - "id": "84e5a509-16af-4f3d-805c-c400751e6d4c", - "created_at": "2020-10-15T21:52:19.772Z", - "updated_at": "2020-10-15T21:52:19.772Z" + "github_login": "AntonioNtV", + "name": "Antonio Bertino de Vasconcelos Cabral Neto ", + "email": "antoniontv1920@gmail.com", + "avatar_url": "https://avatars3.githubusercontent.com/u/38543529?v=4", + "github_id": 38543529, + "id": "058bd335-1a2a-4856-8969-861d6707586a", + "created_at": "2020-11-22T16:50:12.236Z", + "updated_at": "2020-11-22T16:50:12.236Z" } ```