# Pottery Diary (US Edition)

> Track every step of your ceramics journey from clay to finished piece

A mobile-first diary app for pottery and ceramics makers, designed specifically for the US market with Fahrenheit temperatures, Orton cone numbers, and imperial units.

## Features

### Core Functionality
- **Project Management**: Create and organize pottery projects with photos, tags, and status tracking
- **Process Steps**: Log every stage from forming to final firing
  - Forming, Drying, Bisque Firing, Glazing, Glaze Firing, and Misc steps
- **Firing Details**: Record cone numbers (04, 6, 10, etc.) with auto-suggested temperatures
- **Glaze Tracking**: Catalog of popular US glazes (Amaco, Mayco, Spectrum, Coyote, etc.)
  - Add custom glazes
  - Track coats, application methods, and combinations
- **Photo Documentation**: Attach multiple photos to any step
- **Notes**: Markdown-supported notes for detailed record keeping

### US-Specific
- Temperature in Fahrenheit (°F) with optional Celsius toggle
- Orton cone numbers (022 through 14)
- Imperial units (lb/oz, in) with metric toggle
- US-English copy and localization

### Technical
- **Offline-First**: All data stored locally in SQLite
- **Privacy-Focused**: No account required, analytics opt-in only
- **Accessible**: VoiceOver/TalkBack support, Dynamic Type, high contrast
- **Cross-Platform**: iOS 15+ and Android 8+

## Getting Started

### Prerequisites
- Node.js 18+ and npm
- Expo CLI (`npm install -g expo-cli`)
- iOS Simulator (Mac) or Android Emulator

### Installation

```bash
# Clone the repository
cd pottery-diary

# Install dependencies
npm install

# Start the development server
npm start

# Run on iOS
npm run ios

# Run on Android
npm run android
```

### Running Tests

```bash
# Run unit tests
npm test

# Run tests in watch mode
npm run test:watch
```

### Building for Production

```bash
# Install EAS CLI
npm install -g eas-cli

# Login to Expo
eas login

# Configure the project
eas build:configure

# Build for iOS
eas build --platform ios

# Build for Android
eas build --platform android
```

## Project Structure

```
pottery-diary/
├── src/
│   ├── components/         # Reusable UI components
│   ├── features/          # Feature-specific code (future expansion)
│   ├── lib/
│   │   ├── db/           # SQLite database and repositories
│   │   ├── utils/        # Utility functions (conversions, cone converter)
│   │   ├── analytics/    # Privacy-first analytics abstraction
│   │   └── theme/        # Design tokens and styling
│   ├── navigation/       # React Navigation setup
│   ├── screens/          # Screen components
│   └── types/            # TypeScript type definitions
├── assets/
│   └── seed/            # Seed data (glaze catalog)
├── __tests__/           # Unit tests
└── docs/                # Documentation
```

## Technology Stack

- **Framework**: React Native (Expo SDK 54)
- **Language**: TypeScript
- **Database**: SQLite (expo-sqlite)
- **Navigation**: React Navigation v7
- **State**: React hooks (no external state management)
- **Testing**: Jest + React Native Testing Library
- **Build**: EAS Build

## Database Schema

### Key Tables
- `projects`: Project metadata, tags, status
- `steps`: Process steps with type-specific fields
- `firing_fields`: Cone, temperature, duration for firing steps
- `glazing_fields`: Glaze selections, coats, application method
- `glazes`: Catalog of glazes (seed + custom)
- `settings`: User preferences (units, analytics opt-in)

## Contributing

This is a reference implementation for the PRD. Contributions welcome for:
- Additional glaze catalog entries
- Bug fixes and performance improvements
- Accessibility enhancements
- Localization for other regions

Please ensure:
1. All tests pass (`npm test`)
2. TypeScript compiles without errors
3. Code follows existing patterns
4. Accessibility labels are present

## Privacy & Security

- **No Account Required**: All data stored locally on device
- **Analytics Opt-In**: Disabled by default
- **No Third-Party Tracking**: No ads, no data selling
- **CCPA Compliant**: Data stays on your device
- **Open Source**: Code is transparent and auditable

See [SECURITY.md](./SECURITY.md) and [PRIVACY.md](./PRIVACY.md) for details.

## Roadmap

### v1.0 (Current)
- ✅ Project and step management
- ✅ Cone-based firing tracking
- ✅ Glaze catalog and custom glazes
- ✅ Photo attachments
- ✅ Settings and unit preferences

### v1.1 (Planned)
- [ ] Project export (Markdown + ZIP)
- [ ] Search and filtering
- [ ] iCloud/Google Drive backup
- [ ] Reminders for next steps

### v1.2 (Future)
- [ ] PDF export for projects
- [ ] Template projects (duplicate)
- [ ] Expanded glaze catalog
- [ ] Tips & news feed integration

## License

MIT License - see [LICENSE](./LICENSE) for details

## Support

- Report issues: [GitHub Issues](https://github.com/yourusername/pottery-diary/issues)
- Documentation: [docs/](./docs/)
- PRD: [docs/PRD.md](./docs/PRD.md)

## Acknowledgments

- Glaze data sourced from manufacturer specifications
- Orton cone temperature chart based on standard firing rates
- Designed for US ceramics community

---

Made with care for makers 🏺
