FLUTTER ECOSYSTEM

institutoazmina/penhas-app

पेन्हाS के मोबाइल ऐप का स्रोत कोड

penhas-app प्रोजेक्ट कवर
Stars
17
Forks
7
अंतिम पुश (UTC)
29 अग॰ 2026
प्रोजेक्ट स्थिति
सक्रिय
Instituto AzMina GitHub avatar
GITHUB Organization

Instituto AzMina ↗

Usamos informação, tecnologia e educação para combater a violência de gênero

भाषाएँDartRubySwiftShellKotlinObjective-C

संबंधित पैकेज और उदाहरण

v2.3.0

flutter_mobx

MobX के लिए Flutter इंटीग्रेशन। यह ट्रैक किए गए ओब्जर्वेबल्स में परिवर्तन होने पर स्वचालित रूप से पुनर्निर्माण करने वाले Observer विजेट्स का सेट प्रदान करता है।

717लाइक 58.4 हज़ार30-दिन डाउनलोड160Pub अंक
AndroidiOSWebmacOSWindowsLinux
v2.6.0

mobx

MobX एक पुस्तकालय है जो आपके अनुप्रयोगों के राज्य को प्रतिक्रियाशील ढंग से प्रबंधित करता है। डार्ट और फ्लटर ऐप्स को सुपरचार्ज करने के लिए ऑब्जर्वेबल, एक्शन और रिएक्शन की शक्ति का उपयोग करें।

1.3 हज़ारलाइक 79.7 हज़ार30-दिन डाउनलोड160Pub अंक
AndroidiOSWebmacOSWindowsLinux

उपयोग की गई निर्भरताएँ

निर्भरता सूची 75 आइटम

ऐप श्रेणियाँ

मूल README

यह अंग्रेज़ी मूल स्नैपशॉट है। नवीनतम सामग्री GitHub पर देखें।

README खोलें / बंद करें

PenhaS

O PenhaS é um aplicativo móvel gratuito de ajuda, informação e acolhimento a mulheres em situação de violência doméstica.

📋 Sumário

1. Visão Geral

O app conecta mulheres entre si em uma rede de apoio e oferece ferramentas práticas para romper o ciclo de violência doméstica.

Qualquer pessoa engajada no enfrentamento à violência contra a mulher pode se cadastrar, conversar com outras pessoas no feed e acessar conteúdos informativos sobre o tema, além de visualizar um mapa de pontos de apoio disponíveis em todo o Brasil.

Mulheres (cis ou trans), homens trans e pessoas não binárias têm acesso a funcionalidades exclusivas, como:

  • Botão de pânico
  • Gravação de áudio para produção de provas
  • Manual de Fuga para se preparar para a saída da situação de violência
  • Mapa com pontos de apoio
  • Espaço de escuta acolhedora, com atendimento profissional humanizado

Lançado em março de 2019, o PenhaS evoluiu com a colaboração de diversas mulheres e especialistas.

Em 2023, ganhou o Manual de Fuga, ferramenta que ajuda mulheres a planejarem uma saída segura de situações de violência.

O projeto é open source, licenciado sob AGPL-3.0, refletindo o compromisso do Instituto AzMina com o uso ético, colaborativo e livre da tecnologia.

2. Funcionalidades

  • Feed e Rede de Apoio: espaço comunitário para compartilhamento de relatos (inclusive anônimos), interação e acesso a conteúdos informativos (reportagens, leis, dicas etc.).
  • Atendimento profissional personalizado: canal direto com profissionais experientes e oferecendo orientação confidencial.
  • Manual de Fuga: plano personalizado de saída de ambientes violentos, baseado na Lei Maria da Penha.
  • Botão de Pânico: envia SMS com localização e pedido de socorro a até cinco contatos de confiança.
  • Discagem rápida: ligação direta para o número 190.
  • Gravação de áudios: registro discreto de sons do ambiente, gerando possíveis provas jurídicas.
  • Mapa de Pontos de Apoio: visualização de delegacias e serviços públicos de atendimento à mulher.

⚠️ Para usar todas as funcionalidades, é necessário conceder permissões de localização e microfone. Dados sensíveis são tratados de forma segura conforme a política de privacidade do app.

3. Desenvolvimento

3.1 Requisitos
  • FVM (recomendável) ou SDK Flutter 3.0.5
  • Android SDK
  • XCode
  • Projetos Android e iOS no Firebase
  • Chave de API do Google Maps
3.2. Configuração

Antes de rodar o aplicativo pela primeira vez, são necessárias algumas configurações de serviços externos.

Firebase

Para ser possível executar o aplicativo, é necessário ter os arquivos de configuração do Firebase, para isso pode ser utilizado o Firebase CLI com o FlutterFire, siga o primeiro passo na documentação oficial para instalar as ferramentas de linha de comando.

Instalar a gem do xcode para que o comando funcione corretamente (Obrigatório caso for buildar o app em iOS)

gem install xcodeproj

Após as ferramentas serem instaladas podemos baixar esses arquivos com o seguinte comando:

flutterfire configure -y \
    --project=penhas-v3 \ # ou substitua pelo nome do projeto registrado
    --out=lib/firebase_options.dart \
    --platforms=android,ios \
    --android-package-name=dev.penhas.com.br \
    --ios-bundle-id=dev.penhas.alphacode.com.br
Google Maps

Para exibição dos pontos de apoio, utilizamos o Google Maps SDK para Flutter, siga os passos na página do plugin para gerar a chave de API e habilitar o Google Maps para as plataformas Android e iOS: https://pub.dev/packages/google_maps_flutter

A chave gerada deve ser colocada nos arquivos de configuração do Android e iOS que ficam localizados em android/secrets.properties e ios/Flutter/Secrets.xcconfig respectivamente, crie esses arquivos caso não existam e coloque a chave da seguinte maneira:

GEO_API_KEY=[SUA CHAVE DE API]

🔒 Mantenha esses arquivos fora do controle de versão.

3.3. Execução

Com tudo configurado, execute:

fvm flutter run --dart-define=PENHAS_BASE_URL=[URL]
3.4. Testes automatizados

Para rodar os testes automatizados:

fvm flutter test

Para gerar relatório em html da cobertura dos testes execute

genhtml coverage/lcov.info -o coverage/html

O arquivo gerado estará disponível em coverage/html/index.html. Para executar o comando é preciso ter o pacote lcov instalado.

No VS Code, Também é possível instalar a extensão Coverage Gutters, do ryanluker e a Flutter Coverage, do Fluterando.

3.5. Iniciar app pelo VS Code

Para iniciar o app utilizando o VS Code adicione os seguintes arquivos dentro da pasta .vscode

- launch.json
- settings.json

Aponte sua configuração para o sdk utilizado pelo fvm em settings.json. Geralmente elas ficam na pasta .fvm/:

{
    "dart.flutterSdkPath": ".fvm/flutter_sdk",
    "search.exclude": {
      "**/.fvm": true
    },
    "files.watcherExclude": {
      "**/.fvm": true
    }
  }

E em launch.json adicione

{
  "version": "0.0.1",
  "configurations": [
    {
      "name": "Flutter",
      "request": "launch",
      "type": "dart",
      "program": "./lib/main.dart"
    }
  ]
}

Caso queira iniciar o app apontando para um ambiente diferente, isso pode ser feito utilizando o argumento PENHAS_BASE_URL. A configuração do arquivo ficaria como abaixo, substituindo <URL_DO_AMBIENTE> pela url a ser utilizada.

{
  "version": "0.0.1",
  "configurations": [
    {
      "name": "Flutter",
      "request": "launch",
      "type": "dart",
      "program": "./lib/main.dart",
      "args": ["--dart-define=PENHAS_BASE_URL=<URL_DO_AMBIENTE>"]
    }
  ]
}

4. Contribuições 💜

Quer contribuir? Siga estas orientações:

  1. Issues: relate bugs ou sugestões de melhoria.
  2. Fork + PR: crie uma branch e envie um Pull Request com descrição clara das alterações.
  3. Padrões de código: siga o estilo definido em analysis_options.yaml.
  4. Testes: inclua testes automatizados sempre que possível.
  5. Documentação: atualize o README e arquivos relacionados.
  6. Code Review: aceite feedbacks e colabore de forma construtiva.

Cada contribuição fortalece uma ferramenta essencial na luta contra a violência de gênero.


5. Licença

Este projeto está licenciado sob a AGPL-3.0 (Affero General Public License).
O código pode ser usado e modificado livremente, desde que as distribuições derivadas mantenham a mesma licença e disponibilizem seu código-fonte.


Desenvolvido com ♥ pelo Instituto AzMina