Skip to content

About

Mapeador Inteligente de Resiliência Climática (MIRC): Plataforma web com IA e geolocalização para alertas precoces e orientação de riscos climáticos (inundações) no Rio Grande do Sul. Desenvolvido com Next.js, TypeScript e Docker.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

MIRC

Mapeador Inteligente de Resiliência Climática: alertas e informações sobre riscos climáticos no Rio Grande do Sul.

Descrição

O MIRC é uma aplicação web desenvolvida para apoiar a população do Rio Grande do Sul diante de riscos climáticos extremos, com foco na bacia do Rio Jacuí. O projeto reúne um mapa interativo com dados de cidades da região, um assistente de IA especializado e uma interface de autenticação para acesso aos recursos.

A proposta é facilitar o acesso a alertas precoces e orientações sobre enchentes, tempestades e outros eventos extremos, aproximando a tecnologia da defesa civil e da comunidade.

Contexto do Evento

Campo Informação
Evento 9ª CharCode — Hackathon
Instituição IFSul Câmpus Charqueadas
Data 24 e 25 de outubro de 2025
Local Charqueadas, RS
Formato Hackathon presencial de 24 horas
Tema/desafio Resiliência climática e alertas precoces para riscos de inundações e eventos extremos
Equipe 4 integrantes

Funcionalidades

Implementadas no protótipo

  • Landing page responsiva: hero, parceiros, depoimentos, FAQ, navbar e footer.
  • Cadastro e login de usuários: autenticação com JWT e senhas com bcrypt.
  • Chatbot com IA: assistente baseado no Google Gemini 2.5 Pro, com acesso restrito a usuários logados.
  • Mapa interativo: visualização de dados climáticos de cidades da bacia do Rio Jacuí.
  • Dados mockados por cidade: temperatura, umidade, nível de risco e alertas.
  • Health check da API: endpoint para verificar o status da aplicação.
  • Notificações de interface: toasts para feedback de login, cadastro e erros.
  • Prisma + PostgreSQL: persistência de usuários e configuração de banco.

Previstas, mas não concluídas

  • Envio real de alertas por SMS, e-mail, push notification e WhatsApp.
  • Integração em tempo real com INMET, CEMADEN e Defesa Civil.
  • Login com Google (o botão existe, mas ainda não está implementado).
  • Histórico de eventos e recomendações personalizadas por localização.
  • Testes automatizados.

O mapa e os alertas exibidos no protótipo usam dados de exemplo. O projeto foi desenvolvido durante a hackathon e não teve continuidade após o evento.

Tecnologias Utilizadas

Frontend

  • Next.js 14 com App Router
  • React 18
  • TypeScript
  • Tailwind CSS 4
  • Heroicons
  • Sonner para toasts

Backend e IA

  • Next.js API Routes
  • Google Gemini 2.5 Pro via @ai-sdk/google
  • JWT para autenticação
  • bcryptjs para hash de senhas

Banco de dados e infraestrutura

  • PostgreSQL
  • Prisma ORM
  • Docker e Docker Compose
  • ESLint e Prettier

Demonstração

Demonstração do MIRC

A demonstração pode demorar alguns segundos para carregar devido ao tamanho do arquivo.

Como Executar o Projeto

Pré-requisitos

  • Node.js 18.17 ou superior (recomendado: Node.js 20+)
  • npm
  • Docker e Docker Compose
  • Git

Instalação

  1. Clone o repositório

    git clone https://github.com/Raullize/Hackathon2025.git
    cd Hackathon2025
  2. Instale as dependências

    npm install
  3. Configure as variáveis de ambiente

    cp .env.example .env

    Edite o .env com as configurações do seu ambiente. As principais variáveis são:

    DATABASE_URL="postgresql://hackathon_user:hackathon_password@localhost:5432/hackathon_db?schema=public"
    NODE_ENV=development
    SESSION_SECRET=uma-chave-segura-para-jwt
    GOOGLE_API_KEY=sua-chave-do-google-ai

    A GOOGLE_API_KEY é necessária apenas para o ChatBot com Gemini.

  4. Suba o banco de dados

    Para desenvolvimento local, suba apenas o PostgreSQL:

    docker compose -f docker-compose.dev.yml up -d db

    Para subir a aplicação e o banco juntos:

    docker compose up -d
  5. Configure o banco com Prisma

    npx prisma db push
    npx prisma generate
  6. Popule o banco com dados de teste (opcional)

    npm run db:seed

    Usuário de teste:

    • E-mail: teste@gmail.com
    • Senha: 123456
  7. Inicie o servidor de desenvolvimento

    npm run dev
  8. Acesse a aplicação

Estrutura do Projeto

Hackathon2025/
├── prisma/                 Schema e seeders do banco
├── public/                 Imagens, logos, vídeos e demo
├── src/
│   ├── app/                App Router, páginas e API Routes
│   ├── components/         Componentes React
│   ├── hooks/              Hooks customizados
│   ├── lib/                Cliente Prisma e utilidades
│   ├── types/              Tipos TypeScript
│   └── utils/              Funções auxiliares
├── docs/                   Documentação técnica
├── docker-compose.yml      Aplicação + PostgreSQL
├── docker-compose.dev.yml  Apenas PostgreSQL para desenvolvimento
└── package.json            Dependências e scripts

Scripts Disponíveis

Comando O que faz
npm run dev Inicia o Next.js em modo desenvolvimento
npm run build Gera o build de produção
npm start Executa o build de produção
npm run lint Verifica o código com ESLint
npm run lint:fix Corrige problemas do ESLint
npm run db:generate Gera o Prisma Client
npm run db:push Sincroniza o schema com o banco
npm run db:studio Abre o Prisma Studio
npm run db:seed Popula o banco com dados de teste
npm run db:seed:cleanup Remove os dados criados pelo seeder

Documentação

Limitações e Status

  • Projeto protótipo de hackathon, sem manutenção prevista.
  • O mapa e os alertas usam dados mockados, não dados oficiais em tempo real.
  • O envio de alertas por SMS/WhatsApp não foi implementado.
  • O login com Google está apenas como botão na interface.
  • Não há testes automatizados.
  • A chave do Google AI deve ser configurada no .env; nunca versione uma chave real.

Contribuindo

Este é um projeto histórico de hackathon. Contribuições não são esperadas, mas você pode abrir uma issue ou enviar um pull request caso encontre algum problema.

  1. Faça um fork do projeto.
  2. Crie uma branch: git checkout -b minha-melhoria.
  3. Commit suas mudanças: git commit -m 'Minha melhoria'.
  4. Envie para o seu fork: git push origin minha-melhoria.
  5. Abra um pull request.

Contribuidores

Foto de Raul Lize Teixeira no GitHub
Raul Lize Teixeira
Foto de Miguel Leonardo Strapazon Lewandowski no GitHub
Miguel Leonardo Strapazon Lewandowski
Foto de Leonardo Ennes no GitHub
Leonardo Ennes
Foto de Matheus Alves no GitHub
Matheus Alves

Licença

Este projeto foi desenvolvido para fins educacionais durante a 9ª CharCode. Não há uma licença definida no repositório; entre em contato com os autores antes de reutilizar o código.

About

Mapeador Inteligente de Resiliência Climática (MIRC): Plataforma web com IA e geolocalização para alertas precoces e orientação de riscos climáticos (inundações) no Rio Grande do Sul. Desenvolvido com Next.js, TypeScript e Docker.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages