This is Repoprovas! / Este é Repoprovas!

English

This is an API to support a website that joins tests so that studantes can check to study
You can register, login, post a previous test, get all tests for a given subject or teacher

Highlights: Layered Architecture, Prisma, JWT, JEST, SuperTest

Português

Esta é uma API para dar suporte a um site que une testes para que os alunos possam verificar e estudar
Você pode se registrar, fazer login, postar um teste anterior e suas informações, obter todos os testes de determinada disciplina ou professor

Destaques: Arquitetura em camadas, Prisma, JWT, JEST, SuperTest

Database and backend deploy link

https://projeto20-repoprovas-backlaura.herokuapp.com

Usage

$ git clone https://github.com/snowslaura/projeto20-repoprovas

$ cd projeto20-repoprovas

$ npm install

$ npm run dev

Rotas de autenticação:

  • POST /signup
    • Rota para cadastrar um usuário (Senha de no mínimo 10 caracteres)
    • headers: {}
    • body: {
      "email": $"email@email.com",
      "password": $"senha"
      }
  • POST /sign-in
    • Rota para o usuário logar e receber um token através do corpo da resposta
    • headers: {}
    • body: {
      "email": $"email@email.com",
      "password": $"senha"
      }
    • Gera um token que será utilizado nas rotas privadas

Rotas de tests:

  • POST /tests (rota privada)
    • Rota para o usuário cadastrar uma prova/teste
    • headers: {
      "Authorization": "Bearer token"
      }
    • body: {

      "name": $"Titulo do arquivo",
      "pdfUrl":$http://pdf.com
      "categoryId":$número da id referente à categoria,
      "teacherDisciplineId" : $número da id referente à realçaõ teacherDIsciplines
      }
  • GET /tests?groupBy=teachers (rota privada)
    • Rota para o usuário buscar todas os testes da plataforma sepados por professor
    • headers: {
      "Authorization": "Bearer token"
      }
    • body: {}
  • GET /tests?groupBy=disciplines (rota privada)
    • Rota para o usuário buscar todas os testes da plataforma sepados por disciplina
    • headers: {
      "Authorization": "Bearer token"
      }
    • body: {}

Rotas de categorias:

  • GET /categories (rota privada)
    • Rota para o usuário buscar todas as categorias registradas
    • headers: {
      "Authorization": "Bearer token"
      }
    • body: {}