Esse repositório usou como base o JSON-Server + JSON-Server-Auth do tsunode(https://github.com/Kenzie-Academy-Brasil-Developers/json-server-base).
Assim como a documentação do JSON-Server-Auth traz (https://www.npmjs.com/package/json-server-auth), existem 3 endpoints que podem ser utilizados para cadastro e 2 endpoints que podem ser usados para login.
POST /register
POST /signup
POST /users
Qualquer um desses 3 endpoints irá cadastrar o usuário na lista de "Users", sendo que os campos obrigatórios são os de email e password. Você pode ficar a vontade para adicionar qualquer outra propriedade no corpo do cadastro dos usuários.
POST /login
POST /signin
Qualquer um desses 2 endpoints pode ser usado para realizar login com um dos usuários cadastrados na lista de "Users"
GET /users/${studentId}
As notas são do tipo string pois inicialmente os alunos não tem notas e colocar 0 para inicializar confundiria com um real 0 na matéria.
GET /users?cpfParent=${parentCpf}
GET /users?class=${professorClass}
A classe (className) representa um nome, que pode tanto ser um "número" quanto um texto, por isso é inicialmente do tipo string.
PATCH /users/${studentId}
Adicionar aluno a turma: Alterar a chave class do aluno para ser a mesma do professor e adicionar a chave grades com as matérias baseado na turma (você pode descobrir as matérias na requisição de buscar matérias da turma), pelo insomnia acredito que colocar diretamente as máterias e notas (chave grades) é mais fácil.
Remover aluno da turma: Basta enviar a chave class com valor de string vazia.
Alterar nota: Basta enviar a chave grades com as alterações desejadas, mas atenção, precisa enviar todas as matérias, até as que não forem alteradas.
GET /classes?class=${className}
Com essa requisição você consegue ver as matérias daquela turma.
GET /users?class=${className}&name_like=${inputValue}
Na hora da requisição passar como parâmetro o valor do campo (input), dessa forma pesquisando como um filter dentro da fake API.