Product Requirements Document (PRD)
1. Executive Summary
1.1 Vision Statement
QR Igniter 2.0 is an enterprise-grade QR code management platform that enables brands to create GS1 Digital Link compliant QR codes, track consumer engagement analytics, and provide interactive experiences through branded mobile applications.
1.2 Problem Statement
Brands need a comprehensive solution to:
- Generate standards-compliant QR codes at scale
- Track consumer engagement with products
- Provide interactive experiences (competitions, feedback, product information)
- Manage multiple brands and campaigns from a single platform
- Support global operations with multi-language capabilities
1.3 Solution Overview
A comprehensive multi-component system consisting of:
- Backend Platform: Laravel 12 + Filament v4 admin panel for QR code generation, management, and analytics
- Mobile Application: Flutter-based consumer app for QR code scanning and brand engagement
- Public Website: Marketing website showcasing platform features with modern design
- Documentation Portal: Searchable technical documentation and user guides
- API Documentation: Interactive Swagger/OpenAPI documentation
1.4 Development Methodology
Test-Driven Development (TDD) approach will be used throughout:
- Write tests before implementation
- Maintain minimum 80% code coverage
- Automated CI/CD pipeline with test gates
- Unit tests for all Laravel services and Flutter components
2. Project Overview
2.1 Project Scope
| Component | Technology | Purpose |
|---|---|---|
| Admin Backend | Laravel 12 + Filament v4 | QR code generation, client management, analytics |
| Consumer Mobile App | Flutter 3.x | QR scanning, competition entry, brand engagement |
| Public Website | HTML5, CSS3, JavaScript, AOS | Marketing, feature showcase, lead generation |
| Documentation Portal | Static HTML + Search (Lunr) | Technical docs, user guides, API reference |
| API Documentation | Swagger/OpenAPI 3.0 | Interactive API documentation |
| Database | MySQL 8.x | Data persistence |
2.2 Key Features Summary
Backend Platform
- Multi-tenant client and brand management
- GS1 Digital Link QR code generation
- Bulk QR code generation via CSV upload
- Dynamic URL redirection
- Interim selector/landing page builder
- Comprehensive analytics dashboard
- GTIN/Batch/Serial number management
- Logo embedding with brand/custom logo support (PNG, JPG, SVG)
Mobile Application
- QR code scanning via camera
- Competition entry workflow
- Brand-customized UI theming
- Push notifications
- Customer feedback submission
- Product information display
3. System Architecture
+-------------------------------------------------------------------------+
| CLOUD INFRASTRUCTURE |
+-------------------------------------------------------------------------+
| |
| +----------------+ +----------------+ +----------------+ |
| | Laravel 12 | | MySQL DB | | File | |
| | + Filament v4 |<>| | | Storage | |
| | Admin Panel | | - Clients | | (QR Images) | |
| | | | - Brands | | | |
| | - API Layer | | - Products | +----------------+ |
| | - QR Generator| | - QR Codes | |
| | - Analytics | | - Analytics | +----------------+ |
| +-------+--------+ +----------------+ | Public Website| |
| | | (HTML/CSS/JS) | |
| | REST API +----------------+ |
| v |
| +----------------+ +----------------+ |
| | API Gateway | | Documentation | |
| | - Auth |<-------------------->| Portal (/docs)| |
| | - Rate Limit | | - Searchable | |
| | - Swagger | | - Swagger UI | |
| +-------+--------+ +----------------+ |
| | |
+----------+---------------------------------------------------------------+
|
v
+-------------------+
| Flutter Mobile |
| Application |
| - iOS |
| - Android |
+-------------------+
4. Backend System (Laravel + Filament)
4.1 Admin Panel Modules
Client Management
- Create/Edit/Delete clients
- Client-specific settings
- Activity logging
- Usage statistics per client
Brand Management
- Logo upload (PNG, JPG, SVG) for QR code embedding
- Brand color scheme
- Website URL configuration
- Brand-specific QR templates
Campaign Management
- Create campaigns with date ranges
- Status workflow (Draft, Active, Paused, Completed)
- Campaign analytics dashboard
- QR code count badges
5. QR Code Generation
5.1 Configuration Options
| Option | Values | Default |
|---|---|---|
| Size | 128-2048px | 512px |
| Error Correction | L, M, Q, H | H (when logo enabled) |
| Format | PNG, SVG, PDF | PNG |
| Color | Hex color | #000000 |
| Background | Hex color | #FFFFFF |
| Logo Embed | Boolean | true |
| Logo Image | PNG, JPG, SVG | Brand logo |
| Logo Size | 15-30% of QR | 20% |
5.2 Logo Embedding Feature
Clients can upload a custom logo to be placed in the center of generated QR codes. This feature is enabled by default and uses the brand logo unless a custom logo is specified.
| Feature | Description |
|---|---|
| Supported Formats | PNG, JPG/JPEG, SVG |
| Max File Size | 2MB |
| Logo Position | Center of QR code |
| Logo Size Range | 15-30% of QR code dimensions |
| Default Size | 20% of QR code |
| Toggle Option | Selectable per QR code (enabled by default) |
| Brand Default | Uses brand logo if no specific logo provided |
| Error Correction | Automatically set to H (High) when logo enabled |
Logo Requirements
- Recommended dimensions: 200x200px minimum for PNG/JPG
- SVG logos are automatically scaled
- Square logos work best; non-square logos are centered with padding
- Transparent backgrounds are preserved (PNG/SVG)
- White/light background padding applied automatically for visibility
Logo Upload Process
- Brand uploads logo via Brand Management (stored as brand default)
- When creating QR codes, logo embedding is enabled by default
- User can toggle off logo embedding if desired
- User can upload a different logo for specific QR codes
- System validates file type and dimensions
- Logo is embedded during QR code generation with appropriate error correction
6. Flutter Mobile Application
6.1 Features
- QR code scanning via device camera
- GS1 Digital Link parsing
- Competition entry flow
- Product information display
- Interim selector navigation
- Brand-customized theming
6.2 Tech Stack
| Library | Purpose |
|---|---|
| flutter_riverpod | State management |
| go_router | Navigation |
| mobile_scanner | QR code scanning |
| dio | HTTP client |
| flutter_secure_storage | Secure data storage |
7. Analytics Platform
7.1 Tracked Metrics
- Total scans per QR code, campaign, brand, client
- Unique users (session-based)
- Geographic location (country, city)
- Device type (mobile, tablet, desktop)
- Browser and OS
- Language preference
- Scan time distribution
- Interim selector link clicks
7.2 Dashboard Widgets
- Overview stats cards
- Scans over time (bar chart)
- Location distribution (pie chart + world map)
- Device breakdown (pie chart)
- Language distribution (pie chart)
- Scrollable scan history table
8. GS1 Digital Link Compliance
8.1 Supported Application Identifiers
| AI Code | Description | Example |
|---|---|---|
| 01 | GTIN (Global Trade Item Number) | 01/09506000134352 |
| 10 | Batch/Lot Number | 10/ABC123 |
| 21 | Serial Number | 21/XYZ789 |
| 17 | Expiry Date (YYMMDD) | 17/251231 |
| 3103 | Net Weight (grams) | 3103/000500 |
| 22 | Consumer Product Variant | 22/VANILLA |
8.2 Digital Link URI Format
https://qr2.ignited.cloud/01/{GTIN}/10/{BATCH}/21/{SERIAL}?17={EXPIRY}
Reference: GS1 Digital Link Quick Start Guide
This page contains key sections of the PRD. For additional details including database schema, API specifications, and implementation phases, see the Database Schema, API Documentation, and Implementation Plan pages.