Documentação - Eduardoooo0/POS GitHub Wiki
Documentação do Projeto: UniSearch
1. Visão Geral
Tecnologias Utilizadas:
- Python
- FastAPI
- Uvicorn
- Requests (API externa)
Descrição: Sistema de busca por universidades ao redor do mundo, baseado na API pública Hipolabs University API.
Objetivo: Fornecer uma plataforma para pesquisa de universidades por nome ou país, com possibilidade futura de filtragem mais avançada e recursos adicionais.
2. Descrição Detalhada do Projeto
O que é o projeto? Uma aplicação web que permite ao usuário pesquisar universidades usando dados da API pública Hipolabs. Retorna nome, país, domínio e site da instituição.
2.1 Funcionalidades Principais
Funcionalidades já implementadas (30%):
- Rota 1: Buscar universidades por país (
/universidades/pais
) - Rota 2: Buscar universidades por nome (
/universidades/nome
)
Funcionalidades futuras planejadas:
-
Rota 3: Buscar universidades brasileiras (
/universidades/brasil
) e aplicar filtros locais por:- Estado (a partir do nome ou domínio, com regras manuais)
- Domínio (ex:
.edu.br
,.com
) - Tipo estimado (pública ou privada, por nome)
-
Rota 4: Marcar universidades como favoritas (com persistência em banco ou JSON)
-
Rota 5: Integração com RESTCountries para exibir dados extras do país
-
Rota 6: Armazenar dados localmente (cache) para permitir filtragens mais avançadas
2.2 Arquitetura do Código
unisearch/
├── main.py # Inicia o app FastAPI
├── api.py # Define as rotas da aplicação
├── models.py # Modelos Pydantic
├── services.py # Funções auxiliares e consumo da API externa
├── requirements.txt # Dependências
3. Etapas de Entrega (Cronograma Detalhado)
Etapa 1 (atual – 30%)
- Definição do escopo e estrutura do projeto
- Implementação das rotas básicas de busca por país e nome
Etapa 2
- Criação de rota local com dados filtrados do Brasil
- Início da persistência local (ex: JSON ou SQLite)
Etapa 3
- Filtros por estado e classificação (pública/privada)
- Salvamento de universidades favoritas
Etapa 4
- Integração com APIs externas auxiliares (RESTCountries, IBGE)
- Melhoria da exibição de dados
Etapa 5
- Deploy e documentação final
4. Requisitos
4.1 Requisitos funcionais
-
O usuário pode buscar universidades por país.
-
O usuário pode buscar universidades por nome.
-
O sistema exibe nome, país, domínio e site da instituição.
-
O sistema deve permitir futura filtragem por domínio ou classificação (privada/pública).
-
O sistema deverá permitir login e marcação de universidades como favoritas (planejado).
-
O sistema poderá armazenar e exibir resultados com cache local.
4.2 Requisitos não-funcionais
-
Desempenho: As respostas da API devem ser processadas em até 3 segundos.
-
Usabilidade: Interface amigável e clara para busca, com documentação interativa via Swagger.
-
Segurança: Toda alteração de dados (favoritos) será protegida por autenticação JWT.
-
A API usará controle de acesso para evitar acessos não autorizados.
-
Escalabilidade: Suporte a expansão futura com banco de dados, cache e integração com múltiplas APIs.
-
Compatibilidade: A aplicação será acessível via navegadores modernos.