/repop

A backend applicattion to support repof web app. It manages and provides necessary data.

Primary LanguageTypeScript

total lines last commit issues

repop

O repop é uma aplicação backend desenvolvida para gerenciar os dados de um repositório público onde estudantes podem compartilhar provas uns com os outros. Essa aplicação foi feita para servir o web app repof, você pode achá-lo clicando aqui.

Tecnologias usadas:

NodeJS ExpressJS PostgreSQL Typescript Jest

Cobertura de testes

DB design

Rotas:

  • POST /exams

    Adiciona uma nova prova, não é necessário nenhum tipo de autenticação para enviar provas, o formato do body deve ser: .

    {
      "name": "2020.1",
      "examLink": "https://linkpropdf.pdf",
      "disciplineId": 3,
      "teacherId": 6,
      "categoryId": 2,
    }

    O retorno é um id da prova cadastrada

    {
      "id": 6
    }
  • GET /exams/teacher

    Retorna um array com todas as provas cadastradas, organizadas por professor, seguindo o padrão:

      {
          "id": 10,
          "name": "Crystal Sporer",
          "exams": [
            {
              "id": 1,
              "name": "2021.1",
              "examLink": "https://download.inep.gov.br/enem/provas_e_gabaritos/2021_PV_impresso_D1_CD1.pdf",
              "categoryName": "P1"
            },
            {
              "id": 11,
              "name": "2020.1",
              "examLink": "https://download.inep.gov.br/enem/provas_e_gabaritos/2021_PV_impresso_D1_CD1.pdf",
              "categoryName": "P1"
            }
          ]
        }
  • GET /exams/discipline

    Retorna um array com todas as provas cadastradas, organizadas por disciplina, seguindo o padrão:

        {
            "id": 1,
            "name": "Cálculo I",
            "semesterId": 1,
            "semester": "1",
            "teachers": [
              {
                "id": 10,
                "name": "Crystal Sporer"
              }
            ],
            "exams": [
              {
                "id": 1,
                "name": "2021.1",
                "examLink": "https://download.inep.gov.br/enem/provas_e_gabaritos/2021_PV_impresso_D1_CD1.pdf",
                "categoryId": 1,
                "categoryName": "P1",
                "teacher": "Crystal Sporer"
              }
            ]
          },