nova_avx 1.0.2
nova_avx: ^1.0.2 copied to clipboard
A Flutter package for QR code scanning and product authentication with image quality analysis.
Nova AVX #
A comprehensive Flutter package for QR code scanning and product authentication with advanced image quality analysis and ML-powered verification.
Features #
- π Advanced QR Code Scanning - High-precision QR code detection with angle tolerance
- πΈ Camera Integration - Safe camera management with lifecycle handling
- π§ ML-Powered Authentication - Product verification using machine learning
- π Image Quality Analysis - Low light detection, contrast analysis, and sharpness evaluation
- π Secure API Integration - Configurable API endpoints for your backend
- π± Cross-Platform - Works on both iOS and Android
- π¨ Customizable UI - Beautiful, modern interface with customizable themes
Installation #
Add this to your package's pubspec.yaml file:
dependencies:
nova_avx: ^1.0.2
Quick Start #
1. Configure API #
import 'package:nova_avx/nova_avx.dart';
void main() {
// Configure your API endpoint
NovaAvxConfig.configureApi(
baseUrl: 'https://your-api-endpoint.com/api',
timeoutSeconds: 50,
);
runApp(const MyApp());
}
2. Add Permissions #
Android (android/app/src/main/AndroidManifest.xml):
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.INTERNET" />
iOS (ios/Runner/Info.plist):
<key>NSCameraUsageDescription</key>
<string>This app needs camera access to scan QR codes</string>
3. Use the Package #
import 'package:nova_avx/nova_avx.dart';
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: Center(
child: ElevatedButton(
onPressed: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => NovaAvx.startScanning(),
),
);
},
child: const Text('Start QR Scanning'),
),
),
),
);
}
}
β οΈ Important: Use Public API Only #
DO NOT access internal classes directly:
// β DON'T DO THIS - Internal classes are not exported
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => const AvxNovaCameraScreen(), // This will cause errors
),
);
DO use the public API:
// β
DO THIS - Use the public API
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => NovaAvx.startScanning(), // This is the correct way
),
);
API Reference #
NovaAvx (Main API) #
The main public interface for the Nova AVX package:
// Start QR code scanning and product authentication
Widget cameraScreen = NovaAvx.startScanning();
// Alternative method with explicit naming
Widget cameraScreen = NovaAvx.getCameraScreen();
NovaAvxConfig #
Configure the package settings:
// Set API base URL
NovaAvxConfig.setApiBaseUrl('https://your-api.com');
// Set timeout
NovaAvxConfig.setApiTimeout(60);
// Configure both at once
NovaAvxConfig.configureApi(
baseUrl: 'https://your-api.com',
timeoutSeconds: 60,
);
CameraScreen #
The main camera interface for QR scanning:
const CameraScreen()
ImageProcessingScreen #
Handles post-capture image processing and API calls:
const ImageProcessingScreen()
Configuration #
API Configuration #
The package requires you to configure your API endpoint. This ensures your API keys and URLs remain secure in your application code.
NovaAvxConfig.configureApi(
baseUrl: 'https://your-backend-api.com/authenticate',
timeoutSeconds: 50,
);
Image Quality Thresholds #
You can customize image quality thresholds by modifying the constants in your app:
// These are the default values
AppConstants.defaultBrightnessThreshold = 70.0;
AppConstants.defaultContrastThreshold = 150.0;
AppConstants.defaultSharpnessThreshold = 18.0;
Example #
Check out the example directory for a complete implementation.
Contributing #
Contributions are welcome! Please feel free to submit a Pull Request.
License #
This project is licensed under the MIT License - see the LICENSE file for details.
Support #
If you encounter any issues or have questions, please file an issue on the GitHub repository.