Skip to content

ZaniniDev/PIC

Repository files navigation

� PIC - Plataforma Integrada do Clima

PIC Logo

Transformando Santos através da participação cidadã no combate às mudanças climáticas

Flutter Dart Gov.br


📋 Sobre o Projeto

A Plataforma Integrada do Clima (PIC) é uma solução digital desenvolvida para facilitar a participação cidadã no Fundo Municipal de Adaptação e Resiliência Climática de Santos.

Através de formulários dinâmicos e interface moderna, a plataforma permite que os cidadãos:

  • 🗳️ Participem de pesquisas sobre impactos climáticos locais
  • 💡 Proponham soluções e projetos para o fundo climático
  • 📊 Acompanhem os resultados e estatísticas das participações
  • 🤝 Contribuam para decisões sobre recursos públicos destinados ao clima

🎯 Alinhamento com o PACS

Integrada ao Plano de Ação Climática de Santos (PACS), a plataforma contribui diretamente para a meta de zerar emissões líquidas de carbono até 2050.


✨ Funcionalidades Principais

🔐 Sistema de Autenticação

  • Login seguro com telefone + data de nascimento
  • Cadastro completo de usuários
  • Gerenciamento de sessão com JWT
  • Persistência local dos dados

📝 Formulários Dinâmicos

  • Múltiplos tipos de pergunta (texto, número, escolha única/múltipla)
  • Validação inteligente de campos obrigatórios
  • Interface moderna com animações
  • Prevenção de respostas duplicadas

📊 Dashboard de Relatórios

  • Visualização de respostas em tempo real
  • Gráficos interativos para análise
  • Estatísticas de participação
  • Agrupamento por pergunta e tipo

🎨 Design System Gov.br

  • Cores oficiais do governo brasileiro
  • Animações fluidas e microinterações
  • Responsivo (web e mobile)
  • Acessibilidade integrada

🛠️ Tecnologias Utilizadas

Categoria Tecnologia Versão Descrição
Framework Flutter 3.9.2+ Framework multiplataforma
Linguagem Dart 3.9.2+ Linguagem de programação
Estado Provider 6.1.5+ Gerenciamento de estado
Persistência Hive 1.1.0+ Banco local NoSQL
HTTP http 1.5.0+ Requisições para API
Gráficos fl_chart 1.1.1+ Visualização de dados
Animações Wave 0.2.2+ Efeitos visuais
Logs Logger 2.6.2+ Sistema de logging

🚀 Instalação e Configuração

📋 Pré-requisitos

Antes de começar, certifique-se de ter instalado:

  • Flutter SDK (versão 3.9.2 ou superior)
  • Dart SDK (incluído com Flutter)
  • Git para controle de versão
  • Editor (VS Code recomendado)
  • Chrome (para desenvolvimento web)

Verificar instalação do Flutter:

flutter doctor

� 1. Clonando o Repositório

# Clone o repositório
git clone https://github.com/ZaniniDev/PIC.git

# Navegue até o diretório do projeto
cd PIC

# Acesse a pasta do Flutter
cd flutter/pic_plataforma_clima

� 2. Instalando Dependências

# Instalar dependências do Flutter
flutter pub get

# Verificar se tudo está ok
flutter doctor

⚙️ 3. Configuração do Ambiente

🌐 Para Desenvolvimento Web (Recomendado)

# Rodar com web server (resolve problemas de CORS)
flutter run -d web-server --web-port 8080 --web-hostname localhost

📱 Para Mobile (Android)

# Conecte um dispositivo Android ou inicie um emulador
flutter devices

# Execute no dispositivo
flutter run

🖥️ Para Desktop

# Windows
flutter run -d windows

# Linux
flutter run -d linux

# macOS
flutter run -d macos

🛠️ 4. Scripts de Desenvolvimento

Para facilitar o desenvolvimento, utilize os scripts criados:

PowerShell (Windows)

# Execute o script de desenvolvimento
.\run_web_dev.ps1

Batch (Windows)

# Execute o arquivo batch
.\run_web_dev.bat

🔧 Configurações Avançadas

🌍 Variáveis de Ambiente

Crie um arquivo .env na raiz do projeto (opcional):

API_BASE_URL=http://192.168.15.3:5000
TELEFONE_WHATSAPP=13991625008

🚨 Resolvendo Problemas de CORS

Se encontrar problemas de CORS no desenvolvimento web:

  1. Use o web-server (recomendado):

    flutter run -d web-server --web-port 8080
  2. Configure CORS no backend (solução definitiva)

  3. Use Chrome com flags desabilitadas (apenas desenvolvimento):

    flutter run -d chrome --web-browser-flag="--disable-web-security"

Consulte o arquivo CORS_HELP.md para mais detalhes.


� Como Usar a Plataforma

1️⃣ Primeiro Acesso

  1. Acesse a plataforma via web: http://localhost:8080
  2. Vá para "Login" no menu lateral
  3. Se não tem conta, clique em "Cadastrar"

2️⃣ Cadastro

  1. Preencha: Nome, Celular, Data de Nascimento, Bairro, Cidade
  2. Aceite os termos
  3. Clique em "Cadastrar"

3️⃣ Login

  1. Digite seu celular (formato: (13)99999-9999)
  2. Digite sua data de nascimento
  3. Clique em "Entrar"

4️⃣ Participando

  1. Acesse "Participe e Ganhe"
  2. Clique em "Responder Formulário"
  3. Responda todas as perguntas obrigatórias
  4. Envie suas respostas

5️⃣ Visualizando Resultados

  1. Acesse "Relatórios" (requer login)
  2. Veja estatísticas e gráficos das participações

🏗️ Estrutura do Projeto

lib/
├── core/                 # Configurações centrais
│   ├── api_service.dart  # Serviços de API
│   ├── auth.dart         # Gerenciamento de autenticação  
│   ├── config_settings.dart # Configurações do app
│   └── app_logger.dart   # Sistema de logs
├── models/               # Modelos de dados
│   ├── data/            # Modelos para API
│   ├── domain/          # Modelos de negócio
│   └── transformation/  # Conversores entre modelos
├── repository/          # Camada de dados
├── viewmodel/          # Gerenciamento de estado
├── view/               # Interface do usuário
├── routes.dart         # Configuração de rotas
└── main.dart          # Ponto de entrada da aplicação

📊 Dados do Formulário

O formulário principal coleta informações sobre:

  • Conhecimento climático: Consciência sobre mudanças climáticas
  • Localização: Cidade, bairro, rua/comunidade
  • Demografia: Número de pessoas na residência
  • Habitação: Tipo de construção, danos por eventos climáticos
  • Impactos: Perdas materiais, efeitos na saúde mental
  • Avaliação: Gestão climática municipal, pontos críticos
  • Fundo Climático: Opinião sobre criação e gestão participativa
  • Propostas: Sugestões e necessidades para o fundo

🤝 Contribuindo

🔄 Fluxo de Contribuição

  1. Fork o projeto
  2. Crie uma branch para sua feature (git checkout -b feature/MinhaFeature)
  3. Commit suas mudanças (git commit -m 'Adiciona MinhaFeature')
  4. Push para a branch (git push origin feature/MinhaFeature)
  5. Abra um Pull Request

📝 Padrões de Código

  • Siga as convenções do Dart/Flutter
  • Use nomes descritivos para variáveis e funções
  • Documente funções públicas
  • Mantenha arquivos organizados por funcionalidade

🐛 Reportando Bugs

Use as Issues do GitHub para reportar bugs:

  1. Descreva o comportamento esperado vs atual
  2. Inclua passos para reproduzir
  3. Adicione screenshots se possível
  4. Especifique versão do Flutter e sistema operacional

👥 Equipe

Desenvolvimento:

Apoio Institucional:

  • Prefeitura Municipal de Santos
  • Secretaria de Meio Ambiente

📞 Contato e Suporte


🌱 Juntos por um Santos mais sustentável e resiliente!

Feito com ❤️ para o futuro do nosso planeta


Gostou do projeto? Deixe uma estrela!

About

PIC - Plataforma Interativa pelo Clima

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published