{"id":26406553,"url":"https://github.com/rizaadi/valorantlab","last_synced_at":"2026-05-18T18:37:49.561Z","repository":{"id":210942485,"uuid":"726758486","full_name":"rizaadi/valorantlab","owner":"rizaadi","description":"Valorant app with Flutter, Clean Architecture, Modularization, Dependency Injection","archived":false,"fork":false,"pushed_at":"2025-08-03T06:19:55.000Z","size":1375,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-03T08:29:21.292Z","etag":null,"topics":["clean-architecture","dependency-injection","flutter","melos","modularization","valorant"],"latest_commit_sha":null,"homepage":"","language":"Dart","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/rizaadi.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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}},"created_at":"2023-12-03T10:10:14.000Z","updated_at":"2025-08-03T06:19:54.000Z","dependencies_parsed_at":null,"dependency_job_id":"6d4cf5bf-3f5f-4d6a-a662-ff5e428bbaac","html_url":"https://github.com/rizaadi/valorantlab","commit_stats":null,"previous_names":["rizaadi/valorantlab"],"tags_count":19,"template":false,"template_full_name":null,"purl":"pkg:github/rizaadi/valorantlab","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rizaadi%2Fvalorantlab","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rizaadi%2Fvalorantlab/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rizaadi%2Fvalorantlab/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rizaadi%2Fvalorantlab/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rizaadi","download_url":"https://codeload.github.com/rizaadi/valorantlab/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rizaadi%2Fvalorantlab/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33187484,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-18T09:27:30.708Z","status":"ssl_error","status_checked_at":"2026-05-18T09:27:28.300Z","response_time":71,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["clean-architecture","dependency-injection","flutter","melos","modularization","valorant"],"created_at":"2025-03-17T17:20:16.406Z","updated_at":"2026-05-18T18:37:49.551Z","avatar_url":"https://github.com/rizaadi.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cbr/\u003e\n\u003cdiv align=\"center\"\u003e\n\u003ca\u003e\n\u003cimg src=\"https://github.com/rizaadi/valorantlab/blob/dc6541e32c01c4ca9c8e62e4dee588107028d745/launcher/ios-app-icon.png?raw=true\" alt=\"Valorantlab Logo\" width=\"80\" height=\"80\"\u003e\n\u003c/a\u003e\n\u003ch3 align=\"center\"\u003eValorantlab\u003c/h3\u003e\n\u003cp align=\"center\"\u003e\nValorant information app\n\n\u003c/p\u003e\n\u003c/div\u003e\n\n## About The Project\n\n![Product Screenshota](thumnail.png)\n\nThis project is my exploration with Flutter to build an app that displays information about the game Valorant, including detail on Agents, Maps, Weapons, and more. The app fetches real-time data from the **[Valorant API](https://valorant-api.com/)** to provide up-to-date game information.f\n\nThe first version of this app originated from my college exam, as described [Here](https://www.rizaadikurniawan.com/project/valorantlab), and I later refactored it.\n\n## 🏗️ Project Architecture\n\nThis project follows **Clean Architecture** principles and uses **Melos** for monorepo management. The architecture is organized into multiple packages:\n\n### 📦 Package Structure\n\n```\nvalorantlab/\n├── 📱 app (main)           # Main Flutter application\n├── 🎯 features/            # Feature-specific packages\n│   ├── agent/              # Agent feature (list, detail, management)\n│   ├── home/               # Home screen and navigation\n│   ├── maps/               # Maps feature (list, detail, callouts)\n│   └── weapon/             # Weapon feature (list, detail, stats)\n├── 📦 packages/            # Core infrastructure\n│   └── core/               # Shared utilities, database, networking\n└── 🔄 shared/              # Shared dependencies and resources\n    ├── dependencies/       # Common dependencies and configurations\n    └── i18n/               # Internationalization (EN/ID support)\n```\n\n### Built With\n\n- [Flutter](https://flutter.dev/)\n- [Clean Architecture](https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html)\n- [Melos](https://pub.dev/packages/melos)\n- [Bloc State Management](https://pub.dev/packages/flutter_bloc)\n- [Flutter Flavoriz](https://pub.dev/packages/flutter_flavorizr)\n- [Flutter Launcher Icons](https://pub.dev/packages/flutter_launcher_icons)\n- [Go Router](https://pub.dev/packages/go_router)\n- [Get It](https://pub.dev/packages/get_it)\n- [Isar Database](https://pub.dev/packages/isar)\n- [Freezed](https://pub.dev/packages/freezed)\n- [Dartz](https://pub.dev/packages/dartz)\n- [Http](https://pub.dev/packages/http)\n- [Flutter SVG](https://pub.dev/packages/flutter_svg)\n- [Flutter Gen](https://pub.dev/packages/flutter_gen)\n- [Equatable](https://pub.dev/packages/equatable)\n- [Husky](https://pub.dev/packages/husky)\n- [Commitlint](https://pub.dev/packages/commitlint_cli)\n\n## 🚀 Getting Started\n\n### Prerequisites\n\n- **Flutter SDK**: Latest stable version\n- **Dart**: Comes with Flutter\n- **Melos**: For monorepo management\n\n### Quick Setup\n\n1. **Clone the repository**\n\n   ```sh\n   git clone https://github.com/rizaadi/valorantlab.git\n   cd valorantlab\n   ```\n\n2. **Install Melos globally**\n\n   ```sh\n   dart pub global activate melos\n   ```\n\n3. **Setup development environment**\n\n   ```sh\n   melos run dev:setup\n   ```\n\n4. **Start development**\n   ```sh\n   melos run build:watch\n   ```\n\n## 🛠️ Melos Commands Reference\n\nThis project uses **Melos** for comprehensive monorepo management. Here are all available commands:\n\n### 🚀 Quick Start Commands\n\n| Command                 | Description                            |\n| ----------------------- | -------------------------------------- |\n| `melos bootstrap`       | Setup all packages and dependencies    |\n| `melos run dev:setup`   | Complete development environment setup |\n| `melos run build:watch` | Start development with hot reload      |\n| `melos run dev:doctor`  | Check development environment health   |\n\n### 🧪 Testing \u0026 Quality Assurance\n\n| Command                      | Description                     |\n| ---------------------------- | ------------------------------- |\n| `melos run test`             | Run all tests across packages   |\n| `melos run test:coverage`    | Run tests with coverage reports |\n| `melos run test:unit`        | Run unit tests only             |\n| `melos run test:integration` | Run integration tests           |\n| `melos run test:watch`       | Run tests in watch mode         |\n| `melos run verify`           | Pre-commit quality checks       |\n\n### 📦 Build \u0026 Release\n\n| Command                             | Description                           |\n| ----------------------------------- | ------------------------------------- |\n| `melos run build`                   | Build production APK                  |\n| `melos run build:dev`               | Build development APK                 |\n| `melos run build:apk`               | Build Android APK (production)        |\n| `melos run build:appbundle`         | Build Android App Bundle (Play Store) |\n| `melos run build:appbundle:dev`     | Build development App Bundle          |\n| `melos run build:appbundle:profile` | Build profile App Bundle              |\n| `melos run build:ios`               | Build iOS app (production)            |\n| `melos run release`                 | Complete release workflow             |\n\n### 🔧 Development Tools\n\n| Command                     | Description                             |\n| --------------------------- | --------------------------------------- |\n| `melos run analyze`         | Run code analysis                       |\n| `melos run lint`            | Run stricter linting                    |\n| `melos run lint:fix`        | Auto-fix linting issues                 |\n| `melos run format`          | Format all Dart files                   |\n| `melos run format:fix`      | Fix formatting issues                   |\n| `melos run generate`        | Run code generation                     |\n| `melos run generate:select` | Run code generation on selected package |\n| `melos run generate:watch`  | Code generation in watch mode           |\n\n### 🎯 Scoped Commands (Package-Specific)\n\n| Command                    | Description                 |\n| -------------------------- | --------------------------- |\n| `melos run features:test`  | Test only feature packages  |\n| `melos run features:build` | Build only feature packages |\n| `melos run core:test`      | Test only core packages     |\n| `melos run shared:test`    | Test only shared packages   |\n\n### 📊 Monitoring \u0026 Maintenance\n\n| Command                     | Description                       |\n| --------------------------- | --------------------------------- |\n| `melos run metrics`         | Generate code quality metrics     |\n| `melos run docs:generate`   | Generate API documentation        |\n| `melos run docs:deps:graph` | Generate Mermaid dependency graph |\n| `melos run docs:serve`      | Serve documentation locally       |\n| `melos run security:check`  | Security vulnerability audit      |\n\n### 🔄 Version Management\n\n| Command                        | Description             |\n| ------------------------------ | ----------------------- |\n| `melos run version:patch`      | Bump patch version      |\n| `melos run version:minor`      | Bump minor version      |\n| `melos run version:major`      | Bump major version      |\n| `melos run version:prerelease` | Bump prerelease version |\n| `melos run changelog:generate` | Generate changelog      |\n\n### 🚀 CI/CD Integration\n\n| Command               | Description                |\n| --------------------- | -------------------------- |\n| `melos run ci:setup`  | Setup CI environment       |\n| `melos run ci:test`   | Run CI tests with coverage |\n| `melos run ci:build`  | Build for CI deployment    |\n| `melos run ci:deploy` | Complete CI/CD pipeline    |\n\n### 🧹 Cleanup Commands\n\n| Command                | Description                     |\n| ---------------------- | ------------------------------- |\n| `melos clean`          | Clean all packages              |\n| `melos run clean:deep` | Deep clean with generated files |\n| `melos run dev:reset`  | Reset development environment   |\n\n### ⚡ Performance \u0026 Optimization\n\n| Command                  | Description           |\n| ------------------------ | --------------------- |\n| `melos run perf:profile` | Build profile version |\n\n### 📋 Package Management\n\n| Command                   | Description                       |\n| ------------------------- | --------------------------------- |\n| `melos run get`           | Get dependencies for all packages |\n| `melos run deps:upgrade`  | Upgrade all dependencies          |\n| `melos run deps:outdated` | Check for outdated dependencies   |\n\n## 🔍 Dependency Graph Analysis\n\n### View Package Dependencies\n\nYou can analyze package relationships using melos commands:\n\n```bash\n# List all packages with details\nmelos list --long\n\n# Show dependency graph as JSON\nmelos list --graph\n\n# Generate visual dependency graph (Graphviz format)\nmelos list --gviz\n\n# Check for dependency cycles\nmelos list --cycles\n```\n\n### 🔄 Dependency Graph\n\nThe dependency relationships between packages visualized using Mermaid:\n\n```mermaid\ngraph TD\n    %% Package definitions\n    valorantlab[\"🏠 valorantlab\u003cbr/\u003eMain App\"]\n    agent[\"🎭 agent\u003cbr/\u003eAgent Feature\"]\n    home[\"🏡 home\u003cbr/\u003eHome Feature\"]\n    maps[\"🗺️ maps\u003cbr/\u003eMaps Feature\"]\n    weapon[\"⚔️ weapon\u003cbr/\u003eWeapon Feature\"]\n    core[\"🛠️ core\u003cbr/\u003eInfrastructure\"]\n    dependencies[\"📦 dependencies\u003cbr/\u003eShared Deps\"]\n    i18n[\"🌐 i18n\u003cbr/\u003eLocalization\"]\n\n    %% Dependencies\n    valorantlab --\u003e agent\n    valorantlab --\u003e home\n    valorantlab --\u003e maps\n    valorantlab --\u003e weapon\n    valorantlab --\u003e core\n    valorantlab --\u003e dependencies\n    valorantlab --\u003e i18n\n\n    agent --\u003e weapon\n    agent --\u003e core\n    agent --\u003e dependencies\n    agent --\u003e i18n\n\n    home --\u003e core\n    home --\u003e dependencies\n\n    maps --\u003e core\n    maps --\u003e dependencies\n    maps --\u003e i18n\n\n    weapon --\u003e agent\n    weapon --\u003e core\n    weapon --\u003e dependencies\n    weapon --\u003e i18n\n\n    core --\u003e agent\n    core --\u003e home\n    core --\u003e maps\n    core --\u003e weapon\n    core --\u003e dependencies\n    core --\u003e i18n\n\n    %% Styling\n    classDef mainApp fill:#e1f5fe,stroke:#01579b,stroke-width:3px\n    classDef feature fill:#f3e5f5,stroke:#4a148c,stroke-width:2px\n    classDef infrastructure fill:#e8f5e8,stroke:#1b5e20,stroke-width:2px\n    classDef shared fill:#fff3e0,stroke:#e65100,stroke-width:2px\n\n    class valorantlab mainApp\n    class agent,home,maps,weapon feature\n    class core infrastructure\n    class dependencies,i18n shared\n```\n\n**Key Dependencies:**\n\n- **Main App** → All features + core + shared packages\n- **Features** → Core + shared packages for common functionality\n- **Core** → Shared packages for base utilities\n- **Shared** → No dependencies (foundation level)\n\n### Understanding the Architecture\n\n- **🏢 Main App (`valorantlab`)**: Entry point that depends on all features and core packages\n- **🎯 Feature Packages**: Independent features that can be developed separately\n  - `agent`: Manages agent-related functionality\n  - `home`: Handles home screen and navigation\n  - `maps`: Manages map information, callouts, and tactical details\n  - `weapon`: Manages weapon-related features\n- **🛠️ Core Package**: Shared infrastructure (database, networking, utilities)\n- **📦 Shared Packages**: Foundation-level packages\n  - `dependencies`: Common dependencies and configurations\n  - `i18n`: Internationalization support\n\n## 💻 Development Workflow\n\n### Setting up Development Environment\n\n1. **Initial Setup**\n\n   ```bash\n   # Clone and setup\n   git clone https://github.com/rizaadi/valorantlab.git\n   cd valorantlab\n\n   # Install melos and setup environment\n   dart pub global activate melos\n   melos run dev:setup\n   ```\n\n2. **Daily Development**\n\n   ```bash\n   # Start development server\n   melos run build:watch\n\n   # Run tests continuously\n   melos run test:watch\n\n   # Check code quality\n   melos run verify\n   ```\n\n3. **Before Committing**\n\n   ```bash\n   # Format code\n   melos run format:fix\n\n   # Run all quality checks\n   melos run verify\n\n   # Run full test suite\n   melos run test:coverage\n   ```\n\n### Feature Development Process\n\n1. **Create Feature Branch**\n\n   ```bash\n   git checkout -b feature/new-feature\n   ```\n\n2. **Develop with Scoped Commands**\n\n   ```bash\n   # Test only your feature\n   melos run features:test --scope=your-feature\n\n   # Build only your feature\n   melos run features:build --scope=your-feature\n   ```\n\n3. **Quality Assurance**\n\n   ```bash\n   # Run comprehensive checks\n   melos run verify\n   melos run test:coverage\n   melos run analyze\n   ```\n\n4. **Prepare for Release**\n\n   ```bash\n   # Version management\n   melos run version:patch\n\n   # Generate changelog\n   melos run changelog:generate\n\n   # Build release\n   melos run release\n   ```\n\n## 🚀 CI/CD Integration\n\n### GitHub Actions Example\n\nCreate `.github/workflows/ci.yml`:\n\n```yaml\nname: CI/CD Pipeline\n\non:\n  push:\n    branches: [main, develop]\n  pull_request:\n    branches: [main]\n\njobs:\n  test:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v3\n\n      - name: Setup Flutter\n        uses: subosito/flutter-action@v2\n        with:\n          flutter-version: \"3.16.0\"\n\n      - name: Setup Melos\n        run: dart pub global activate melos\n\n      - name: Setup CI Environment\n        run: melos run ci:setup\n\n      - name: Run Tests\n        run: melos run ci:test\n\n      - name: Build App\n        run: melos run ci:build\n\n      - name: Deploy\n        if: github.ref == 'refs/heads/main'\n        run: melos run ci:deploy\n```\n\n### Available CI Commands\n\n| Command               | Purpose                | Usage                             |\n| --------------------- | ---------------------- | --------------------------------- |\n| `melos run ci:setup`  | Prepare CI environment | Sets up packages and dependencies |\n| `melos run ci:test`   | Run CI tests           | Executes tests with coverage      |\n| `melos run ci:build`  | Build for deployment   | Generates release builds          |\n| `melos run ci:deploy` | Deploy application     | Full deployment pipeline          |\n\n## 🔧 Troubleshooting\n\n### Common Issues\n\n**1. Build Failures**\n\n```bash\n# Clean and reset everything\nmelos run clean:deep\nmelos run dev:reset\n\n# Check environment\nmelos run dev:doctor\n```\n\n**2. Dependency Conflicts**\n\n```bash\n# Check for outdated packages\nmelos run deps:outdated\n\n# Upgrade dependencies\nmelos run deps:upgrade\n```\n\n**3. Test Failures**\n\n```bash\n# Run tests with detailed output\nmelos run test:coverage\n\n# Test specific packages\nmelos run features:test --scope=package-name\n```\n\n**4. Code Generation Issues**\n\n```bash\n# Clean and regenerate all packages\nmelos run build:clean\nmelos run generate\n\n# Interactive package selection for generation\nmelos run generate:select\n```\n\n### Performance Tips\n\n- Use scoped commands for faster development\n- Run `melos run test:watch` during development\n- Use `melos run build:watch` for hot reload\n- Regular `melos run clean:deep` for optimal performance\n\n## 📋 Roadmap\n\n### ✅ Completed\n\n- [x] Clean Architecture implementation\n- [x] Dependency Injection with GetIt\n- [x] Flutter Flavors (dev/prod)\n- [x] Comprehensive Unit Testing\n- [x] Modularization with Melos\n- [x] Localization (EN \u0026 ID)\n- [x] Melos monorepo management\n- [x] Code quality automation\n- [x] Comprehensive testing framework\n\n### 🚧 In Progress\n\n- [ ] Advanced CI/CD with deployment automation\n- [ ] Publish to Play Store/App Store\n\n### 🔮 Future Goals\n\n- [ ] Performance optimization\n- [ ] Widget testing expansion\n- [ ] Performance monitoring and analytics\n- [ ] Advanced security features\n\n## License\n\nDistributed under the MIT License. See [MIT License](https://github.com/rizaadi/valorantlab/blob/1c93f8261d7cb0c0bc2650b0ed6b8a9a5efeb716/LICENSE) for more information.\n\n## Contact\n\n[Riza Adi Kurniawan](https://www.linkedin.com/in/rizaadikurniawan/) - rizaadi890@gmail.com\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frizaadi%2Fvalorantlab","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frizaadi%2Fvalorantlab","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frizaadi%2Fvalorantlab/lists"}