Skip to content

Roadmap & known issues

Good places to start contributing, roughly in order of impact.

Bugs

  • Missing route: UserMainWrapper navigates to a /login named route that isn't registered.
  • Bill QR code: generateQrWithLogo in billing/pdf_generator.dart relies on a stub QrCode.module() extension, so the UPI QR on the PDF bill can't render. Use QrImage(qrCode).isDark(y, x) from the qr package instead.
  • Table release: free the table (isOccupied: false) after payment.

Security & production readiness

  • Server-side trust: totals, bills and payment status are written by the client. Move them to Cloud Functions and verify Razorpay signatures on the server.
  • Security rules: commit a firestore.rules file (start from the starter rules).
  • Config, not code: the Razorpay key and the demo user ID in the developer hub should come from configuration.
  • Release signing: add a real keystore via repository secrets; release APKs are signed with the debug key today.
  • Firebase apps: register com.example.demo.chef and com.example.demo.admin as their own Firebase Android apps.

Code health

  • Guard BuildContext use after await with mounted checks (32 analyzer infos).
  • Migrate the remaining deprecated APIs: Share.shareXFiles โ†’ SharePlus, DropdownButtonFormField.value โ†’ initialValue, Switch.activeColor โ†’ activeThumbColor.
  • Remove unused dependencies from pubspec.yaml.
  • Widget tests for the main flows (menu, cart, order status) using fake_cloud_firestore.
  • Replace the placeholder logo in assets/images/.