Mapeador Inteligente de Resiliência Climática: alertas e informações sobre riscos climáticos no Rio Grande do Sul.
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.
| 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 |
- 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.
- 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.
- Next.js 14 com App Router
- React 18
- TypeScript
- Tailwind CSS 4
- Heroicons
- Sonner para toasts
- Next.js API Routes
- Google Gemini 2.5 Pro via
@ai-sdk/google - JWT para autenticação
- bcryptjs para hash de senhas
- PostgreSQL
- Prisma ORM
- Docker e Docker Compose
- ESLint e Prettier
A demonstração pode demorar alguns segundos para carregar devido ao tamanho do arquivo.
- Node.js 18.17 ou superior (recomendado: Node.js 20+)
- npm
- Docker e Docker Compose
- Git
-
Clone o repositório
git clone https://github.com/Raullize/Hackathon2025.git cd Hackathon2025 -
Instale as dependências
npm install
-
Configure as variáveis de ambiente
cp .env.example .env
Edite o
.envcom 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. -
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
-
Configure o banco com Prisma
npx prisma db push npx prisma generate
-
Popule o banco com dados de teste (opcional)
npm run db:seed
Usuário de teste:
- E-mail:
teste@gmail.com - Senha:
123456
- E-mail:
-
Inicie o servidor de desenvolvimento
npm run dev
-
Acesse a aplicação
- Página inicial: http://localhost:3000
- Login/cadastro: http://localhost:3000/login
- Health check: http://localhost:3000/api/health
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
| 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 |
- 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.
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.
- Faça um fork do projeto.
- Crie uma branch:
git checkout -b minha-melhoria. - Commit suas mudanças:
git commit -m 'Minha melhoria'. - Envie para o seu fork:
git push origin minha-melhoria. - Abra um pull request.
![]() Raul Lize Teixeira |
![]() Miguel Leonardo Strapazon Lewandowski |
![]() Leonardo Ennes |
![]() Matheus Alves |
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.




