{"id":50672232,"url":"https://github.com/flutterbysunny/bharatvalidator","last_synced_at":"2026-06-08T12:04:58.958Z","repository":{"id":361755230,"uuid":"1254990045","full_name":"flutterbysunny/bharatvalidator","owner":"flutterbysunny","description":"India-first Flutter form validation package with 30+ validators.","archived":false,"fork":false,"pushed_at":"2026-06-01T05:13:30.000Z","size":84,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-01T06:27:14.588Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/flutterbysunny.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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-31T08:58:25.000Z","updated_at":"2026-06-01T05:12:12.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/flutterbysunny/bharatvalidator","commit_stats":null,"previous_names":["flutterbysunny/bharatvalidator"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/flutterbysunny/bharatvalidator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flutterbysunny%2Fbharatvalidator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flutterbysunny%2Fbharatvalidator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flutterbysunny%2Fbharatvalidator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flutterbysunny%2Fbharatvalidator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/flutterbysunny","download_url":"https://codeload.github.com/flutterbysunny/bharatvalidator/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flutterbysunny%2Fbharatvalidator/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34061148,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-08T02:00:07.615Z","response_time":111,"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":[],"created_at":"2026-06-08T12:04:54.329Z","updated_at":"2026-06-08T12:04:58.949Z","avatar_url":"https://github.com/flutterbysunny.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🇮🇳 BharatValidator\n\n**India-first Flutter form validation package with 30+ validators.**\n\nValidate Aadhaar, PAN, GST, IFSC, UPI, Driving License, Passport, Voter ID, CIN, TAN, FSSAI, ABHA, EPF, Card (Luhn), RERA, Udyam and more — with **English, Hindi \u0026 Gujarati** error messages.\n\n[![pub package](https://img.shields.io/pub/v/bharatvalidator.svg)](https://pub.dev/packages/bharatvalidator)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)\n\n---\n\n## ✨ Features\n\n### 🪪 Identity\n| Validator | Description |\n|---|---|\n| `aadhaar` | 12-digit Aadhaar (starts 2–9) |\n| `pan` | PAN card (ABCDE1234F format) |\n| `passport` | Indian passport number |\n| `voterId` | Voter ID / EPIC number |\n| `drivingLicense` | Indian driving license number |\n\n### 🏢 Tax \u0026 Business\n| Validator | Description |\n|---|---|\n| `gst` | 15-char GST number |\n| `tan` | TAN number (PDES03028F format) |\n| `cin` | Company Identification Number |\n| `fssai` | FSSAI license number (14 digits) |\n| `udyam` | Udyam / MSME registration number |\n| `rera` | RERA registration number |\n\n### 🏦 Banking \u0026 Finance\n| Validator | Description |\n|---|---|\n| `ifsc` | Bank IFSC code |\n| `upi` | UPI ID (name@handle) |\n| `bankAccount` | Bank account number (9–18 digits) |\n| `cardNumber` | Credit/Debit card number (Luhn algorithm) |\n| `micr` | MICR code (9 digits) |\n| `epf` | EPF / PF account number |\n| `amount` | Indian currency amount with optional min/max (₹) |\n\n### 📞 Contact\n| Validator | Description |\n|---|---|\n| `phone` | 10-digit mobile (+91 supported) |\n| `email` | Email address |\n| `landline` | Indian landline with STD code |\n\n### 🏥 Health\n| Validator | Description |\n|---|---|\n| `abha` | ABHA / Ayushman Bharat Health Account number |\n\n### 📍 Address \u0026 Vehicle\n| Validator | Description |\n|---|---|\n| `pincode` | 6-digit Indian pincode |\n| `vehicle` | Indian vehicle number (GJ01AB1234) |\n\n### 👤 Personal\n| Validator | Description |\n|---|---|\n| `name` | Name (supports Devanagari \u0026 Gujarati script) |\n| `password` | Strong password (8+ chars, upper, lower, digit, symbol) |\n| `username` | Username (3–20 chars, letters/digits/_/-) |\n| `dob` | Date of birth with optional min/max age |\n\n### 🌐 Digital\n| Validator | Description |\n|---|---|\n| `url` | Website URL (http/https) |\n| `otp` | OTP — 4 or 6 digit |\n\n**Multi-language error messages:** English 🇬🇧 · Hindi 🇮🇳 · Gujarati 🟠\n\n---\n\n## 🚀 Installation\n\n```yaml\ndependencies:\n  bharatvalidator: ^1.0.0\n```\n\n```bash\nflutter pub get\n```\n\n---\n\n## 📖 Usage\n\n### Basic\n\n```dart\nimport 'package:bharatvalidator/bharatvalidator.dart';\n\nfinal v = BharatValidator(); // English (default)\n\nTextFormField(\n  validator: v.aadhaar, // Pass directly!\n)\n```\n\n### Change Language\n\n```dart\n// Hindi\nfinal v = BharatValidator(locale: BharatLocale.hindi);\n\n// Gujarati\nfinal v = BharatValidator(locale: BharatLocale.gujarati);\n```\n\n### Validators with Parameters\n\n```dart\n// DOB with minimum age check\nTextFormField(\n  validator: (val) =\u003e v.dob(val, minAge: 18),\n)\n\n// Amount with min/max range\nTextFormField(\n  validator: (val) =\u003e v.amount(val, min: 1, max: 100000),\n)\n\n// OTP length\nTextFormField(\n  validator: (val) =\u003e v.otp(val, length: 6),\n)\n```\n\n### Full Form Example\n\n```dart\nfinal v = BharatValidator(locale: BharatLocale.hindi);\n\nForm(\n  key: _formKey,\n  child: Column(\n    children: [\n      // Personal\n      TextFormField(validator: v.name,          decoration: InputDecoration(labelText: 'Name')),\n      TextFormField(validator: v.username,       decoration: InputDecoration(labelText: 'Username')),\n      TextFormField(validator: v.phone,          decoration: InputDecoration(labelText: 'Mobile')),\n      TextFormField(validator: v.email,          decoration: InputDecoration(labelText: 'Email')),\n      TextFormField(validator: v.password,       decoration: InputDecoration(labelText: 'Password')),\n      TextFormField(validator: (v) =\u003e v.dob(v, minAge: 18), decoration: InputDecoration(labelText: 'DOB')),\n\n      // Government IDs\n      TextFormField(validator: v.aadhaar,        decoration: InputDecoration(labelText: 'Aadhaar')),\n      TextFormField(validator: v.pan,            decoration: InputDecoration(labelText: 'PAN')),\n      TextFormField(validator: v.voterId,        decoration: InputDecoration(labelText: 'Voter ID')),\n      TextFormField(validator: v.passport,       decoration: InputDecoration(labelText: 'Passport')),\n      TextFormField(validator: v.drivingLicense, decoration: InputDecoration(labelText: 'Driving License')),\n\n      // Tax \u0026 Business\n      TextFormField(validator: v.gst,            decoration: InputDecoration(labelText: 'GST')),\n      TextFormField(validator: v.tan,            decoration: InputDecoration(labelText: 'TAN')),\n      TextFormField(validator: v.cin,            decoration: InputDecoration(labelText: 'CIN')),\n      TextFormField(validator: v.fssai,          decoration: InputDecoration(labelText: 'FSSAI')),\n      TextFormField(validator: v.udyam,          decoration: InputDecoration(labelText: 'Udyam')),\n\n      // Banking\n      TextFormField(validator: v.ifsc,           decoration: InputDecoration(labelText: 'IFSC')),\n      TextFormField(validator: v.upi,            decoration: InputDecoration(labelText: 'UPI ID')),\n      TextFormField(validator: v.bankAccount,    decoration: InputDecoration(labelText: 'Account No.')),\n      TextFormField(validator: v.cardNumber,     decoration: InputDecoration(labelText: 'Card Number')),\n\n      ElevatedButton(\n        onPressed: () =\u003e _formKey.currentState!.validate(),\n        child: Text('Submit'),\n      ),\n    ],\n  ),\n)\n```\n\n---\n\n## 🌐 Supported Languages\n\n```dart\nBharatLocale.english   // \"Enter a valid 12-digit Aadhaar number.\"\nBharatLocale.hindi     // \"मान्य 12 अंकों का आधार नंबर दर्ज करें।\"\nBharatLocale.gujarati  // \"માન્ય 12 અંકનો આધાર નંબર દાખલ કરો.\"\n```\n\n---\n\n## 🏗️ Project Structure\n\n```\nbharatvalidator/\n├── lib/\n│   ├── bharatvalidator.dart              # Main export\n│   └── src/\n│       ├── bharat_validator.dart         # Main BharatValidator class\n│       ├── locale/\n│       │   └── bharat_locale.dart        # Multi-language messages\n│       └── validators/\n│           ├── aadhaar_validator.dart\n│           ├── pan_validator.dart\n│           ├── gst_validator.dart\n│           ├── tan_validator.dart\n│           ├── cin_validator.dart\n│           ├── ifsc_validator.dart\n│           ├── upi_validator.dart\n│           ├── pincode_validator.dart\n│           ├── phone_validator.dart\n│           ├── landline_validator.dart\n│           ├── email_validator.dart\n│           ├── vehicle_validator.dart\n│           ├── passport_validator.dart\n│           ├── voter_id_validator.dart\n│           ├── driving_license_validator.dart\n│           ├── bank_account_validator.dart\n│           ├── card_number_validator.dart\n│           ├── micr_validator.dart\n│           ├── epf_validator.dart\n│           ├── fssai_validator.dart\n│           ├── abha_validator.dart\n│           ├── rera_validator.dart\n│           ├── udyam_validator.dart\n│           ├── name_validator.dart\n│           ├── password_validator.dart\n│           ├── username_validator.dart\n│           ├── dob_validator.dart\n│           ├── amount_validator.dart\n│           ├── url_validator.dart\n│           └── otp_validator.dart\n├── example/                              # Full demo app\n└── test/                                 # Unit tests\n```\n\n---\n\n## 🧪 Running Tests\n\n```bash\nflutter test\n```\n\n---\n\n## 📄 License\n\nMIT License © 2026 — Made with ❤️ for Indian Flutter developers.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflutterbysunny%2Fbharatvalidator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fflutterbysunny%2Fbharatvalidator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflutterbysunny%2Fbharatvalidator/lists"}