AEFP_PortalAtlas

Portal AEFP

Visão Geral

O Portal AEFP é uma plataforma institucional para consolidação, exploração e visualização de dados relacionados às atividades da Assessoria de Ensino e Fomento à Pesquisa (AEFP).

O sistema foi concebido para transformar bases de dados dispersas em um atlas digital integrado, permitindo navegação por:

O portal utiliza visualizações interativas, mapas geográficos e painéis analíticos para ampliar a transparência, rastreabilidade e capacidade de análise das informações institucionais.


Objetivos

O Portal AEFP busca responder perguntas como:


Arquitetura Geral

Frontend (Next.js)
        │
        ▼
Backend (FastAPI)
        │
        ▼
PostgreSQL + PostGIS
        │
        ▼
Bases de Dados AEFP

Tecnologias Utilizadas

Frontend

Next.js

Responsável pela interface web.

Utilizado para:

Exemplos de módulos:

TypeScript

Utilizado para tipagem estática.

Benefícios:

TailwindCSS

Framework de estilização.

Benefícios:

TanStack Query

Gerenciamento de requisições.

Responsável por:

Leaflet

Biblioteca para mapas interativos.

Utilizada no Atlas Geográfico.

Permite:

Recharts

Biblioteca de gráficos.

Utilizada para:


Backend

FastAPI

Framework principal da API.

Responsável por:

Exemplos:

GET /countries
GET /projects
GET /institutions

SQLAlchemy

ORM utilizado para comunicação com o banco.

Benefícios:

Alembic

Sistema de versionamento do banco.

Permite:

Pydantic

Validação de dados.

Responsável por:

GeoAlchemy2

Extensão espacial.

Permite operações geográficas utilizando PostGIS.


Banco de Dados

PostgreSQL

Banco relacional principal.

Armazena:

PostGIS

Extensão geográfica utilizada para:


Estrutura do Repositório

portal-aefp/
│
├── back/
├── front/
├── database/
├── docs/
├── docker-compose.yml
├── README.md
└── .env.example

Estrutura de Dados

Entidades Principais

continents
countries
institutions
programs
projects
scholarships
indicators

Relacionamentos

project_countries
project_institutions
scholarship_institutions

Configuração do Ambiente

Clonar o Projeto

git clone <repositorio>

cd portal-aefp

Configuração do Banco de Dados

Criar um arquivo .env ou utilizar as variáveis:

POSTGRES_DB=aefp
POSTGRES_USER=aefp
POSTGRES_PASSWORD=aefp

Executar os containers:

docker compose up -d

Verificar execução:

docker ps

Configuração do Backend

Entrar na pasta:

cd back

Criar ambiente virtual:

python -m venv .venv

Ativar ambiente:

Linux/Mac

source .venv/bin/activate

Windows

.venv\Scripts\activate

Instalar dependências:

pip install -r requirements.txt

Criar o arquivo .env:

Desenvolvimento Local

DATABASE_URL=postgresql://aefp:aefp@localhost:5432/aefp

APP_NAME=Portal AEFP

DEBUG=True

Docker Compose

Quando o backend estiver rodando dentro de um container Docker e o serviço PostgreSQL se chamar db:

DATABASE_URL=postgresql://aefp:aefp@db:5432/aefp

APP_NAME=Portal AEFP

DEBUG=True

Executar:

uvicorn app.main:app --reload

Abrir:

http://localhost:8000/docs

Configuração do Frontend

Entrar na pasta:

cd front

Instalar dependências:

npm install

Criar arquivo .env.local:

Desenvolvimento Local

NEXT_PUBLIC_API_URL=http://localhost:8000

Executar:

npm run dev

Abrir:

http://localhost:3000

Uso com GitHub Codespaces

Backend

Quando utilizado junto com Docker Compose:

DATABASE_URL=postgresql://aefp:aefp@db:5432/aefp

O hostname db funciona porque os containers compartilham a mesma rede Docker.

Caso o FastAPI esteja sendo executado fora do container:

DATABASE_URL=postgresql://aefp:aefp@localhost:5432/aefp

ou

DATABASE_URL=postgresql://aefp:aefp@127.0.0.1:5432/aefp

dependendo da configuração da porta.


Frontend

Durante o desenvolvimento normalmente é utilizado:

NEXT_PUBLIC_API_URL=http://localhost:8000

Entretanto, ao expor portas no GitHub Codespaces, o endereço pode assumir o formato:

https://SEU-CODESPACE-8000.app.github.dev

Exemplo:

NEXT_PUBLIC_API_URL=https://SEU-CODESPACE-8000.app.github.dev

Fluxo de Funcionamento

Usuário
   │
   ▼
Interface Next.js
   │
   ▼
Axios
   │
   ▼
FastAPI
   │
   ▼
SQLAlchemy
   │
   ▼
PostgreSQL/PostGIS
   │
   ▼
Retorno dos Dados
   │
   ▼
Mapas e Gráficos

Boas Práticas Implementadas


Segurança

O portal deve observar:

Nenhum dado sensível deve ser disponibilizado publicamente sem avaliação prévia de sua necessidade institucional e conformidade normativa.


Roadmap de Desenvolvimento

Fase 1

Fase 2

Fase 3

Fase 4


Documentação Complementar

A documentação técnica deverá ser mantida em:

docs/
│
├── arquitetura/
├── metodologia/
├── dicionario-dados/
└── wireframes/

Objetivos:


Créditos

Desenvolvimento e Arquitetura do Portal AEFP

Marcelo Vaz Oliveira

Responsável pela concepção, implementação, modelagem de dados, integração dos componentes e evolução do sistema.

Suporte Técnico e Apoio Arquitetural

M365 Copilot (GPT-5)

Utilizado como ferramenta de apoio para discussão de arquitetura, organização do projeto, revisão técnica, documentação, modelagem e sugestões de implementação.

Todas as decisões finais de arquitetura, código, modelagem de dados, infraestrutura e publicação são de responsabilidade do desenvolvedor do projeto, que conduziu e implementou a solução.


Licença

Definir conforme orientação institucional e requisitos de publicação do projeto.