{"id":31664089,"url":"https://github.com/natsalete/password_generator","last_synced_at":"2026-05-18T04:07:13.278Z","repository":{"id":313920264,"uuid":"1051447991","full_name":"natsalete/Password_Generator","owner":"natsalete","description":"A modern and intuitive Android app for generating secure and customizable passwords, developed in Kotlin with Material Design.","archived":false,"fork":false,"pushed_at":"2025-09-09T12:51:24.000Z","size":118,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-10-07T20:56:11.948Z","etag":null,"topics":["android","android-studio","kotlin","mobile-app","mobile-development","password-generator","portfolio-project","security","xml-layout"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/natsalete.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-06T02:46:53.000Z","updated_at":"2025-09-12T11:48:14.000Z","dependencies_parsed_at":null,"dependency_job_id":"8b168250-4d59-4ed8-920b-b83a359ad76c","html_url":"https://github.com/natsalete/Password_Generator","commit_stats":null,"previous_names":["natsalete/password_generator"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/natsalete/Password_Generator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/natsalete%2FPassword_Generator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/natsalete%2FPassword_Generator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/natsalete%2FPassword_Generator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/natsalete%2FPassword_Generator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/natsalete","download_url":"https://codeload.github.com/natsalete/Password_Generator/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/natsalete%2FPassword_Generator/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33164672,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-17T22:39:12.733Z","status":"online","status_checked_at":"2026-05-18T02:00:06.436Z","response_time":71,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","android-studio","kotlin","mobile-app","mobile-development","password-generator","portfolio-project","security","xml-layout"],"created_at":"2025-10-07T20:54:17.456Z","updated_at":"2026-05-18T04:07:13.271Z","avatar_url":"https://github.com/natsalete.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Password Generator - Android\n\nA modern and intuitive Android app for generating secure and customizable passwords, developed in Kotlin with Material Design.\n\n## 📱 Screenshots\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/user-attachments/assets/155b915d-4d87-43e8-9c22-3e571a047e0d\" alt=\"WhatsApp Image 2025-09-06 at 00 08 02\" width=\"400\"/\u003e\n\u003c/p\u003e\n\n## ✨ Features\n\n### 🎯 Password Generation\n- **Customizable length**: 4 to 50 characters\n- **Secure algorithm**: Uses `kotlin.random.Random` for maximum randomness\n- **Diversity guarantee**: Ensures at least one character of each selected type\n\n### ⚙️ Configuration Options\n- ✅ **Uppercase Letters** (A-Z)\n- ✅ **Lowercase Letters** (a-z)\n- ✅ **Numbers** (0-9)\n- ✅ **Symbols** (!@#$%^\u0026*()_+-=[]{}|;:,.\u003c\u003e?)\n- 🚫 **Character exclusion Similar** (i, l, 1, L, o, 0, O)\n\n### 📊 Security Analysis\n- **Visual password strength indicator**\n- **4-level classification**:\n- 🔴 Very Weak (\u003c25%)\n- 🟡 Weak (25-49%)\n- 🟠 Medium (50-74%)\n- 🟢 Strong (≥75%)\n\n### 🛠️ Additional Features\n- **Copy to clipboard** with one tap\n- **Responsive interface** with ScrollView\n- **Real-time input validation**\n- **Visual feedback** through toasts\n\n## 🏗️ Architecture and Technologies\n\n### Technologies Used\n- **Language**: Kotlin\n- **Target SDK**: Android API 34\n- **SDK Minimum**: Android API 21 (Android 5.0+)\n- **Design**: Material Design 3\n- **Architecture**: Activity-based with implicit ViewBinding\n\n### Main Components\n```\nsrc/main/java/com/example/passwordgenerator/\n├── MainActivity.kt # Main application logic\n└── res/\n└── layout/\n└── activity_main.xml # User interface\n```\n\n### Libraries and Dependencies\n```kotlin\ndependencies {\n    implementation(libs.androidx.core.ktx)\n    implementation(libs.androidx.appcompat)\n    implementation(libs.material)\n    implementation(libs.androidx.activity)\n    implementation(libs.androidx.constraintlayout)\n    testImplementation(libs.junit)\n    androidTestImplementation(libs.androidx.junit)\n    androidTestImplementation(libs.androidx.espresso.core)\n}\n```\n\n## 🚀 Installation and Configuration\n\n### Prerequisites\n- **Android Studio** Arctic Fox or higher\n- **JDK** 8 or higher\n- **Android SDK** with API 21+\n\n### Installation Steps\n\n1. **Clone the repository**\n```bash\ngit clone https://github.com/natsalete/Password_Generator.git\ncd Password_Generator\n```\n\n2. **Open Android Studio**\n- Launch Android Studio\n- Select \"Open an Existing Project\"\n- Navigate to the project folder\n\n3. **Synchronize Dependencies**\n- Wait for Android Studio to load the project\n- Click \"Sync Now\" when Requested\n\n4. **Run the app**\n- Connect an Android device or launch an emulator\n- Click the \"Run\" button (▶️) or press Shift + F10\n\n## 📖 How to Use\n\n### Generating a Password\n\n1. **Set the length**\n- Use the slider to set between 4 and 50 characters\n- The current value is displayed next to the slider\n\n2. **Select the character types**\n- Select the desired checkboxes\n- At least one option must be selected\n\n3. **Set advanced options**\n- Enable \"Delete Similar Characters\" to avoid confusion\n- This option removes: `i, l, 1, L, o, 0, O`\n\n4. **Generate the password**\n- Tap the \"Generate Password\" button\n- The password will appear in the highlighted area\n\n5. **Copy the password**\n- Tap the \"Copy\" button\n- The password will be copied to the clipboard.\n\n### Interpreting Password Strength\n\nPassword strength is calculated based on:\n- **Length** (≥ 8 characters)\n- **Character diversity** (uppercase, lowercase, numbers, symbols)\n- **Maximum score**: 4 points\n\n## 🔧 Customization and Extension\n\n### Adding New Character Sets\n\nTo add new character types, modify the `MainActivity.kt` file:\n\n```kotlin\n// Add the new character set\nprivate val customChars = \"ÀÁÂÃÇÉÊÍÓÔÕÚàáâãçéêíóôõú\"\n\n// Add the checkbox to the interface\n// Include the logic in buildCharacterPool()\n```\n\n### Modifying the Strength Algorithm\n\nTo customize the strength is calculated, edit the `calculatePasswordStrength()` function:\n\n```kotlin\nprivate fun calculatePasswordStrength(password: String): Int {\nvar score = 0\n\n// Add your own rules here\nif (password.length \u003e= 12) score++\nif (password.contains(Regex(\"[ÀÁÂÃÇÉÊÍÓÔÕÚàáâãçéêíóôõú]\"))) score++\n\nreturn score.coerceIn(0, 4)\n}\n```\n\n## 🎨 Design System\n\n### Colors Used\n```kotlin\n// Main Colors\nPrimary Blue: #3498DB\nSuccess Green: #27AE60\nWarning Orange: #F39C12\nDanger Red: #E74C3C\n\n// Text Colors\nDark Text: #2C3E50\nMedium Text: #34495E\nLight Text: #7F8C8D\n\n// Background Colors\nBackground: #F5F5F5\nCard Background: #FFFFFF\nInput Background: #F8F9FA\n```\n\n### Typography\n- **Title**: 28sp, Bold\n- **Subtitles**: 18sp, Bold\n- **Normal Text**: 16sp, Regular\n- **Small Text**: 14sp, Regular\n- **Passwords**: 18sp, Bold, Monospace\n\n## 🧪 Tests\n\n### Recommended Manual Tests\n\n1. **Basic Functionality**\n- [ ] Generate password with different settings\n- [ ] Copy password to clipboard\n- [ ] Change password length\n\n2. **Input Validation**\n- [ ] Attempt to generate password without selecting any options\n- [ ] Check if at least one character of each type is included\n\n3. **Responsive Interface**\n- [ ] Test on different screen sizes\n- [ ] Check scrolling on small devices\n\n4. **Strength Calculation**\n- [ ] Check indicator with weak and strong passwords\n- [ ] Confirm correct colors for each level\n\n## 📝 License\n\nThis project is licensed under the [MIT License](LICENSE) - see the LICENSE file for details.\n\n## 🤝 Contributing\n\nContributions are welcome! To contribute:\n\n1. Fork the project\n2. Create a branch for your feature (git checkout -b feature/AmazingFeature)\n3. Commit your changes (git commit -m 'Add: Amazing Feature')\n4. Push to the branch (git push origin feature/AmazingFeature)\n5. Open a Pull Request\n\n### Commit Patterns\n- Add: for new features\n- Fix: for bug fixes\n- Update: for updates to existing features\n- Docs: for documentation changes\n\n## 📞 Support\n\nIf you encounter any problems or have suggestions:\n\n- 🐛 Bugs: Open an issue (https://github.com/natsalete/Password_Generator/issues)\n- 💡 Suggestions: Open an issue [discussion](https://github.com/natsalete/Password_Generator/discussions)\n- 📧 **Contact**: natsalete20@gmail.com\n\n## 🎯 Roadmap\n\n### Version 2.0 (Planned)\n- [ ] **Password History** (secure local storage)\n- [ ] **Themes** (light/dark)\n- [ ] **Settings Backup/Restore**\n- [ ] **Home Screen Widget**\n- [ ] **Passphrase Generation** (diceware)\n\n### Version 1.1 (In Development)\n- [ ] **Accessibility Improvements**\n- [ ] **Language Support** (EN, ES, PT)\n- [ ] **Transition Animations**\n- [ ] **Automated Unit Tests**\n\n## 🏆 Credits\n\nDeveloped with ❤️ by [Natalia Salete](https://github.com/natsalete)\n\n### Thanks\n- Android Community for the documentation\n- Material Design for the visual inspiration\n- Stack Overflow for troubleshooting help\n\n---\n\n**⭐ If this project was helpful to you, please consider giving the repository a star!**\n\n\u003cdetails\u003e\n\u003csummary\u003e🇧🇷 Versão em Português\u003c/summary\u003e\n\n# Gerador de Senhas - Android\n\nUm aplicativo Android moderno e intuitivo para gerar senhas seguras e personalizáveis, desenvolvido em Kotlin com Material Design.\n\n## 📱 Screenshots\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/user-attachments/assets/155b915d-4d87-43e8-9c22-3e571a047e0d\" alt=\"WhatsApp Image 2025-09-06 at 00 08 02\" width=\"400\"/\u003e\n\u003c/p\u003e\n\n## ✨ Funcionalidades\n\n### 🎯 Geração de Senhas\n- **Comprimento personalizável**: 4 a 50 caracteres\n- **Algoritmo seguro**: Utiliza `kotlin.random.Random` para máxima aleatoriedade\n- **Garantia de diversidade**: Assegura pelo menos um caractere de cada tipo selecionado\n\n### ⚙️ Opções de Configuração\n- ✅ **Letras Maiúsculas** (A-Z)\n- ✅ **Letras Minúsculas** (a-z)\n- ✅ **Números** (0-9)\n- ✅ **Símbolos** (!@#$%^\u0026*()_+-=[]{}|;:,.\u003c\u003e?)\n- 🚫 **Exclusão de caracteres similares** (i, l, 1, L, o, 0, O)\n\n### 📊 Análise de Segurança\n- **Indicador visual de força** da senha\n- **Classificação em 4 níveis**:\n  - 🔴 Muito Fraca (\u003c 25%)\n  - 🟡 Fraca (25-49%)\n  - 🟠 Média (50-74%)\n  - 🟢 Forte (≥ 75%)\n\n### 🛠️ Funcionalidades Adicionais\n- **Copiar para área de transferência** com um toque\n- **Interface responsiva** com ScrollView\n- **Validação de entrada** em tempo real\n- **Feedback visual** através de toasts\n\n## 🏗️ Arquitetura e Tecnologias\n\n### Tecnologias Utilizadas\n- **Linguagem**: Kotlin\n- **SDK Target**: Android API 34\n- **SDK Mínimo**: Android API 21 (Android 5.0+)\n- **Design**: Material Design 3\n- **Arquitetura**: Activity-based com ViewBinding implícito\n\n### Componentes Principais\n```\nsrc/main/java/com/example/passwordgenerator/\n├── MainActivity.kt          # Lógica principal da aplicação\n└── res/\n    └── layout/\n        └── activity_main.xml    # Interface do usuário\n```\n\n### Bibliotecas e Dependências\n```kotlin\ndependencies {\n    implementation(libs.androidx.core.ktx)\n    implementation(libs.androidx.appcompat)\n    implementation(libs.material)\n    implementation(libs.androidx.activity)\n    implementation(libs.androidx.constraintlayout)\n    testImplementation(libs.junit)\n    androidTestImplementation(libs.androidx.junit)\n    androidTestImplementation(libs.androidx.espresso.core)\n}\n```\n\n## 🚀 Instalação e Configuração\n\n### Pré-requisitos\n- **Android Studio** Arctic Fox ou superior\n- **JDK** 8 ou superior\n- **Android SDK** com API 21+\n\n### Passos para Instalação\n\n1. **Clone o repositório**\n   ```bash\n   git clone https://github.com/natsalete/Password_Generator.git\n   cd Password_Generator\n   ```\n\n2. **Abra no Android Studio**\n   - Inicie o Android Studio\n   - Selecione \"Open an Existing Project\"\n   - Navegue até a pasta do projeto\n\n3. **Sincronize as dependências**\n   - Aguarde o Android Studio carregar o projeto\n   - Clique em \"Sync Now\" quando solicitado\n\n4. **Execute o aplicativo**\n   - Conecte um dispositivo Android ou inicie um emulador\n   - Clique no botão \"Run\" (▶️) ou pressione `Shift + F10`\n\n## 📖 Como Usar\n\n### Gerando uma Senha\n\n1. **Configure o comprimento**\n   - Use o slider para definir entre 4 e 50 caracteres\n   - O valor atual é exibido ao lado do slider\n\n2. **Selecione os tipos de caracteres**\n   - Marque as caixas de seleção desejadas\n   - Pelo menos uma opção deve estar selecionada\n\n3. **Configure opções avançadas**\n   - Ative \"Excluir Caracteres Similares\" para evitar confusão\n   - Esta opção remove: `i, l, 1, L, o, 0, O`\n\n4. **Gere a senha**\n   - Toque no botão \"Gerar Senha\"\n   - A senha aparecerá na área destacada\n\n5. **Copie a senha**\n   - Toque no botão \"Copiar\"\n   - A senha será copiada para a área de transferência\n\n### Interpretando a Força da Senha\n\nA força da senha é calculada baseada em:\n- **Comprimento** (≥ 8 caracteres)\n- **Diversidade de caracteres** (maiúsculas, minúsculas, números, símbolos)\n- **Pontuação máxima**: 4 pontos\n\n## 🔧 Personalização e Extensão\n\n### Adicionando Novos Conjuntos de Caracteres\n\nPara adicionar novos tipos de caracteres, modifique o arquivo `MainActivity.kt`:\n\n```kotlin\n// Adicione o novo conjunto\nprivate val customChars = \"ÀÁÂÃÇÉÊÍÓÔÕÚàáâãçéêíóôõú\"\n\n// Adicione o checkbox na interface\n// Inclua a lógica no buildCharacterPool()\n```\n\n### Modificando o Algoritmo de Força\n\nPara personalizar como a força é calculada, edite a função `calculatePasswordStrength()`:\n\n```kotlin\nprivate fun calculatePasswordStrength(password: String): Int {\n    var score = 0\n    \n    // Adicione suas próprias regras aqui\n    if (password.length \u003e= 12) score++\n    if (password.contains(Regex(\"[ÀÁÂÃÇÉÊÍÓÔÕÚàáâãçéêíóôõú]\"))) score++\n    \n    return score.coerceIn(0, 4)\n}\n```\n\n## 🎨 Design System\n\n### Cores Utilizadas\n```kotlin\n// Cores principais\nPrimary Blue: #3498DB\nSuccess Green: #27AE60\nWarning Orange: #F39C12\nDanger Red: #E74C3C\n\n// Cores de texto\nDark Text: #2C3E50\nMedium Text: #34495E\nLight Text: #7F8C8D\n\n// Cores de fundo\nBackground: #F5F5F5\nCard Background: #FFFFFF\nInput Background: #F8F9FA\n```\n\n### Tipografia\n- **Título**: 28sp, Bold\n- **Subtítulos**: 18sp, Bold\n- **Texto normal**: 16sp, Regular\n- **Texto pequeno**: 14sp, Regular\n- **Senhas**: 18sp, Bold, Monospace\n\n## 🧪 Testes\n\n### Testes Manuais Recomendados\n\n1. **Funcionalidade básica**\n   - [ ] Gerar senha com diferentes configurações\n   - [ ] Copiar senha para área de transferência\n   - [ ] Alterar comprimento da senha\n\n2. **Validação de entrada**\n   - [ ] Tentar gerar senha sem selecionar nenhuma opção\n   - [ ] Verificar se pelo menos um caractere de cada tipo é incluído\n\n3. **Interface responsiva**\n   - [ ] Testar em diferentes tamanhos de tela\n   - [ ] Verificar scroll em dispositivos pequenos\n\n4. **Cálculo de força**\n   - [ ] Verificar indicador com senhas fracas e fortes\n   - [ ] Confirmar cores corretas para cada nível\n\n## 📝 Licença\n\nEste projeto está licenciado sob a [MIT License](LICENSE) - veja o arquivo LICENSE para detalhes.\n\n## 🤝 Contribuindo\n\nContribuições são bem-vindas! Para contribuir:\n\n1. **Fork** o projeto\n2. **Crie** uma branch para sua feature (`git checkout -b feature/AmazingFeature`)\n3. **Commit** suas mudanças (`git commit -m 'Add: Amazing Feature'`)\n4. **Push** para a branch (`git push origin feature/AmazingFeature`)\n5. **Abra** um Pull Request\n\n### Padrões de Commit\n- `Add:` para novas funcionalidades\n- `Fix:` para correções de bugs\n- `Update:` para atualizações de funcionalidades existentes\n- `Docs:` para mudanças na documentação\n\n## 📞 Suporte\n\nSe você encontrar algum problema ou tiver sugestões:\n\n- 🐛 **Bugs**: Abra uma [issue](https://github.com/natsalete/Password_Generator/issues)\n- 💡 **Sugestões**: Abra uma [discussion](https://github.com/natsalete/Password_Generator/discussions)\n- 📧 **Contato**: natsalete20@gmail.com\n\n## 🎯 Roadmap\n\n### Versão 2.0 (Planejado)\n- [ ] **Histórico de senhas** (armazenamento local seguro)\n- [ ] **Temas** (claro/escuro)\n- [ ] **Backup/Restore** de configurações\n- [ ] **Widget** para tela inicial\n- [ ] **Geração de frases-passe** (diceware)\n\n### Versão 1.1 (Em desenvolvimento)\n- [ ] **Melhorias de acessibilidade**\n- [ ] **Suporte a idiomas** (EN, ES, PT)\n- [ ] **Animações** de transição\n- [ ] **Testes unitários** automatizados\n\n## 🏆 Créditos\n\nDesenvolvido com ❤️ por [Natalia Salete](https://github.com/natsalete)\n\n### Agradecimentos\n- Comunidade Android pela documentação\n- Material Design pela inspiração visual\n- Stack Overflow pela ajuda na resolução de problemas\n\n---\n\n**⭐ Se este projeto foi útil para você, consider dar uma estrela no repositório!**\n\n\u003c/details\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnatsalete%2Fpassword_generator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnatsalete%2Fpassword_generator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnatsalete%2Fpassword_generator/lists"}