Category: Maestro

Maestro: Design Solution - Results (Gemini)

Gemini

Design Report Card

Technical Report Card

The Product

A mobile app to catalog, categorize and track the location of cleaning products. The MVP allows the user to scan barcodes to add items to the catalog and to access products by usage and type using filters. The app has a mobile friendly interface and single sign on user authentication.

Design Prompt

I want you to act as a product designer. I will present a product idea. You will identify functional requirements, write user stories which include a statement of customer value and acceptance criteria.

Notes

  • Accurately fulfilled request
  • User stories didn’t include customer value
  • Suggested location tracking

Response

Functional Requirements

  • Product Management:
    • Ability to scan barcodes to add cleaning products to the catalog.
    • Feature to manually add products if barcode scanning fails.
    • Option to edit product information (name, brand, etc.).
    • Capability to categorize products by type (floor cleaner, disinfectant, etc.)
    • Function to add custom categories.
    • Functionality to delete products from the catalog.
  • Search and Filter:
    • Search bar to find products by name or brand.
    • Filter by product category (predefined and custom).
    • Filter by usage (floors, bathroom, kitchen, etc.).
  • Location Tracking:
    • Allow users to assign a location to each product (pantry, under-sink cabinet, etc.).
    • Option to search for products based on location.
  • User Interface and Authentication:
    • Mobile-friendly and intuitive interface.
    • Single sign-on user authentication for secure access.

User Stories

User Story 1: As a cleaning enthusiast, I want to quickly add cleaning products to my catalog by scanning their barcodes so I can easily keep track of what I have, for the benefit of saving time and avoiding duplicate purchases.

Acceptance Criteria:

  • The app successfully scans the barcode and retrieves product information.
  • If barcode scanning fails, the user can manually enter product details.
  • The new product is added to the catalog with its name, brand (if available), and any additional user-entered details.

User Story 2: As someone with a large cleaning supply collection, I want to be able to categorize and filter my products by type and usage so I can find what I need quickly, for the benefit of increased cleaning efficiency.

Acceptance Criteria:

  • The app offers pre-defined categories for cleaning product types (e.g., floor cleaner, disinfectant).
  • Users can create and manage custom categories for their specific needs.
  • Filters by category and usage are available and refine the product list accordingly.
  • The search bar allows users to find products by name or brand and displays relevant results.

User Story 3: As a forgetful person, I want to keep track of where I store my cleaning products so I don’t waste time searching for them, for the benefit of saving time and frustration.

Acceptance Criteria:

  • Users can assign a location to each product in the catalog (e.g., pantry, under-sink cabinet).
  • Locations can be custom defined by the user.
  • The app allows filtering and searching for products based on their assigned location.

User Story 4: As someone who values security, I want to be able to access the app securely using a single sign-on method, for the benefit of protecting my personal information.

Acceptance Criteria:

  • The app offers single sign-on functionality through a secure authentication system.
  • Users can securely sign in using existing credentials from a trusted provider.

These are just a few examples, and you can create additional user stories to cover other functionalities as your app evolves.


Technical Prompt

I want you to act as a software architect. I will present a product idea. You will provide a solution for: Client/server side tech stack; How to gather metrics and feedback; What AI coding tools will we use; How will we host the application.

Notes

  • Suggested older technology, Xamarin, instead of .NET MAUI
  • Suggested options for all points
  • Options presented were standard

Response

Tech Stack & Tools

Client-side:

  • Xamarin.Forms: This framework allows you to build a single codebase for both iOS and Android platforms, similar to React Native. It leverages C# for development, familiar to many developers with .NET experience.

Server-side:

  • ASP.NET Core: This is a modern, open-source web framework for building APIs in C#. It’s lightweight, scalable, and integrates well with Azure services.

Database:

  • Azure Cosmos DB: This NoSQL database service is flexible and scalable, perfect for storing product details, user information, and location data. It offers offline capabilities for mobile apps.

Authentication:

  • Azure Active Directory (AAD): This provides secure and centralized user authentication. Users can sign in with existing Microsoft accounts or work/school credentials for SSO.

Barcode scanning:

  • Xamarin.CommunityToolkit.Barcode: This open-source library simplifies barcode scanning integration within your Xamarin.Forms app.

Additional considerations:

  • Image storage: Use Azure Blob Storage for scalable and secure storage of product images.

Gathering Metrics and Feedback

  • Azure App Insights: Integrate this with your Xamarin.Forms app to track user behavior, feature usage, and app crashes.
  • User surveys and feedback forms: Similar to the previous recommendation, in-app surveys can provide valuable user insights.
  • User session recordings: Azure Monitor with Application Insights allows session recordings to identify user flow issues.

AI Coding Tools

  • GitHub Copilot: This AI assistant works well within Visual Studio Code, the preferred IDE for Xamarin development. It can suggest code snippets and functions as you code.
  • Azure IntelliCode: This extension for Visual Studio Code leverages AI to provide context-aware code completions, improving development efficiency.

Hosting the Application

  • Azure App Service: This managed service provides a platform to host your Xamarin.Forms app. It scales automatically and integrates seamlessly with other Azure services.

Previous | Next