A professional-grade, unified Flutter application designed to automate the creation of official passport photos for any country. Built with a focus on high-end aesthetics (Glassmorphism & Emerald Palette) and cross-platform performance.
- ⚡ Pro-Visuals: Stunning dark-mode emerald theme with a modern translucent (glassmorphism) design across the entire user experience.
- 📐 Precise Formatting: Automated cropping and alignment based on international standards (US 2x2, UK 35x45mm, and more).
- 🔐 AES-256 Cloud Security: Your privacy matters. All synced history images are encrypted on your device using a unique AES-256 key before being securely stored on the cloud.
- ✨ AI Background Eraser: Remove background in one click with built-in AI processing to ensure perfect studio-white backgrounds every time.
- 📱 Guided Intro: Modern interactive walkthrough for mobile users to quickly learn the app's main features.
- 🚀 Quick Start Dashboard: Instantly start your project with the "Create New Passport" interactive tile—snap a photo or import from your gallery.
- 📱 Unified Experience: Fully responsive design that scales perfectly from small mobile screens to large desktop monitors.
- 🖨️ One-Click Printing: Generate high-resolution, printable A4 PDF templates with correctly sized and spaced photo sets.
| Onboarding | Dashboard | Editor Studio |
|---|---|---|
| Cloud History | Profile & Settings |
|---|---|
(Replace with actual screenshots as they become available)
- Frontend: Flutter (Dart)
- Backend: Supabase (Database, Auth, and Storage)
- Encryption: AES-256 (via
encryptpackage) - Architecture: Provider (State Management)
- Design: Vanilla CSS with custom Theme Extensions
- PDF Engine: Printing & Pdf package for printable template generation
- UI Assets: Google Fonts (Outfit) & Lucide-style icons
- Flutter SDK installed
- A Supabase account (Free Tier)
- (Optional) Remove.bg API Key for the AI eraser tool
- Create a project in Supabase.
- Create a public bucket in Storage named
photos. - Create a Table named
historywith following columns:id: uuid (primary key)user_id: uuid (foreign key to auth.users)image_url: textstandard_name: textcreated_at: timestamptz (default: now())
- Disable "Confirm Email" in Authentication > Settings.
git clone https://github.com/arifahmed19/Passport-Photo-Studio-Unified-Flutter-App.git
cd Passport-Photo-Studio-Unified-Flutter-App
flutter pub getOpen lib/main.dart and paste your Supabase keys:
await Supabase.initialize(
url: 'YOUR_PROJECT_URL',
anonKey: 'YOUR_ANON_KEY',
);# For Web
flutter run -d chrome
# For Mobile
flutter runlib/
├── core/ # Custom Emerald Theme, Crypto Service & Tokens
├── models/ # Passport Sizing Standards & Data Models
├── providers/ # Auth & Passport Processing State Management
├── screens/ # Glassmorphism UI Screens (Intro, Auth, Home, Editor)
└── main.dart # App Entry Point & Initialization
Arif Ahmed
GitHub Portfolio
If you find this project useful, you can support me via Binance: UID: 1210563042 (Copy from the app's Profile section)
This project is licensed under the MIT License - see the LICENSE file for details.