πEnterprise-grade Mobile Shop Management app for Android with GST compliance, IMEI-aware inventory, ML Kit OCR, thermal printing, and professional invoice generation that Simply Works
Features β’ Quick Start β’ Screenshots β’ Tech Stack β’ Installation β’ Documentation β’ Contributing β’ License
|
|
π GST & Tax Management
-
4 GST Modes:
FULL_GST: Complete tax invoice with GST breakdownPARTIAL_GST: Simplified GST display for registered businessesGST_REFERENCE: Shows GSTIN only, no calculationsNO_GST: For non-GST businesses
-
Tax Features:
- Intrastate (CGST + SGST) and Interstate (IGST) support
- HSN/SAC code management
- Multi-tier GST rates (0%, 5%, 12%, 18%, 28%)
- Cess calculation
- State-wise GST configuration
- GST reports and return filing data
π± IMEI & Product Management
-
Individual IMEI Tracking:
- Unique IMEI per device unit
- Dual IMEI support (IMEI1 + IMEI2)
- Serial number tracking
- Warranty management with dates
- Purchase price history per unit
-
Smart IMEI Scanner:
- Camera-based scanning with ML Kit
- Auto-detection of single/dual IMEI
- Bulk scanning mode for multiple devices
- Real-time duplicate checking
- Luhn algorithm validation
- Manual entry fallback
-
Product Features:
- Brand, model, variant, color tracking
- Stock status management
- Multiple suppliers
- Barcode support
- Cost price history
- Stock adjustments with reasons
π§Ύ Invoice & Billing
-
Professional Invoices:
- PDF generation with iText7
- Customer and Owner copies
- Bilingual support (English/Hindi)
- Digital signature embedding
- GST breakdown display
- Terms and conditions
-
Invoice Types:
- Regular sales invoice
- Proforma invoice
- Credit note
- Debit note
- Export invoice
- SEZ invoice
-
Billing Features:
- Quick cart-based billing
- IMEI-based product addition
- Discount application (% or fixed)
- Multiple payment methods
- Draft transactions
- Transaction history
π€ OCR & Automation
-
Invoice Scanning:
- Scan supplier invoices with camera
- Extract product details automatically
- IMEI detection from bills
- Brand, model, price extraction
- Smart field validation
-
OCR Features:
- ML Kit Text Recognition
- Image quality assessment
- Intelligent text filtering
- Template matching
- Manual correction interface
- Multi-page support
πΎ Backup & Data Management
-
Backup System:
- Daily automated backups
- Full and incremental modes
- ZIP compression
- Database + PDFs + Signatures
- Metadata preservation
- One-click restore
-
Data Export:
- CSV export for invoices
- JSON data export
- Invoice PDF bulk export
- Database statistics
π Analytics & Reports
-
Business Metrics:
- Daily/Weekly/Monthly sales
- Profit margins and tracking
- Top-selling products
- Customer lifetime value (LTV)
- Customer segmentation
- Retention rate analysis
-
Reports:
- GST collection reports
- State-wise GST analytics
- Revenue trends
- Inventory valuation
- Low stock alerts
- Transaction history
π₯ Customer Management
- Customer Features:
- Profile with GST details
- Purchase history tracking
- Segmentation (VIP, REGULAR, OCCASIONAL, NEW)
- Loyalty points system
- Lifetime value calculations
- Top customers identification
Get started in 3 steps
git clone https://github.com/avinaxhroy/BillMe.git
cd BillMe- Launch Android Studio
- Select
File β Open - Navigate to the
BillMefolder - Wait for Gradle sync
# Build the project
./gradlew build
# Run on connected device or emulator
./gradlew installDebugπ For detailed setup instructions, see SETUP.md
Core Libraries
// Jetpack Compose & Material 3
implementation("androidx.compose.ui:ui")
implementation("androidx.compose.material3:material3")
implementation("androidx.activity:activity-compose:1.8.2")
implementation("androidx.navigation:navigation-compose:2.7.6")
// Lifecycle & ViewModel
implementation("androidx.lifecycle:lifecycle-viewmodel-compose:2.7.0")
implementation("androidx.lifecycle:lifecycle-runtime-compose:2.7.0")Database & Persistence
// Room Database
implementation("androidx.room:room-runtime:2.6.1")
implementation("androidx.room:room-ktx:2.6.1")
ksp("androidx.room:room-compiler:2.6.1")
// DataStore
implementation("androidx.datastore:datastore-preferences:1.1.0")
// Serialization
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.1")
implementation("org.jetbrains.kotlinx:kotlinx-datetime:0.6.0")Dependency Injection
// Hilt
implementation("com.google.dagger:hilt-android:2.51.1")
implementation("androidx.hilt:hilt-navigation-compose:1.1.0")
implementation("androidx.hilt:hilt-work:1.1.0")
ksp("com.google.dagger:hilt-compiler:2.51.1")Camera & Machine Learning
// CameraX
implementation("androidx.camera:camera-core:1.4.0")
implementation("androidx.camera:camera-camera2:1.4.0")
implementation("androidx.camera:camera-lifecycle:1.4.0")
implementation("androidx.camera:camera-view:1.4.0")
// ML Kit
implementation("com.google.mlkit:text-recognition:16.0.0")
implementation("com.google.mlkit:barcode-scanning:17.3.0")PDF & Printing
// PDF Generation
implementation("com.itextpdf:itext7-core:8.0.2")
// Thermal Printing
implementation("com.github.DantSu:ESCPOS-ThermalPrinter-Android:3.3.0")Background & Security
// WorkManager
implementation("androidx.work:work-runtime-ktx:2.8.1")
// Security & Encryption
implementation("androidx.security:security-crypto:1.1.0-alpha06")
// Permissions
implementation("com.google.accompanist:accompanist-permissions:0.32.0")Other
// Image Loading
implementation("io.coil-kt:coil-compose:2.5.0")
// Google Play Services
implementation("com.google.android.gms:play-services-auth:21.0.0")
// Testing
testImplementation("junit:junit:4.13.2")
testImplementation("io.mockk:mockk:1.13.8")
testImplementation("org.jetbrains.kotlinx:kotlinx-coroutines-test:1.7.3")Required Software
# 1. Clone the repository
git clone https://github.com/avinaxhroy/BillMe.git
cd BillMe
# 2. Verify Gradle wrapper
chmod +x gradlew
# 3. Build the project
./gradlew clean build
# 4. Run tests
./gradlew test
# 5. Install on device/emulator
./gradlew installDebugFor platform-specific setup (macOS, Linux, Windows), see SETUP.md
BillMe/
βββ π± app/ # Main application module
β βββ src/
β β βββ main/
β β β βββ java/com/billme/app/
β β β β βββ π§ core/ # Core business logic & utilities
β β β β β βββ automation/ # Smart pricing, IMEI helpers
β β β β β βββ backup/ # Enhanced backup system (ZIP, scheduling)
β β β β β βββ builder/ # Invoice builder pattern
β β β β β βββ camera/ # CameraX IMEI scanner
β β β β β βββ database/ # DB initialization, health monitoring
β β β β β βββ generator/ # Code generators, receipt builders
β β β β β βββ ocr/ # ML Kit OCR engine, text processing
β β β β β βββ pdf/ # iText7 PDF generation
β β β β β βββ performance/ # Performance monitoring
β β β β β βββ printing/ # ESC/POS thermal printing
β β β β β βββ scanner/ # Unified IMEI scanner (3 modes)
β β β β β βββ security/ # Encryption, signature verification
β β β β β βββ service/ # Business services (Analytics, Billing, GST)
β β β β β βββ sharing/ # File sharing, PDF operations
β β β β β βββ util/ # Utilities (IMEI validator, DateTimeUtils)
β β β β βββ π data/ # Data layer
β β β β β βββ datastore/ # DataStore preferences
β β β β β βββ local/ # Room database (15 entities)
β β β β β β βββ dao/ # Data Access Objects
β β β β β β βββ entity/ # Database entities
β β β β β β βββ converter/ # Type converters
β β β β β β βββ BillMeDatabase.kt
β β β β β β βββ DatabaseManager.kt
β β β β β βββ model/ # Data models (GST, OCR, Reports, etc.)
β β β β β βββ repository/ # Repositories (Product, Invoice, GST, etc.)
β β β β βββ π di/ # Dependency injection (Hilt modules)
β β β β βββ π hardware/ # Hardware abstractions
β β β β β βββ BarcodeScanner.kt # Barcode scanner interface
β β β β β βββ ThermalPrinter.kt # Thermal printer interface
β β β β β βββ MockHardwareImpl.kt # Mock implementations
β β β β βββ π§ service/ # Background services
β β β β β βββ AutoSaveService.kt # Draft auto-save
β β β β β βββ ReceiptService.kt # Receipt generation
β β β β βββ π¨ ui/ # UI layer (Jetpack Compose)
β β β β βββ component/ # Reusable components (Dialogs, Cards)
β β β β βββ navigation/ # Navigation graph
β β β β βββ screen/ # Feature screens
β β β β β βββ addproduct/ # Product management
β β β β β βββ addpurchase/ # Purchase entry
β β β β β βββ backup/ # Backup & restore UI
β β β β β βββ billing/ # Enhanced billing screen
β β β β β βββ dashboard/ # Analytics dashboard
β β β β β βββ database/ # Database management
β β β β β βββ inventory/ # Inventory management
β β β β β βββ invoicehistory/ # Invoice history
β β β β β βββ quickbill/ # Quick billing
β β β β β βββ reports/ # Business reports
β β β β β βββ settings/ # App settings
β β β β β βββ setup/ # Setup wizard
β β β β βββ theme/ # Material 3 theme
β β β β βββ util/ # UI utilities
β β β β βββ viewmodel/ # ViewModels
β β β βββ res/ # Android resources
β β β β βββ drawable/ # Vector drawables
β β β β βββ mipmap-*/ # App icons
β β β β βββ values/ # Colors, strings, themes
β β β β βββ xml/ # Backup rules, file paths
β β β βββ AndroidManifest.xml # App manifest
β β βββ test/ # Unit tests
β β βββ java/ # Test files
β βββ build.gradle.kts # App build configuration
β βββ proguard-rules.pro # ProGuard configuration
β βββ lint.xml # Lint configuration
βββ π android/ # Android launcher resources
β βββ mipmap-*/ # Launcher icons (all densities)
β βββ values/
β βββ ic_launcher_background.xml
βββ π§ .github/ # GitHub configuration
β βββ workflows/ # CI/CD workflows
β β βββ android.yml # Android build workflow
β βββ ISSUE_TEMPLATE/ # Issue templates
β βββ PULL_REQUEST_TEMPLATE.md # PR template
β βββ FUNDING.yml # Sponsorship info
βββ π Documentation
β βββ README.md # Project overview (this file)
β βββ SETUP.md # Complete setup guide
β βββ CONTRIBUTING.md # Contribution guidelines
β βββ CODE_OF_CONDUCT.md # Community standards
β βββ SECURITY.md # Security policy
β βββ CHANGELOG.md # Version history
β βββ QUICK_REFERENCE.md # Quick reference guide
β βββ START_HERE.md # Getting started guide
β βββ LICENSE # BUSL-1.1 License
βββ ποΈ Build Configuration
βββ build.gradle.kts # Root build script
βββ settings.gradle.kts # Gradle settings
βββ gradle.properties # Gradle properties
βββ gradlew # Gradle wrapper (Unix)
βββ gradlew.bat # Gradle wrapper (Windows)
core/ - Business Logic & Utilities
- automation/: Smart pricing algorithms, IMEI helper utilities
- backup/: Complete backup system with ZIP compression, scheduling
- builder/: Builder pattern for complex objects (Invoice builder)
- camera/: CameraX integration for IMEI scanning
- database/: Database initialization, health monitoring, seeding
- generator/: Code generators, receipt content builders
- ocr/: ML Kit OCR engine, text processing pipeline, field extraction
- pdf/: iText7 PDF generation with signatures and bilingual support
- performance/: Performance monitoring and optimization
- printing/: ESC/POS thermal printing implementation
- scanner/: Unified IMEI scanner with 3 modes (Single/Dual/Bulk)
- security/: Encryption, signature management, secure storage
- service/: Core business services (Analytics, Billing, GST calculation, IMEI management)
- sharing/: File sharing, PDF operations, file management
- util/: Common utilities (IMEI validator, date/time helpers, formatters)
data/ - Data Layer
- datastore/: Type-safe preferences with DataStore
- local/: Room database with 15 entities, DAOs, and type converters
- dao/: Data access objects for all entities
- entity/: Database entities (Product, Invoice, Customer, GST, etc.)
- converter/: Type converters for BigDecimal, Instant, Enums
- model/: Data models for business logic (GST, OCR, Reports, Dashboard)
- repository/: Repositories for data operations (Product, Invoice, GST, Customer, Analytics)
ui/ - User Interface
- component/: Reusable Composable components (Dialogs, Cards, Buttons)
- navigation/: Navigation graph and routes
- screen/: Feature screens organized by functionality
- Complete screens for billing, inventory, reports, settings, etc.
- theme/: Material 3 theme configuration (colors, typography, shapes)
- viewmodel/: ViewModels with StateFlow for state management
The app comes pre-configured with sensible defaults:
// Shop Configuration
shopName = "Mobile Shop Pro"
gsttaxEnabled = true
gsttaxRate = 18.0
currency = "INR" // βΉ
// Auto-Backup
backupEnabled = true
backupFrequency = "DAILY"
// Receipt Printing
paperWidth = 58 // mm
printQuality = "HIGH"Edit app/src/main/res/values/strings.xml to customize:
- App name
- Default shop name
- Currency symbol
- Tax rates
./gradlew test# Unit tests only
./gradlew testDebugUnitTest
# Specific test class
./gradlew test --tests com.billme.app.core.util.ImeiValidatorTest./gradlew testDebugUnitTest
# Report: app/build/reports/tests/testDebugUnitTest/index.html- β IMEI Validation: 100%
- β Luhn Algorithm: Comprehensive test cases
- β Edge cases and error conditions
# Debug build
./gradlew assembleDebug
# Release build (requires signing config)
./gradlew assembleRelease
# Clean build
./gradlew clean buildThis project follows Kotlin Coding Conventions:
- β Use meaningful variable/function names
- β Keep functions small and focused
- β Add KDoc for public APIs
- β Use Kotlin idioms
- β Prefer immutability
# Create feature branch
git checkout -b feat/your-feature
# Make changes and commit
git add .
git commit -m "feat: add new feature"
# Push and create PR
git push origin feat/your-feature- π README.md - Project overview (you are here!)
- π§ SETUP.md - Complete setup guide
- π€ CONTRIBUTING.md - How to contribute
- π₯ CODE_OF_CONDUCT.md - Community standards
- π SECURITY.md - Security policy
- βοΈ LICENSE - BUSL-1.1 License terms
- Android Developer Guide
- Jetpack Compose Documentation
- Room Persistence Library
- Hilt Dependency Injection
- Kotlin Coroutines
We welcome contributions! Please follow these steps:
- Read CONTRIBUTING.md for detailed guidelines
- Check CODE_OF_CONDUCT.md for community standards
- Fork the repository
- Create a feature branch:
git checkout -b feat/amazing-feature - Commit your changes:
git commit -m 'feat: add amazing feature' - Push to the branch:
git push origin feat/amazing-feature - Open a Pull Request
What We're Looking For
- π Bug fixes
- β¨ New features
- π Documentation improvements
- π§ͺ Test coverage enhancements
- π¨ UI/UX improvements
- βΏ Accessibility enhancements
- π Localization/translations
Looking for a place to start? Check out issues labeled good first issue.
This project is licensed under the Business Source License 1.1 (BUSL-1.1).
What does this mean?
- Contribute improvements and modifications
- Fork and create derivative works (non-production)
- Study and learn from the code
- Modify the code for personal/educational use
- Use for commercial/production purposes (without license)
- Rebrand or repackage as your own work
- Remove license and copyright notices
- Claim ownership of the original code
This project will automatically convert to the MIT License on November 4, 2028.
For more details, see LICENSE.
Need help? Here's how to get support:
- Check SETUP.md for setup issues
- Read CONTRIBUTING.md for contribution questions
- Review SECURITY.md for security concerns
- π Bug Reports: Create an issue
- π‘ Feature Requests: Open a discussion
- π Security Issues: See SECURITY.md
- π¬ General Questions: GitHub Discussions
- Room database with 5 core entities
- IMEI validation with Luhn algorithm
- Material 3 UI with Jetpack Compose
- Basic transaction management
- Dashboard with analytics
- Unit tests
- Complete GST system (4 modes)
- Professional invoice generation (PDF)
- ML Kit OCR for invoice scanning
- CameraX IMEI scanner (3 modes)
- Thermal printer support (ESC/POS)
- Enhanced backup & restore system
- Customer lifetime value analytics
- Database expansion (15 entities)
- Digital signature support
- Bilingual invoice support
- Google Drive cloud backup integration
| Feature | Status | Version |
|---|---|---|
| GST Compliance | β Complete | 2.0.0 |
| Invoice Generation | β Complete | 2.0.0 |
| OCR Scanning | β Complete | 2.0.0 |
| IMEI Scanner | β Complete | 2.0.0 |
| Thermal Printing | β Complete | 2.0.0 |
| Backup & Restore | β Complete | 2.0.0 |
| Customer Analytics | β Complete | 2.0.0 |
| Cloud Backup | β Complete | 2.0.0 |
Thanks to all contributors who have helped make BillMe better!
Support this project by becoming a sponsor. Your logo will show up here with a link to your website.
See CHANGELOG.md for a list of changes in each version.
- Material Design team for the beautiful design system
- JetBrains for Kotlin
- Google for Android and Jetpack libraries
- All open-source contributors
Made with β€οΈ by @avinaxhroy
If you find this project useful, please consider giving it a β!
π Repository: github.com/avinaxhroy/BillMe
π§ Contact: Open an issue
π
Last Updated: November 2025



