Sistema completo de gestão de ideias inovadoras para o Pantanal EngComp, desenvolvido com backend FastAPI e frontend Next.js, oferecendo uma plataforma moderna e intuitiva para submissão, acompanhamento e gestão de ideias de inovação.
Este sistema foi desenvolvido para facilitar a gestão de ideias inovadoras no ambiente corporativo, proporcionando:
- ✅ Autenticação Segura: Sistema completo de login e cadastro
- ✅ Dashboard Pessoal: Visualização das próprias ideias submetidas
- ✅ Submissão de Ideias: Formulário intuitivo para envio de novas propostas
- ✅ Acompanhamento de Status: Histórico completo do progresso das ideias
- ✅ Busca e Filtros: Ferramentas para encontrar ideias facilmente
- ✅ Dashboard Administrativo: Visão geral completa do sistema
- ✅ Gestão de Ideias: Visualização e gerenciamento de todas as ideias
- ✅ Alteração de Status: Aprovar, rejeitar ou arquivar propostas
- ✅ Filtros Avançados: Por pilar, status, data, usuário
- ✅ Histórico Completo: Rastreamento de mudanças de status
- ✅ Estatísticas: Métricas e indicadores do sistema
- ✅ Resumos por IA: Resumos automáticos gerados por inteligência artificial (Google Gemini)
- ✅ Busca de Ideias Similares: Sistema inteligente de detecção de similaridade entre ideias usando IA
- ✅ Análise de Similaridade: Percentual de similaridade e visualização em barras de progresso
O sistema integra tecnologia de IA avançada para otimizar a gestão de ideias:
- Tecnologia: Google Gemini AI
- Funcionalidade: Criação automática de resumos executivos para cada ideia submetida
- Benefício: Facilita a compreensão rápida do conteúdo das propostas
- Algoritmo: Análise semântica usando modelos de linguagem
- Precisão: Cálculo de percentual de similaridade entre ideias
- Interface: Barras de progresso visuais para fácil interpretação
- Navegação: Sistema de clique para visualizar ideias relacionadas
- Para Usuários: Feedback sobre ideias similares já existentes
- Para Administradores: Identificação eficiente de duplicatas e propostas relacionadas
- Para o Sistema: Otimização do processo de avaliação e categorização
- Centralizar a gestão de ideias inovadoras
- Facilitar o processo de submissão e acompanhamento
- Proporcionar transparência no processo de avaliação
- Gerar métricas e relatórios para tomada de decisão
- Aplicar inteligência artificial para otimização do processo
- FastAPI: Framework web moderno e rápido para construção de APIs
- PostgreSQL: Banco de dados relacional robusto e escalável
- SQLAlchemy: ORM avançado para Python
- Docker & Docker Compose: Containerização e orquestração de serviços
- JWT: Autenticação segura com tokens
- Bcrypt: Hash seguro de senhas
- Uvicorn: Servidor ASGI de alta performance
- Google Gemini AI: Integração com IA para geração automática de resumos e análise de similaridade
- Next.js 15: Framework React com App Router para SSR e SSG
- TypeScript: Tipagem estática para maior segurança no desenvolvimento
- Tailwind CSS: Framework de CSS utilitário para estilização rápida
- HeroUI: Componentes UI modernos (Drawer, Dialog, Progress)
- Axios: Cliente HTTP para comunicação com a API
- React Hook Form: Gerenciamento eficiente de formulários
- Sonner: Sistema elegante de notificações (toasts) com estilos customizados
- Lucide React: Biblioteca de ícones moderna e consistente
- AuthJS: Sistema de autenticação integrado com Next.js
- Docker: Containerização para desenvolvimento e produção
- Git: Controle de versão
- ESLint: Linting para código JavaScript/TypeScript
- PostCSS: Processamento de CSS
- Autoprefixer: Compatibilidade automática de CSS
pantanal-engcomp/
├── app/ # 🐍 Backend (FastAPI)
│ ├── api/ # Rotas da API
│ │ ├── __init__.py
│ │ ├── auth.py # Autenticação (login, registro)
│ │ ├── users.py # Gestão de usuários
│ │ ├── ideias.py # CRUD de ideias
│ │ └── admin.py # Funcionalidades administrativas
│ ├── core/ # Configurações principais
│ │ ├── __init__.py
│ │ ├── auth.py # Middlewares de autenticação
│ │ ├── config.py # Configurações da aplicação
│ │ ├── database.py # Conexão com banco de dados
│ │ └── security.py # Utilitários de segurança
│ ├── models/ # Modelos SQLAlchemy
│ │ ├── __init__.py
│ │ └── models.py # Definição das tabelas
│ └── schemas/ # Schemas Pydantic
│ ├── __init__.py
│ └── schemas.py # Validação de dados de entrada/saída
├── frontend/ # ⚛️ Frontend (Next.js)
│ ├── src/
│ │ ├── app/ # App Router (Next.js 15)
│ │ │ ├── page.tsx # Página inicial
│ │ │ ├── layout.tsx # Layout principal
│ │ │ ├── providers.tsx # Providers de contexto
│ │ │ ├── globals.css # Estilos globais
│ │ │ ├── dashboard/
│ │ │ │ └── page.tsx # Dashboard principal
│ │ │ ├── auth/
│ │ │ │ ├── login/
│ │ │ │ │ └── page.tsx # Página de login
│ │ │ │ └── cadastro/
│ │ │ │ └── page.tsx # Página de cadastro
│ │ │ ├── submit-idea/
│ │ │ │ └── page.tsx # Formulário de ideias
│ │ │ └── my-ideas/
│ │ │ └── page.tsx # Minhas ideias
│ │ ├── components/ # Componentes React
│ │ │ ├── ui/ # Componentes base (Radix UI)
│ │ │ │ ├── button.tsx
│ │ │ │ ├── card.tsx
│ │ │ │ ├── input.tsx
│ │ │ │ ├── dialog.tsx
│ │ │ │ └── ...
│ │ │ ├── AuthLayout.tsx # Layout autenticado
│ │ │ ├── LoginForm.tsx # Formulário de login
│ │ │ ├── CadastroForm.tsx # Formulário de cadastro
│ │ │ └── ProtectedRoute.tsx # Proteção de rotas
│ │ ├── contexts/ # Contextos React
│ │ │ └── AuthContext.tsx # Contexto de autenticação
│ │ ├── lib/ # Utilitários
│ │ │ ├── api.ts # Cliente Axios configurado
│ │ │ ├── auth.ts # Funções de autenticação
│ │ │ ├── types.ts # Tipos TypeScript
│ │ │ └── utils.ts # Funções utilitárias
│ │ └── types/ # Definições de tipos globais
│ │ └── index.ts
│ ├── public/ # Arquivos estáticos
│ │ ├── favicon.ico
│ │ └── ...
│ ├── package.json # Dependências do frontend
│ ├── tailwind.config.ts # Configuração Tailwind CSS
│ ├── next.config.ts # Configuração Next.js
│ ├── postcss.config.js # Configuração PostCSS
│ └── tsconfig.json # Configuração TypeScript
├── 📄 Arquivos de Configuração
├── main.py # Arquivo principal da API
├── requirements.txt # Dependências Python
├── Dockerfile # Containerização do backend
├── docker-compose.yml # Orquestração dos serviços
├── .env.example # Exemplo de variáveis de ambiente
├── .gitignore # Arquivos ignorados pelo Git
└── README.md # Este arquivo
administradores {
id INTEGER PRIMARY KEY UNIQUE
nome VARCHAR(100) NOT NULL
email VARCHAR(100) UNIQUE NOT NULL
cargo VARCHAR(100)
unidade VARCHAR(100)
senha_hash VARCHAR(255) NOT NULL
created_at TIMESTAMP DEFAULT NOW()
updated_at TIMESTAMP DEFAULT NOW()
}users {
id_usuario INTEGER PRIMARY KEY UNIQUE
nome VARCHAR(100) NOT NULL
sexo VARCHAR(10)
email VARCHAR(100) UNIQUE NOT NULL
senha_hash VARCHAR(255) NOT NULL
ocupacao VARCHAR(100)
created_at TIMESTAMP DEFAULT NOW()
updated_at TIMESTAMP DEFAULT NOW()
}ideias {
id INTEGER PRIMARY KEY UNIQUE
titulo VARCHAR(200) NOT NULL
tema TEXT NOT NULL
contexto_original TEXT NOT NULL
nome_user VARCHAR(100) NOT NULL
email_user VARCHAR(100) NOT NULL
pilar VARCHAR(100) NOT NULL -- Pilar de inovação
status VARCHAR(50) DEFAULT 'Novo'
motivo_arquivamento TEXT
resumo_ia TEXT -- Resumo gerado por IA (Google Gemini)
created_at TIMESTAMP DEFAULT NOW()
updated_at TIMESTAMP DEFAULT NOW()
}historico_status_ideias {
id INTEGER PRIMARY KEY
ideia_id INTEGER FOREIGN KEY -> ideias.id
status_anterior VARCHAR(50)
status_novo VARCHAR(50) NOT NULL
data_mudanca TIMESTAMP DEFAULT NOW()
admin_id INTEGER FOREIGN KEY -> administradores.id
admin_nome VARCHAR(100)
}Método: JWT (JSON Web Tokens)
- Timeout: 30 minutos
- Tipos de usuário:
admineuser - Hash de senhas: bcrypt com salt
- Middleware: Verificação automática de tokens
Endpoints de Autenticação:
POST /api/v1/auth/admin/register- Cadastro de administradoresPOST /api/v1/auth/user/register- Cadastro de colaboradoresPOST /api/v1/auth/login- Login unificado
Antes de iniciar, certifique-se de ter instalado:
- Docker
- Python 3.11+
- Node.js (versão atual 20.3)
- Git
- VS Code com extensões para Python e TypeScript
git clone https://github.com/MarceloFBorba/Project-PantanalDev.git
cd pantanal-engcomp# No terminal do Vscode execute:
cd pantanal-engcomp
.\start.bat
Verifique no docker se os containers foram executados
# Em outro terminal, execute o frontend
cd frontend
npm install
npm run devecho "GEMINI_API_KEY=sua_chave_api_do_gemini_aqui" >> .env
Consulte `GEMINI_SETUP.md` para instruções detalhadas.
- Frontend: http://localhost:3000
- API Backend: http://localhost:8000
- Documentação Swagger: http://localhost:8000/docs
- Documentação ReDoc: http://localhost:8000/redoc