Shree Arham Gold & Ratnesh Gold
Shree Arham Gold & Ratnesh Gold Mobile Application .
Designed and engineered a production-grade dual-brand luxury jewelry mobile application serving wholesalers, retailers, administrators, staff, and end customers.
Shree Arham Gold & Ratnesh Gold
Designed and engineered a production-grade dual-brand luxury jewelry mobile application serving wholesalers, retailers, administrators, staff, and end customers.
The client operated a jewelry business with several overlapping operational challenges: fragile architecture with API calls directly from UI widgets, device security gaps with plaintext token storage, poor catalog navigation, incomplete UI implementation, and manual product sharing via WhatsApp with no branding, consistency, or control. The business needed an elegant and extra secure e-commerce application that also automated some business operations for admin.
Before writing a single feature, I restructured the entire codebase with a Repository Pattern and Constants Architecture. Then I overhauled security with encrypted token storage, screenshot protection, build hardening, and environment security. Finally, I built core business modules including a dynamic gold rate engine, professional PDF catalog sharing, multi-role access control, push notifications, barcode scanning, and a multimedia carousel.
The project represents the full spectrum of mobile engineering: security architecture, business domain modeling, performance optimization, and design systems. Replacing manual, informal business processes (handwritten price calculations, WhatsApp catalog sharing, paper-based custom order tracking) with structured, accountable digital workflows demonstrated that thoughtful software engineering creates direct, measurable business value.
I designed and engineered a production-grade mobile application for a dual-brand luxury jewelry business operating under the names Shree Arham Gold and Ratnesh Gold. The end product is a comprehensive, full-featured business platform serving wholesalers, retailers, administrators, staff, and end customers.
The project demanded simultaneous mastery of mobile architecture, security engineering, UI/UX design, performance optimization, and business domain knowledge across jewelry pricing, custom manufacturing workflows, and B2B distribution.
The client operated a jewelry business with several overlapping operational challenges:
Before writing a single feature, I restructured the entire codebase. The original project had no clear separation between data, business logic, and presentation. My first priority was establishing an architecture that could support the complexity ahead.
I introduced a Repository Pattern with a dedicated data/repositories/ layer, separating all API communication from controllers and UI. This meant that every domain (authentication, products, orders, gold rates, notifications, carousels) had its own isolated repository class. Controllers became pure state managers. Screens became pure presentation layers.
I also formalized a Constants Architecture: endpoint strings were consolidated into ApiUrlConstants, timeout configurations into AppTimeouts, karat-to-purity mappings into KaratConstants, and image compression rules into ImageCompressionConstants. This eliminated the "magic numbers" problem that plagued the original codebase and made future modifications predictable and safe.
The security posture of the original application was inadequate. I addressed this at multiple layers:
Token Storage: Migrated completely from SharedPreferences to FlutterSecureStorage, ensuring all authentication tokens and sensitive user data are stored in the device's secure enclave (Keychain on iOS, EncryptedSharedPreferences on Android).
Screenshot Protection: Implemented app-wide screenshot prevention using the no_screenshot plugin, with an admin-controlled override mechanism. Admins can disable protection for a configurable duration (30 minutes, 2 hours, etc.) for troubleshooting, after which it automatically re-enables. This prevents unauthorized capture of sensitive pricing data and customer information.
I implemented the Flutter client for the handset change approval workflow, including request submission, approval status tracking, and secure session handling.
Build Hardening: Configured ProGuard for release builds with rules protecting Firebase, Flutter engine, and Google Play Services classes. Established proper Android signing configuration with credentials managed outside the repository via a key.properties file.
With a solid foundation in place, I built the business-critical modules systematically.
I implemented the mobile gold rate management experience, including administrative interfaces for updating rates, historical charts, and a reusable pricing engine that consumed backend APIs. On the admin side, administrators can update the live rate and view historical data. On the user-facing side, a GoldRateDetailScreen presents:
fl_chart) showing historical price trendsMost critically, I implemented a static GoldRateController.calculatePrice() method that computes retail pricing from first principles: fine weight × current rate, plus labor and GST. Labor and GST percentage is configurable in admin panel. This calculation propagates consistently across the cart, product detail pages, and PDF generation.
I built a complete content sharing infrastructure that replaced the informal WhatsApp photo sharing process.
Architecture: A dedicated ShareService class handles all sharing logic. PDF generation runs in a background isolate using compute(), keeping the UI thread responsive even when processing large catalogs.
Capabilities:
MainActivity.kt) and iOS (AppDelegate.swift)This transformed the sales process. Representatives now share professional, branded materials instead of informal photographs.
I implemented an RBAC system to the UI for four roles: SUPERADMIN, ADMIN, STAFF, and USER.
Each role gets a tailored interface:
The system handles the retailer designation with specific business logic. Retailers see net weight-based pricing calculated from gold rates, while regular users see standard catalog pricing.
The original category system made multiple API calls per karat level, creating cascading network requests that degraded performance as the catalog grew.
I refactored this to consume a consolidated category-tree endpoint that returns the complete three-level category tree in one request. Client-side caching (level3Cache) provides instant access to level-3 data without additional network calls. The admin category manager was rebuilt as a drill-down interface (Level 2 → Level 3), replacing a flat filtered list that became unwieldy at scale.
I built a dual-layer notification system combining Firebase Cloud Messaging with local notifications:
all_users, admins to admin_notificationsNotificationManagerScreen with a history view showing recipient countsI implemented a production-quality barcode scanner using mobile_scanner, featuring:
This enables staff to quickly look up products by scanning tag barcodes rather than manual search.
The home page carousel was rebuilt to support video content alongside images:
_CarouselMediaItem widget handles video playback with a three-tier fallback strategy: network stream → local download → cached filevideo_thumbnailI built a comprehensive responsive design system from scratch. ContextExtensions.dart was expanded with responsiveWidth, responsiveFont, gridColumns, widthPercent, heightPercent, and related helpers. Every screen was retrofitted to use these utilities instead of hardcoded pixel values, ensuring consistent appearance across phones, foldables, and tablets.
I developed a library of reusable, design-system-aligned components:
FilterBottomSheet: modular, supporting karat, category, stock status, weight range, size, active status, and price filtersCategoryPickerSheet: a multi-select modal for category assignmentDateRangePickerSheet: full date range selection with presets, month/year pickers, and arbitrary custom rangesStatusBorderCard & StatusBadge: color-coded status indicators used consistently across orders, requests, and approvalsImageActionSheet: a standardized edit/upload/remove action pattern for image fieldsStatCard: admin dashboard statistics displayI rebuilt the bottom navigation bar using the picons icon set for a premium aesthetic. Key additions:
NavBarSpacer to prevent content being obscuredImage Caching: Increased painting.ImageCache maximumSizeBytes to 50MB and implemented explicit cache clearing on didHaveMemoryPressure callbacks, preventing OOM crashes on image-heavy product listings.
Isolated Processing: PDF generation runs in a separate isolate via compute(). Image compression for uploads uses ImageCompressionConstants to set appropriate quality and maximum dimensions per context (category images, product images, share content, PDFs) preventing unnecessarily large payloads while maintaining visual quality.
Error Resilience: The BaseHttpService automatically retries on 502, 503, and 504 HTTP errors. runZonedGuarded in main.dart catches all uncaught exceptions and logs them via Logger. Every list and detail screen has proper shimmer loading states.
Memory Management: Controllers are explicitly disposed on navigation tab changes using onClose overrides and Get.delete<T>() calls, preventing the accumulation of zombie controllers across navigation events.
I handled the complete production configuration for both platforms:
Android: Package ID migration (com.example.ratnesh_gold_app → com.shreearhamgold.ratneshgold), release signing configuration, ProGuard rules, Firebase integration, camera permissions, and portrait orientation lock.
iOS: Bundle ID migration, push notification entitlements (Runner.entitlements), UNUserNotificationCenterDelegate compliance in AppDelegate.swift, camera usage permissions, background modes configuration (fetch, remote-notification), portrait orientation lock, and platform target update to iOS 13.0.
| Area | Before | After |
|---|---|---|
| Architecture | API calls in UI widgets | Repository → Controller → View separation |
| Token Security | Plaintext SharedPreferences | Encrypted secure storage |
| Catalog Sharing | WhatsApp photos | Branded PDF catalogs with professional layout |
| Gold Pricing | Manual calculation | Automatic rate-driven pricing across all surfaces |
| Custom Orders | WhatsApp/paper notes | Structured digital workflow with craftsman assignment |
| Category API | Multiple requests per karat | Single tree fetch with client-side cache |
| Notifications | None | FCM + local, with admin broadcast tools |
| Screenshot Security | None | App-wide protection with admin-controlled override |
| Device Security | No binding | Formal handset change approval workflow |
| Roles | Single user type | Superadmin / Admin / Staff / User with tailored UIs |
This project represents the full spectrum of mobile engineering: security architecture, business domain modeling, performance optimization, and design systems. The most technically satisfying aspect was building systems that are invisible to the end user but fundamentally change the reliability and trustworthiness of the product.
The most strategically satisfying was replacing manual, informal business processes (handwritten price calculations, WhatsApp catalog sharing, paper-based custom order tracking) with structured, accountable digital workflows. This demonstrates that thoughtful software engineering creates direct, measurable business value.