https://github.com/flutterbysunny/bharatvalidator
India-first Flutter form validation package with 30+ validators.
https://github.com/flutterbysunny/bharatvalidator
Last synced: 4 days ago
JSON representation
India-first Flutter form validation package with 30+ validators.
- Host: GitHub
- URL: https://github.com/flutterbysunny/bharatvalidator
- Owner: flutterbysunny
- License: mit
- Created: 2026-05-31T08:58:25.000Z (12 days ago)
- Default Branch: main
- Last Pushed: 2026-06-01T05:13:30.000Z (11 days ago)
- Last Synced: 2026-06-01T06:27:14.588Z (11 days ago)
- Language: Dart
- Size: 82 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# ๐ฎ๐ณ BharatValidator
**India-first Flutter form validation package with 30+ validators.**
Validate Aadhaar, PAN, GST, IFSC, UPI, Driving License, Passport, Voter ID, CIN, TAN, FSSAI, ABHA, EPF, Card (Luhn), RERA, Udyam and more โ with **English, Hindi & Gujarati** error messages.
[](https://pub.dev/packages/bharatvalidator)
[](LICENSE)
---
## โจ Features
### ๐ชช Identity
| Validator | Description |
|---|---|
| `aadhaar` | 12-digit Aadhaar (starts 2โ9) |
| `pan` | PAN card (ABCDE1234F format) |
| `passport` | Indian passport number |
| `voterId` | Voter ID / EPIC number |
| `drivingLicense` | Indian driving license number |
### ๐ข Tax & Business
| Validator | Description |
|---|---|
| `gst` | 15-char GST number |
| `tan` | TAN number (PDES03028F format) |
| `cin` | Company Identification Number |
| `fssai` | FSSAI license number (14 digits) |
| `udyam` | Udyam / MSME registration number |
| `rera` | RERA registration number |
### ๐ฆ Banking & Finance
| Validator | Description |
|---|---|
| `ifsc` | Bank IFSC code |
| `upi` | UPI ID (name@handle) |
| `bankAccount` | Bank account number (9โ18 digits) |
| `cardNumber` | Credit/Debit card number (Luhn algorithm) |
| `micr` | MICR code (9 digits) |
| `epf` | EPF / PF account number |
| `amount` | Indian currency amount with optional min/max (โน) |
### ๐ Contact
| Validator | Description |
|---|---|
| `phone` | 10-digit mobile (+91 supported) |
| `email` | Email address |
| `landline` | Indian landline with STD code |
### ๐ฅ Health
| Validator | Description |
|---|---|
| `abha` | ABHA / Ayushman Bharat Health Account number |
### ๐ Address & Vehicle
| Validator | Description |
|---|---|
| `pincode` | 6-digit Indian pincode |
| `vehicle` | Indian vehicle number (GJ01AB1234) |
### ๐ค Personal
| Validator | Description |
|---|---|
| `name` | Name (supports Devanagari & Gujarati script) |
| `password` | Strong password (8+ chars, upper, lower, digit, symbol) |
| `username` | Username (3โ20 chars, letters/digits/_/-) |
| `dob` | Date of birth with optional min/max age |
### ๐ Digital
| Validator | Description |
|---|---|
| `url` | Website URL (http/https) |
| `otp` | OTP โ 4 or 6 digit |
**Multi-language error messages:** English ๐ฌ๐ง ยท Hindi ๐ฎ๐ณ ยท Gujarati ๐
---
## ๐ Installation
```yaml
dependencies:
bharatvalidator: ^1.0.0
```
```bash
flutter pub get
```
---
## ๐ Usage
### Basic
```dart
import 'package:bharatvalidator/bharatvalidator.dart';
final v = BharatValidator(); // English (default)
TextFormField(
validator: v.aadhaar, // Pass directly!
)
```
### Change Language
```dart
// Hindi
final v = BharatValidator(locale: BharatLocale.hindi);
// Gujarati
final v = BharatValidator(locale: BharatLocale.gujarati);
```
### Validators with Parameters
```dart
// DOB with minimum age check
TextFormField(
validator: (val) => v.dob(val, minAge: 18),
)
// Amount with min/max range
TextFormField(
validator: (val) => v.amount(val, min: 1, max: 100000),
)
// OTP length
TextFormField(
validator: (val) => v.otp(val, length: 6),
)
```
### Full Form Example
```dart
final v = BharatValidator(locale: BharatLocale.hindi);
Form(
key: _formKey,
child: Column(
children: [
// Personal
TextFormField(validator: v.name, decoration: InputDecoration(labelText: 'Name')),
TextFormField(validator: v.username, decoration: InputDecoration(labelText: 'Username')),
TextFormField(validator: v.phone, decoration: InputDecoration(labelText: 'Mobile')),
TextFormField(validator: v.email, decoration: InputDecoration(labelText: 'Email')),
TextFormField(validator: v.password, decoration: InputDecoration(labelText: 'Password')),
TextFormField(validator: (v) => v.dob(v, minAge: 18), decoration: InputDecoration(labelText: 'DOB')),
// Government IDs
TextFormField(validator: v.aadhaar, decoration: InputDecoration(labelText: 'Aadhaar')),
TextFormField(validator: v.pan, decoration: InputDecoration(labelText: 'PAN')),
TextFormField(validator: v.voterId, decoration: InputDecoration(labelText: 'Voter ID')),
TextFormField(validator: v.passport, decoration: InputDecoration(labelText: 'Passport')),
TextFormField(validator: v.drivingLicense, decoration: InputDecoration(labelText: 'Driving License')),
// Tax & Business
TextFormField(validator: v.gst, decoration: InputDecoration(labelText: 'GST')),
TextFormField(validator: v.tan, decoration: InputDecoration(labelText: 'TAN')),
TextFormField(validator: v.cin, decoration: InputDecoration(labelText: 'CIN')),
TextFormField(validator: v.fssai, decoration: InputDecoration(labelText: 'FSSAI')),
TextFormField(validator: v.udyam, decoration: InputDecoration(labelText: 'Udyam')),
// Banking
TextFormField(validator: v.ifsc, decoration: InputDecoration(labelText: 'IFSC')),
TextFormField(validator: v.upi, decoration: InputDecoration(labelText: 'UPI ID')),
TextFormField(validator: v.bankAccount, decoration: InputDecoration(labelText: 'Account No.')),
TextFormField(validator: v.cardNumber, decoration: InputDecoration(labelText: 'Card Number')),
ElevatedButton(
onPressed: () => _formKey.currentState!.validate(),
child: Text('Submit'),
),
],
),
)
```
---
## ๐ Supported Languages
```dart
BharatLocale.english // "Enter a valid 12-digit Aadhaar number."
BharatLocale.hindi // "เคฎเคพเคจเฅเคฏ 12 เค
เคเคเฅเค เคเคพ เคเคงเคพเคฐ เคจเคเคฌเคฐ เคฆเคฐเฅเค เคเคฐเฅเคเฅค"
BharatLocale.gujarati // "เชฎเชพเชจเซเชฏ 12 เช
เชเชเชจเซ เชเชงเชพเชฐ เชจเชเชฌเชฐ เชฆเชพเชเชฒ เชเชฐเซ."
```
---
## ๐๏ธ Project Structure
```
bharatvalidator/
โโโ lib/
โ โโโ bharatvalidator.dart # Main export
โ โโโ src/
โ โโโ bharat_validator.dart # Main BharatValidator class
โ โโโ locale/
โ โ โโโ bharat_locale.dart # Multi-language messages
โ โโโ validators/
โ โโโ aadhaar_validator.dart
โ โโโ pan_validator.dart
โ โโโ gst_validator.dart
โ โโโ tan_validator.dart
โ โโโ cin_validator.dart
โ โโโ ifsc_validator.dart
โ โโโ upi_validator.dart
โ โโโ pincode_validator.dart
โ โโโ phone_validator.dart
โ โโโ landline_validator.dart
โ โโโ email_validator.dart
โ โโโ vehicle_validator.dart
โ โโโ passport_validator.dart
โ โโโ voter_id_validator.dart
โ โโโ driving_license_validator.dart
โ โโโ bank_account_validator.dart
โ โโโ card_number_validator.dart
โ โโโ micr_validator.dart
โ โโโ epf_validator.dart
โ โโโ fssai_validator.dart
โ โโโ abha_validator.dart
โ โโโ rera_validator.dart
โ โโโ udyam_validator.dart
โ โโโ name_validator.dart
โ โโโ password_validator.dart
โ โโโ username_validator.dart
โ โโโ dob_validator.dart
โ โโโ amount_validator.dart
โ โโโ url_validator.dart
โ โโโ otp_validator.dart
โโโ example/ # Full demo app
โโโ test/ # Unit tests
```
---
## ๐งช Running Tests
```bash
flutter test
```
---
## ๐ License
MIT License ยฉ 2026 โ Made with โค๏ธ for Indian Flutter developers.