Files
microbadge/docs/prd.md

265 lines
9.9 KiB
Markdown
Raw Normal View History

# MicroBadge
## Product Design Document
**Version:** 1.0
**Date:** July 11, 2025
**Author(s):** CyberMages, LLC (Jason Smith)
**Stakeholders:** Self, Potential Conference Attendees, Hobbyists
---
1. [Introduction](#introduction)
- [Purpose of this Document](#purpose-of-this-document)
- [Product Overview](#product-overview)
- [Target Audience](#target-audience)
- [Scope](#scope)
2. [Business Case & Goals](#business-case-goals)
- [Problem Statement](#problem-statement)
- [Business Objectives](#business-objectives)
- [Key Performance Indicators (KPIs)](#key-performance-indicators-kpis)
3. [User Stories / Use Cases / Features](#user-stories-use-cases-features)
- [User Personas](#user-personas)
- [Core Features](#core-features)
* [Menu System](#menu-system)
* [Name Scroller](#name-scroller)
* [NFC Business Card](#nfc-business-card)
* [Snake Game](#snake-game)
- [Out-of-Scope Features](#out-of-scope-features)
4. [User Experience (UX) & User Interface (UI)](#user-experience-ux-user-interface-ui)
- [User Flows](#user-flows)
- [Wireframes / Mockups](#wireframes-mockups)
- [Interaction Design](#interaction-design)
- [Accessibility Considerations](#accessibility-considerations)
- [Brand & Style Guidelines](#brand-style-guidelines)
5. [Technical Considerations (High-Level)](#technical-considerations-high-level)
- [System Integrations](#system-integrations)
- [Performance Requirements](#performance-requirements)
- [Security Considerations](#security-considerations)
- [Data Privacy](#data-privacy)
6. [Release Plan & Roadmap](#release-plan-roadmap)
- [Phased Rollout Strategy](#phased-rollout-strategy)
- [Future Considerations / Roadmap](#future-considerations-roadmap)
7. [Success Metrics & Analytics](#success-metrics-analytics)
- [Key Metrics to Track](#key-metrics-to-track)
- [Analytics Tools](#analytics-tools)
8. [Open Questions and Assumptions](#open-questions-and-assumptions)
- [Open Questions](#open-questions)
- [Assumptions](#assumptions)
9. [Appendices](#appendices)
- [Glossary](#glossary)
- [References](#references)
---
## Introduction
### Purpose of this Document
This document defines the **product vision**, **features**, and **user
experience** for MicroBadge, an interactive name badge application, to guide
its development and align on its purpose.
### Product Overview
**MicroBadge** is an interactive embedded application built for the BBC
micro:bit v2, functioning as a **conference name badge**. It provides a
**professional and technical icebreaker** at events through various
interactive apps.
### Target Audience
* Professionals attending conferences and networking events.
* Individuals looking for unique icebreakers and conversation starters.
* Developers interested in embedded Rust and interactive hardware.
* Anyone seeking a personalized, memorable name badge experience.
### Scope
This document covers the **initial release** of MicroBadge, including its
core menu system, name scroller, Snake game, and the NFC business card
functionality.
## Business Case & Goals
### Problem Statement
* Traditional name badges are often static and unengaging, failing
to facilitate professional or technical icebreaking effectively.
* Networking often lacks memorable, interactive elements.
* Sharing contact information can be cumbersome.
### Business Objectives
* Provide a **custom and memorable name badge experience**.
* Enable **fun interactions** and **easy sharing of contact info via NFC**.
* Serve as a **technical portfolio piece** for conferences, meetings,
and interviews.
* **Showcase embedded Rust development** using async and no-std.
### Key Performance Indicators (KPIs)
* Number of positive comments received about the badge.
* Frequency of badge-initiated conversations.
* Successful NFC contact transfers (post-completion).
* Completion rate of the Snake game by others.
---
## User Stories / Use Cases / Features
### User Personas
* **Conference Attendee Alex:** Wants to easily display their name,
engage in lighthearted interactions, and quickly share contact
details without fumbling for cards.
* **Tech Enthusiast Tara:** Appreciates the technical sophistication
and wants to use the badge as a conversation starter about embedded
Rust.
### Core Features
#### Menu System
**Description:** Allows the user to switch between different
applications on the micro:bit.
**User Stories:** As a user, I want to easily navigate between different
badge functionalities so I can quickly access the app
I need.
**Acceptance Criteria:**
* Menu is visible on the LED matrix.
* Navigation via physical buttons is intuitive and responsive.
* Selecting an app loads it promptly.
**Priority:** Must Have
#### Name Scroller
**Description:** Scrolls a user-defined name or custom message
across the 5x5 LED matrix.
**User Stories:** As a conference attendee, I want my name to scroll across
the badge so others can easily identify me from a distance.
**Acceptance Criteria:**
* Name scrolls smoothly and is legible.
* Scrolling text supports English ASCII characters only.
* Speed and repeat mode are configurable (future state).
**Priority:** Must Have
#### NFC Business Card
**Description:** Leverages the onboard NFC peripheral to share vCard/contact
data with mobile phones.
**User Stories:** As a user, I want to quickly share my contact information
by tapping my badge on a phone, saving time and effort.
**Acceptance Criteria:**
* Badge emits vCard data via NFC upon activation.
* Mobile phones can successfully read and import the data.
**Priority:** Must Have
#### Snake Game
**Description:** A classic Snake game playable on the 5x5 LED display,
designed for fun and interactivity.
**User Stories:** As a user, I want a simple, engaging game on my badge to
break the ice or pass time.
**Acceptance Criteria:**
* Game renders correctly on the 5x5 LED matrix.
* Controls (Button A, Button B for turning) are responsive.
* Game includes food, score tracking, and game over conditions.
* Game speed is tuned for usability.
**Priority:** Should Have
### Out-of-Scope Features
* Configuration storage via flash memory.
* Desktop companion app for editing settings.
* BLE for data sync or configuration.
## User Experience (UX) & User Interface (UI)
### User Flows
* **Power On:** Device boots, then goes directly to the main menu.
* **App Selection:** From main menu, user presses Button A to cycle
through apps, Button B to select.
* **App Interaction:** User interacts with the active app (e.g.,
scrolling name, playing Snake).
* **Return to Menu:** Pressing the **Reset button** on the back of
the device returns to the main menu.
### Wireframes / Mockups
The primary UI is the **5x5 LED matrix**. Visuals are abstract patterns or
simple character representations. (No detailed wireframes beyond conceptual
understanding of 5x5 limits).
### Interaction Design
* `Button A`: Navigation (e.g., move down in menu, turn left in Snake).
* `Button B`: Selection (e.g., select app, turn right in Snake).
* `Start Button` (capacitive touch logo): Its function varies by app:
- In the **Menu**, it selects the currently highlighted application.
- In the **Name Scroller**, pressing any button (A, B, or Start)
will return to the main menu.
- In the **Snake game**, the Start button is used for selections
within the game (e.g., choosing difficulty).
* LED matrix provides immediate **visual feedback** for selections, game
states, and menu navigation.
### Accessibility Considerations
Limited by the 5x5 LED matrix. Focus is on **clear, distinct visual
patterns** where possible.
### Brand & Style Guidelines
Adheres to the physical aesthetic of the BBC micro:bit v2, with simple,
functional LED display patterns.
## Technical Considerations (High-Level)
### System Integrations
* Onboard NFC peripheral (for NFC Business Card app).
* GPIO for button input.
* LED matrix display control.
### Performance Requirements
* Menu navigation must be responsive.
* Snake game refresh rate tuned for smooth play.
### Security Considerations
NFC data transfer should minimize privacy risks (e.g., only share public
contact info). No sensitive data stored.
### Data Privacy
VCard data intended for public sharing only. No personal data collected or
stored by the application itself.
## Release Plan & Roadmap
### Phased Rollout Strategy
Initial single release. No phased rollout planned for this version.
### Future Considerations / Roadmap
* Finalize NFC vCard transmission.
* Add configuration storage via flash memory for user preferences.
* Create a desktop companion app for easier settings editing.
* Support BLE for data synchronization or advanced configuration.
## Success Metrics & Analytics
### Key Metrics to Track
As listed in section 4.3 (e.g., qualitative feedback, observations of
interaction, NFC transfer success rate).
### Analytics Tools
Primarily anecdotal observation and direct user feedback due to the
embedded, standalone nature of the device.
## Open Questions and Assumptions
### Open Questions
* Exact vCard data format for NFC compatibility across devices.
* Optimal user experience for NFC activation on the micro:bit.
### Assumptions
* Users will be familiar with basic micro:bit interactions.
* The 5x5 LED matrix provides sufficient visual fidelity for intended
applications.
* NFC peripheral provides reliable data transfer.
## Appendices
### Glossary
**Embassy:** An asynchronous embedded runtime for Rust.
**HALs:** Hardware Abstraction Layers, providing a consistent API for
hardware peripherals.
**micro:bit v2:** A small, programmable computer designed for
education and hobbyists.
**NFC:** Near Field Communication, a set of communication protocols.
**PWM:** Pulse-width modulation, used for controlling LED intensity.
**vCard:** An electronic business card file format.
### References