{"id":31664091,"url":"https://github.com/natsalete/mycard","last_synced_at":"2025-10-07T20:54:25.306Z","repository":{"id":312367869,"uuid":"1047258066","full_name":"natsalete/MyCard","owner":"natsalete","description":null,"archived":false,"fork":false,"pushed_at":"2025-08-30T04:18:58.000Z","size":111,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-08-30T06:12:34.052Z","etag":null,"topics":["android-sdk","cardview","constraint-layout","kotlin","xml"],"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-08-30T03:11:04.000Z","updated_at":"2025-08-30T04:19:01.000Z","dependencies_parsed_at":"2025-08-30T06:12:38.831Z","dependency_job_id":"3092251b-c0d4-468d-9ccc-48978033c15c","html_url":"https://github.com/natsalete/MyCard","commit_stats":null,"previous_names":["natsalete/mycard"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/natsalete/MyCard","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/natsalete%2FMyCard","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/natsalete%2FMyCard/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/natsalete%2FMyCard/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/natsalete%2FMyCard/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/natsalete","download_url":"https://codeload.github.com/natsalete/MyCard/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/natsalete%2FMyCard/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278846350,"owners_count":26056090,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-07T02:00:06.786Z","response_time":59,"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-sdk","cardview","constraint-layout","kotlin","xml"],"created_at":"2025-10-07T20:54:19.521Z","updated_at":"2025-10-07T20:54:25.292Z","avatar_url":"https://github.com/natsalete.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 💳 MyCard - Credit Card Interface\n\n\u003cdiv align=\"center\"\u003e\n\u003c!--   \u003cimg src=\"app_icon.png\" alt=\"MyCard Icon\" width=\"120\"/\u003e --\u003e\n  \n  [![Android](https://img.shields.io/badge/Platform-Android-green.svg)](https://developer.android.com)\n  [![Kotlin](https://img.shields.io/badge/Language-Kotlin-purple.svg)](https://kotlinlang.org)\n  [![Material Design](https://img.shields.io/badge/UI-Material%20Design-blue.svg)](https://material.io)\n  [![API](https://img.shields.io/badge/API-21%2B-brightgreen.svg)](https://android-arsenal.com/api?level=21)\n\u003c/div\u003e\n\n## 📱 About the Project\n\n**MyCard** is an Android application that simulates a modern credit card registration interface, inspired by Nubank's clean and elegant design. The project was developed as a practical exercise to improve skills in native Android development with XML and Kotlin.\n\n### ✨ Key Features\n\n- 🎨 **Nubank-Inspired Design** - Modern and clean purple interface\n- 💳 **Real-Time Visualization** - Virtual card that updates as you type\n- ⌨️ **Automatic Formatting** - Card number formatted automatically (1234 5678 9101 1213)\n- 📅 **Smart Date Input** - MM/YY format with date validation\n- 🔒 **Robust Validations** - Real-time data verification\n- 🏦 **Brand Detection** - Automatically identifies Visa, Mastercard, and Amex\n- 📱 **Responsive Interface** - Adaptable to different screen sizes\n\n## 🖼️ Screenshots\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/user-attachments/assets/34b22520-4f9f-4821-bbff-e4fda52f09b2\" alt=\"App Screen\" width=\"300\"/\u003e\n  \u003cp\u003e\u003cem\u003eMain application interface\u003c/em\u003e\u003c/p\u003e\n\u003c/div\u003e\n\n## 🚀 Features\n\n### 💳 Interactive Virtual Card\n- **Golden chip** realistic with details\n- **Magnetic stripe** with gradient\n- **Masked number** that reveals as you type\n- **Cardholder name** in real time\n- **Expiry date** synchronized\n- **Brand logo** automatically detected\n\n### 🔧 Smart Formatting\n- **Card number**: Automatic spacing every 4 digits\n- **Expiry date**: Automatic slash (/) insertion\n- **Name**: Automatic conversion to uppercase\n- **CVV**: 3-4 digit limitation\n\n### ✅ Implemented Validations\n\n| Field | Validation | Description |\n|-------|-----------|-------------|\n| **Number** | 16 mandatory digits | Verifies if it has exactly 16 numbers |\n| **Name** | Minimum 3 characters | Cardholder name must have at least 3 letters |\n| **Date** | Valid MM/YY | Month between 01-12 and year not before current |\n| **CVV** | 3-4 digits | Valid security code |\n\n## 🛠️ Technologies Used\n\n- **[Kotlin](https://kotlinlang.org/)** - Main language\n- **[Android SDK](https://developer.android.com)** - Native framework\n- **[Material Design Components](https://material.io/develop/android)** - UI components\n- **[ConstraintLayout](https://developer.android.com/training/constraint-layout)** - Responsive layout\n- **[CardView](https://developer.android.com/guide/topics/ui/layout/cardview)** - Cards with elevation\n- **XML Layouts** - Traditional declarative interface\n\n## 📋 Prerequisites\n\n- **Android Studio** 4.0+\n- **Android SDK** API 21 (Android 5.0) or higher\n- **Kotlin** 1.5+\n- **Gradle** 7.0+\n\n## ⚡ How to Run\n\n### 1. Clone the repository\n```bash\ngit clone https://github.com/your-username/mycard.git\ncd mycard\n```\n\n### 2. Open in Android Studio\n- Open **Android Studio**\n- Select **\"Open an existing project\"**\n- Navigate to the cloned folder and select it\n\n### 3. Sync dependencies\n```kotlin\n// build.gradle.kts (Module: app)\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### 4. Run the project\n- Connect an Android device or start an emulator\n- Click **\"Run\"** or press `Shift + F10`\n\n## 📁 Project Structure\n\n```\napp/src/main/\n├── java/com/example/mycard/\n│   └── MainActivity.kt           # Main logic and validations\n├── res/\n│   ├── layout/\n│   │   └── activity_main.xml     # Main layout\n│   ├── drawable/\n│   │   ├── card_gradient.xml     # Card gradient\n│   │   ├── card_chip.xml         # Golden chip\n│   │   ├── ic_credit_card.xml    # Card icon\n│   │   ├── ic_launcher_background.xml\n│   │   ├── ic_launcher_foreground.xml\n│   │   └── ic_launcher_monochrome.xml\n│   └── values/\n│       ├── colors.xml            # Color palette\n│       ├── strings.xml           # App texts\n│       └── themes.xml            # Custom themes\n```\n\n## 🎨 Color Palette\n\n```xml\n\u003c!-- Inspired by Nubank --\u003e\n\u003ccolor name=\"nubank_purple\"\u003e#8A05BE\u003c/color\u003e\n\u003ccolor name=\"nubank_light\"\u003e#9D4EDD\u003c/color\u003e\n\u003ccolor name=\"nubank_dark\"\u003e#560BAD\u003c/color\u003e\n\u003ccolor name=\"card_gold\"\u003e#FFD700\u003c/color\u003e\n\u003ccolor name=\"white\"\u003e#FFFFFF\u003c/color\u003e\n```\n\n## 🧪 Tested Features\n\n- ✅ Automatic card number formatting\n- ✅ Expiry date validation\n- ✅ Card brand detection\n- ✅ Real-time visual card updating\n- ✅ Form validations\n- ✅ Responsive interface\n- ✅ Compatibility with different screen sizes\n\n## 🔜 Future Improvements\n\n- [ ] Transition animations\n- [ ] Support for more card brands\n- [ ] Dark/light mode\n- [ ] Local card storage\n- [ ] Camera card scanner\n- [ ] Unit and instrumental tests\n- [ ] Internationalization (i18n)\n\n## 🤝 How to Contribute\n\n1. **Fork** the project\n2. Create a **branch** for your feature (`git checkout -b feature/new-feature`)\n3. **Commit** your changes (`git commit -m 'Add new feature'`)\n4. **Push** to the branch (`git push origin feature/new-feature`)\n5. Open a **Pull Request**\n\n## 📄 License\n\nThis project is under the **MIT** license. See the [LICENSE](LICENSE) file for more details.\n\n---\n\n\u003cdiv align=\"center\"\u003e\n  \u003cp\u003e⭐ If this project was useful to you, leave a star!\u003c/p\u003e\n  \u003cp\u003e💜 Made with lots of love and coffee ☕\u003c/p\u003e\n\u003c/div\u003e\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003e🇧🇷 Versão em Português\u003c/summary\u003e\n\n# 💳 MyCard - Interface de Cartão de Crédito\n\n\u003cdiv align=\"center\"\u003e\n\u003c!--   \u003cimg src=\"app_icon.png\" alt=\"MyCard Icon\" width=\"120\"/\u003e --\u003e\n  \n  [![Android](https://img.shields.io/badge/Platform-Android-green.svg)](https://developer.android.com)\n  [![Kotlin](https://img.shields.io/badge/Language-Kotlin-purple.svg)](https://kotlinlang.org)\n  [![Material Design](https://img.shields.io/badge/UI-Material%20Design-blue.svg)](https://material.io)\n  [![API](https://img.shields.io/badge/API-21%2B-brightgreen.svg)](https://android-arsenal.com/api?level=21)\n\u003c/div\u003e\n\n## 📱 Sobre o Projeto\n\n**MyCard** é um aplicativo Android que simula uma interface moderna para cadastro de cartão de crédito, inspirada no design clean e elegante do Nubank. O projeto foi desenvolvido como exercício prático para aprimorar habilidades em desenvolvimento Android nativo com XML e Kotlin.\n\n### ✨ Características Principais\n\n- 🎨 **Design Inspirado no Nubank** - Interface roxa moderna e clean\n- 💳 **Visualização em Tempo Real** - Cartão virtual que atualiza conforme você digita\n- ⌨️ **Formatação Automática** - Número do cartão formatado automaticamente (1234 5678 9101 1213)\n- 📅 **Data Inteligente** - Formato MM/AA com validação de data\n- 🔒 **Validações Robustas** - Verificações em tempo real dos dados\n- 🏦 **Detecção de Bandeira** - Identifica automaticamente Visa, Mastercard e Amex\n- 📱 **Interface Responsiva** - Adaptável a diferentes tamanhos de tela\n\n## 🖼️ Screenshots\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/user-attachments/assets/34b22520-4f9f-4821-bbff-e4fda52f09b2\" alt=\"Tela do App\" width=\"300\"/\u003e\n  \u003cp\u003e\u003cem\u003eInterface principal do aplicativo\u003c/em\u003e\u003c/p\u003e\n\u003c/div\u003e\n\n## 🚀 Funcionalidades\n\n### 💳 Cartão Virtual Interativo\n- **Chip dourado** realista com detalhes\n- **Faixa magnética** com gradiente\n- **Número mascarado** que revela conforme digitação\n- **Nome do titular** em tempo real\n- **Data de validade** sincronizada\n- **Logo da bandeira** detectada automaticamente\n\n### 🔧 Formatação Inteligente\n- **Número do cartão**: Espaçamento automático a cada 4 dígitos\n- **Data de validade**: Inserção automática da barra (/)\n- **Nome**: Conversão automática para maiúsculas\n- **CVV**: Limitação de 3-4 dígitos\n\n### ✅ Validações Implementadas\n\n| Campo | Validação | Descrição |\n|-------|-----------|-----------|\n| **Número** | 16 dígitos obrigatórios | Verifica se possui exatamente 16 números |\n| **Nome** | Mínimo 3 caracteres | Nome do titular deve ter pelo menos 3 letras |\n| **Data** | MM/AA válida | Mês entre 01-12 e ano não anterior ao atual |\n| **CVV** | 3-4 dígitos | Código de segurança válido |\n\n## 🛠️ Tecnologias Utilizadas\n\n- **[Kotlin](https://kotlinlang.org/)** - Linguagem principal\n- **[Android SDK](https://developer.android.com)** - Framework nativo\n- **[Material Design Components](https://material.io/develop/android)** - Componentes de UI\n- **[ConstraintLayout](https://developer.android.com/training/constraint-layout)** - Layout responsivo\n- **[CardView](https://developer.android.com/guide/topics/ui/layout/cardview)** - Cartões com elevação\n- **XML Layouts** - Interface declarativa tradicional\n\n## 📋 Pré-requisitos\n\n- **Android Studio** 4.0+\n- **Android SDK** API 21 (Android 5.0) ou superior\n- **Kotlin** 1.5+\n- **Gradle** 7.0+\n\n## ⚡ Como Executar\n\n### 1. Clone o repositório\n```bash\ngit clone https://github.com/seu-usuario/mycard.git\ncd mycard\n```\n\n### 2. Abra no Android Studio\n- Abra o **Android Studio**\n- Selecione **\"Open an existing project\"**\n- Navegue até a pasta clonada e selecione\n\n### 3. Sincronize as dependências\n```kotlin\n// build.gradle.kts (Module: app)\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### 4. Execute o projeto\n- Conecte um dispositivo Android ou inicie um emulador\n- Clique em **\"Run\"** ou pressione `Shift + F10`\n\n## 📁 Estrutura do Projeto\n\n```\napp/src/main/\n├── java/com/example/mycard/\n│   └── MainActivity.kt           # Lógica principal e validações\n├── res/\n│   ├── layout/\n│   │   └── activity_main.xml     # Layout principal\n│   ├── drawable/\n│   │   ├── card_gradient.xml     # Gradiente do cartão\n│   │   ├── card_chip.xml         # Chip dourado\n│   │   ├── ic_credit_card.xml    # Ícone do cartão\n│   │   ├── ic_launcher_background.xml\n│   │   ├── ic_launcher_foreground.xml\n│   │   └── ic_launcher_monochrome.xml\n│   └── values/\n│       ├── colors.xml            # Paleta de cores\n│       ├── strings.xml           # Textos do app\n│       └── themes.xml            # Temas personalizados\n```\n\n## 🎨 Paleta de Cores\n\n```xml\n\u003c!-- Inspirada no Nubank --\u003e\n\u003ccolor name=\"nubank_purple\"\u003e#8A05BE\u003c/color\u003e\n\u003ccolor name=\"nubank_light\"\u003e#9D4EDD\u003c/color\u003e\n\u003ccolor name=\"nubank_dark\"\u003e#560BAD\u003c/color\u003e\n\u003ccolor name=\"card_gold\"\u003e#FFD700\u003c/color\u003e\n\u003ccolor name=\"white\"\u003e#FFFFFF\u003c/color\u003e\n```\n\n## 🧪 Funcionalidades Testadas\n\n- ✅ Formatação automática do número do cartão\n- ✅ Validação de data de validade\n- ✅ Detecção de bandeira do cartão\n- ✅ Atualização em tempo real do cartão visual\n- ✅ Validações de formulário\n- ✅ Interface responsiva\n- ✅ Compatibilidade com diferentes tamanhos de tela\n\n## 🔜 Melhorias Futuras\n\n- [ ] Animações de transição\n- [ ] Suporte para mais bandeiras de cartão\n- [ ] Modo escuro/claro\n- [ ] Salvamento local dos cartões\n- [ ] Scanner de cartão com câmera\n- [ ] Testes unitários e instrumentais\n- [ ] Internacionalização (i18n)\n\n## 🤝 Como Contribuir\n\n1. **Fork** o projeto\n2. Crie uma **branch** para sua feature (`git checkout -b feature/nova-funcionalidade`)\n3. **Commit** suas mudanças (`git commit -m 'Adiciona nova funcionalidade'`)\n4. **Push** para a branch (`git push origin feature/nova-funcionalidade`)\n5. Abra um **Pull Request**\n\n## 📄 Licença\n\nEste projeto está sob a licença **MIT**. Veja o arquivo [LICENSE](LICENSE) para mais detalhes.\n\n---\n\n\u003cdiv align=\"center\"\u003e\n  \u003cp\u003e⭐ Se este projeto foi útil para você, deixe uma estrela!\u003c/p\u003e\n  \u003cp\u003e💜 Feito com muito carinho e café ☕\u003c/p\u003e\n\u003c/div\u003e\n\n\u003c/details\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnatsalete%2Fmycard","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnatsalete%2Fmycard","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnatsalete%2Fmycard/lists"}