pottery-diary/README.md

192 lines
5.2 KiB
Markdown

# 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 🏺