166 lines
5.1 KiB
Markdown
166 lines
5.1 KiB
Markdown
# Product Requirements Document - Pottery Diary (US)
|
||
|
||
## Executive Summary
|
||
|
||
**Product**: Mobile diary for ceramics/pottery projects (iOS & Android)
|
||
**Target Market**: US hobby potters, ceramic students, studio owners
|
||
**Launch Date**: Q1 2025
|
||
**Version**: 1.0 MVP
|
||
|
||
### Core Value Proposition
|
||
Help makers reproduce results and learn from past firings by tracking every project step (clay → bisque → glaze → firing) with photos, glaze layers, temperatures, cone numbers, and notes.
|
||
|
||
## Key Features (v1.0)
|
||
|
||
### 1. Projects (CRUD)
|
||
- Create/edit/delete projects
|
||
- Cover photo, title, tags, status (in progress/done/archived)
|
||
- Gallery view sorted by last updated
|
||
|
||
### 2. Process Steps
|
||
Six step types with contextual fields:
|
||
- **Forming**: Basic notes + photos
|
||
- **Drying**: Basic notes + photos
|
||
- **Bisque Firing**: Cone (e.g., 04), Temperature (°F/°C), Duration (h:mm), Kiln notes, Photos
|
||
- **Glazing**: Glaze selection (catalog/custom), Coats (int), Application (brush/dip/spray), Photos
|
||
- **Glaze Firing**: Cone (e.g., 6, 10), Temperature, Duration, Kiln notes, Photos
|
||
- **Misc**: Basic notes + photos
|
||
|
||
### 3. Glaze Catalog
|
||
- Read-only seed data (25+ US glazes: Amaco, Mayco, Spectrum, Coyote, etc.)
|
||
- Add custom glazes (brand, name, code, finish, notes)
|
||
- Search by brand/name/code
|
||
|
||
### 4. Cone-Temperature Converter
|
||
- Orton cone reference (022 → 14)
|
||
- Auto-fill temperature when cone selected
|
||
- User can override auto-filled values
|
||
|
||
### 5. Settings
|
||
- Unit system: Imperial (lb/in/°F) or Metric (kg/cm/°C)
|
||
- Temperature unit: °F or °C
|
||
- Analytics opt-in (disabled by default)
|
||
- Data export (JSON)
|
||
|
||
### 6. Onboarding
|
||
- 3-screen intro with skip option
|
||
- Explains key features
|
||
|
||
## Technical Architecture
|
||
|
||
### Stack
|
||
- **Framework**: React Native (Expo SDK 54)
|
||
- **Language**: TypeScript
|
||
- **Database**: SQLite (expo-sqlite) - offline-first
|
||
- **Navigation**: React Navigation v7
|
||
- **Photos**: expo-camera, expo-image-picker, expo-image-manipulator
|
||
- **Build**: EAS Build
|
||
|
||
### Database Schema
|
||
```sql
|
||
projects (id, title, status, tags, cover_image_uri, created_at, updated_at)
|
||
steps (id, project_id, type, notes_markdown, photo_uris, created_at, updated_at)
|
||
firing_fields (step_id, cone, temperature_value, temperature_unit, duration_minutes, kiln_notes)
|
||
glazing_fields (step_id, glaze_ids, coats, application)
|
||
glazes (id, brand, name, code, finish, notes, is_custom, created_at)
|
||
settings (id, unit_system, temp_unit, analytics_opt_in)
|
||
news_items (id, title, excerpt, url, content_html, published_at, cached_at)
|
||
```
|
||
|
||
### Key Components
|
||
- **Repositories**: CRUD operations for all entities
|
||
- **Utilities**: Cone converter, unit conversions, UUID, date formatting
|
||
- **Analytics**: Privacy-first abstraction (no-op if opt-out)
|
||
- **Theme**: Design tokens (colors, spacing, typography)
|
||
|
||
## US-Specific Design
|
||
|
||
### Units
|
||
- Default: Fahrenheit (°F), Imperial (lb/in)
|
||
- Toggle: Celsius (°C), Metric (kg/cm)
|
||
|
||
### Cone System
|
||
- Orton cone numbers standard in US ceramics
|
||
- Support common cones: 022, 021, 020...06, 05, 04...1, 2...6...10, 11, 12, 13, 14
|
||
- Auto-suggest temperatures per cone chart
|
||
|
||
### Copy
|
||
- US-English spelling and terminology
|
||
- Friendly maker vibe, instructive tone
|
||
- Example: "Cone", "Kiln Notes", "Coats", "Bisque Firing"
|
||
|
||
## Accessibility (ADA Compliance)
|
||
|
||
- **VoiceOver/TalkBack**: All controls labeled
|
||
- **Dynamic Type**: Text scales with system settings
|
||
- **Contrast**: WCAG AA compliant
|
||
- **Tap Targets**: Minimum 44×44 pt
|
||
- **Focus Order**: Logical navigation
|
||
|
||
## Privacy & Compliance
|
||
|
||
### CCPA
|
||
- No personal data collected by default
|
||
- Analytics opt-in (anonymous usage events only)
|
||
- Data export available
|
||
- No data selling or sharing
|
||
|
||
### COPPA
|
||
- Age rating: 4+ (content)
|
||
- Not directed at children under 13
|
||
- No PII collection
|
||
|
||
### App Tracking Transparency (iOS)
|
||
- Not required (no third-party tracking unless user opts in)
|
||
|
||
## Success Metrics (First 60-90 Days)
|
||
|
||
| Metric | Target |
|
||
|--------|--------|
|
||
| A1 Activation | ≥60% create ≥1 project with ≥1 photo in 24h |
|
||
| R7 Retention | ≥30% return in week 1 |
|
||
| Feature Adoption | ≥50% of projects have glaze + cone/temp |
|
||
| Crash-Free Sessions | ≥99.5% |
|
||
|
||
## Out of Scope (v1.0)
|
||
|
||
❌ Social features (likes, comments, sharing)
|
||
❌ Multi-device sync / accounts
|
||
❌ Recipe calculators
|
||
❌ Kiln controller integrations
|
||
❌ E-commerce / marketplace
|
||
|
||
## Roadmap
|
||
|
||
### v1.1 (Post-Launch)
|
||
- Project export (Markdown + ZIP)
|
||
- Search/filter by cone/glaze/tag
|
||
- Simple reminders
|
||
- iCloud/Google Drive backup
|
||
|
||
### v1.2 (Future)
|
||
- PDF one-pager export
|
||
- Duplicate project as template
|
||
- Expanded glaze catalog (crowdsourced)
|
||
|
||
## Store Metadata (US)
|
||
|
||
**Title**: "Pottery Diary – Cone & Glaze Log"
|
||
**Subtitle**: "Track bisque & glaze firings with photos"
|
||
**Keywords**: pottery, ceramics, glaze, cone 6, kiln, bisque, studio, clay
|
||
**Category**: Lifestyle (alt: Productivity)
|
||
**Age Rating**: 4+
|
||
**Price**: Free
|
||
|
||
## References
|
||
|
||
- Full PRD: See original document with detailed user stories, flows, and acceptance criteria
|
||
- Orton Cone Chart: Based on self-supporting cone end-point temperatures
|
||
- Glaze Data: Manufacturer specifications
|
||
|
||
---
|
||
|
||
**Document Version**: 1.0
|
||
**Last Updated**: 2025-01-15
|
||
**Author**: Product Team
|