SwarnaLakshmi

Repo Summary

What it is

A branded .NET MAUI mobile app for jewellery customers. It combines catalog browsing, savings-plan workflows, payment checkout, and account tracking inside one app.

Who it's for

Primary persona: a jeweller's customer who browses products, joins gold/installment programs, pays through the app, and tracks balances, orders, and redemptions.

What it does

  • Authenticates users with login, registration, remember-me, and latest mobile-terms acceptance.
  • Shows a home dashboard with jeweller banners, daily gold/silver rates, featured products, and feature-flagged shortcuts.
  • Lets customers browse the catalog with search, filters, pagination, product detail pages, and wishlist toggling.
  • Supports custom jewellery orders with title/description plus optional design-file upload.
  • Handles installment-plan enrollment, active/closed scheme tracking, and installment payments.
  • Supports gold/silver booking by rupees or grams with tax preview, booking-window checks, terms capture, and payment flow.
  • Provides passbook, order report, profile management, wishlist, and redemption-report views.

How to run

  • Use .NET 9 + MAUI workloads. Evidence: project targets `net9.0-android` and `net9.0-ios` in `SwarnaLakshmi.csproj`.
  • Open `SwarnaLakshmi.sln` or build from the repo root with `dotnet build SwarnaLakshmi.sln`.
  • Ensure the backend API URL hardcoded in `Services/ApiService.cs` is reachable before testing app flows.
  • Deploy through Visual Studio or a MAUI target run command for the chosen platform. Exact device/emulator setup steps: Not found in repo.
  • Backend startup/deployment instructions: Not found in repo.
Repo note: `docs/terms-consistency-review-2026-03-25.md` records a successful `dotnet build`; an unrestricted build re-check in this session timed out before completion.

How it works

  • UI layer: XAML pages in `Views/` bind to view models in `ViewModels/`; both are registered in `MauiProgram.cs` and linked by `NavigationService`.
  • Startup/config: `App.xaml.cs` loads `Resources/Raw/appsettings.*.json` via `ConfigLoader`, applies theme/logo branding with `BrandingService`, then opens the login flow.
  • App services: `ApiService` wraps `HttpClient` calls for auth, products, rates, wishlist, orders, gold bookings, installment plans, profile image, passbook, redemption data, and terms.
  • Local state: `Preferences`, `SecureStorage`, and `FeatureManager` hold session data, jeweller details, remembered credentials, feature flags, and customer/payment IDs.
  • Payments: `PaymentViewModel` loads embedded `Resources/payment.html` in a WebView, injects Razorpay order data, and sends success/cancel callbacks through messenger records.
  • Post-payment: booking/installment view models switch to success/failure pages and use `EmailNotifier` + `PdfReceiptGenerator` for receipt emails.
  • Not found in repo: backend API implementation, database schema, and admin system code that serve these mobile endpoints.