API de escolas
A API Schools fornece endpoints para gerenciar escolas, visualizar classificações escolares e o programa Escola do Mês.
Visão geral
Escolas em omegaUp:
- Rastreie afiliações de usuários
- Contribuir para classificações escolares com base na atividade dos membros
- Participe do programa Escola do Mês
Pontos finais
Listar escolas
Pesquisa escolas que correspondem a uma consulta. Usado para digitação antecipada/preenchimento automático.
GET /api/school/list/
Parâmetros:
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
query |
corda | Sim* | Termo de pesquisa |
term |
corda | Sim* | Parâmetro de pesquisa alternativo |
*É necessário um dos query ou term.
Resposta:
{
"results": [
{
"key": 123,
"value": "Massachusetts Institute of Technology"
},
{
"key": 456,
"value": "Stanford University"
}
]
}
Criar escola
Cria uma nova entrada escolar.
POST /api/school/create/
Parâmetros:
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
name |
corda | Sim | Nome da escola |
country_id |
corda | Não | Código do país (por exemplo, "MX", "US") |
state_id |
corda | Não | Código do estado/província |
Resposta:
{
"school_id": 789
}
- Se existir uma escola com o mesmo nome, retorna o ID escolar existente
- O estado exige que o país seja especificado
Privilégios: Usuário autenticado
Selecione a escola do mês
Seleciona uma escola como a Escola do Mês (somente mentor).
POST /api/school/selectSchoolOfTheMonth/
Parâmetros:
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
school_id |
interno | Sim | ID escolar para selecionar |
Resposta:
{
"status": "ok"
}
Requisitos:
- Deve estar dentro do período de seleção
- A escola deve estar na lista de candidatos
- Não é possível selecionar se já estiver selecionado para o mês
Dados do perfil da escola
Os perfis escolares incluem:
Informações Básicas
- Nome da escola
- Localização (país, estado)
- Classificação global
Estatísticas
- Contagem mensal de problemas resolvidos
- Codificadores do Mês da escola
- Usuários ativos e suas conquistas
Classificações escolares
As escolas são classificadas com base em:
- Pontuação: Agregado de atividades dos membros
- Problemas Resolvidos: Total de problemas resolvidos pelos membros
- Usuários Ativos: Número de membros contribuintes
As classificações são armazenadas em cache e atualizadas periodicamente.
Escola do Mês
Visão geral do programa
A cada mês, uma escola é selecionada como "Escola do Mês" com base em:
- Atividade dos membros e resolução de problemas
- Participação no concurso
- Contribuições de qualidade
Processo Seletivo
- Sistema gera candidatos com base na atividade
- Os mentores podem selecionar candidatos durante o período de seleção
- O candidato ao primeiro lugar é selecionado por padrão se não houver seleção de mentor
Dados do Candidato
{
"candidatesToSchoolOfTheMonth": [
{
"school_id": 123,
"name": "Top University",
"country_id": "MX",
"ranking": 1,
"score": 1500.5,
"school_of_the_month_id": 456
}
]
}
{
"candidatesToSchoolOfTheMonth": [
{
"school_id": 123,
"name": "Top University",
"country_id": "MX",
"ranking": 1,
"score": 1500.5,
"school_of_the_month_id": 456
}
]
}
Campos de perfil da escola
| Campo | Tipo | Descrição |
|---|---|---|
school_id |
interno | Identificador único |
name |
corda | Nome da escola |
country_id |
corda | Código do país |
ranking |
interno | Posição no ranking global |
score |
flutuar | Pontuação de atividade calculada |
Casos de uso
Registro de usuário na escola
// Search for school
const schools = await fetch('/api/school/list/?query=MIT');
const results = await schools.json();
// Use school_id (key) in user profile
const schoolId = results.results[0].key;
Criar nova escola
curl -X POST https://omegaup.com/api/school/create/ \
-d "name=New Tech University&country_id=US&state_id=CA"
curl -X POST https://omegaup.com/api/school/create/ \
-d "name=New Tech University&country_id=US&state_id=CA"
Dados relacionados
Problemas resolvidos mensalmente
Acompanhe a atividade escolar ao longo do tempo:
{
"monthly_solved_problems": [
{ "year": 2024, "month": 1, "problems_solved": 150 },
{ "year": 2024, "month": 2, "problems_solved": 175 }
]
}
Usuários escolares
Principais colaboradores de uma escola:
{
"school_users": [
{
"username": "top_coder",
"classname": "user-rank-master",
"created_problems": 10,
"solved_problems": 500,
"organized_contests": 5
}
]
}
{
"school_users": [
{
"username": "top_coder",
"classname": "user-rank-master",
"created_problems": 10,
"solved_problems": 500,
"organized_contests": 5
}
]
}
Documentação Relacionada
- API de usuários - Perfil do usuário e associação escolar
- API de problemas - Estatísticas de resolução de problemas
Referência completa
Para obter detalhes completos de implementação, consulte o código-fonte do School Controller.