{"id":36985486,"url":"https://github.com/antoc-dev/recipedia","last_synced_at":"2026-05-09T22:27:53.277Z","repository":{"id":313980143,"uuid":"622256884","full_name":"AntoC-dev/Recipedia","owner":"AntoC-dev","description":"📱 A React Native recipe management app with OCR scanning, shopping lists, and smart search features","archived":false,"fork":false,"pushed_at":"2026-01-12T08:55:31.000Z","size":110021,"stargazers_count":2,"open_issues_count":8,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-12T18:32:15.760Z","etag":null,"topics":["android","cross-platform","expo","food","fuzzy-search","i18n","ios","mobile-app","ocr","react","react-native","recipe-management","shopping-list","sqlite","typescript"],"latest_commit_sha":null,"homepage":"https://github.com/AntoC-dev/Recipedia","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AntoC-dev.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-04-01T15:24:32.000Z","updated_at":"2026-01-05T16:48:16.000Z","dependencies_parsed_at":"2025-10-30T00:18:57.711Z","dependency_job_id":null,"html_url":"https://github.com/AntoC-dev/Recipedia","commit_stats":null,"previous_names":["anto-dev-perso/recipedia","antoc-dev/recipedia"],"tags_count":64,"template":false,"template_full_name":null,"purl":"pkg:github/AntoC-dev/Recipedia","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AntoC-dev%2FRecipedia","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AntoC-dev%2FRecipedia/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AntoC-dev%2FRecipedia/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AntoC-dev%2FRecipedia/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AntoC-dev","download_url":"https://codeload.github.com/AntoC-dev/Recipedia/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AntoC-dev%2FRecipedia/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28405148,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-13T21:51:37.118Z","status":"ssl_error","status_checked_at":"2026-01-13T21:45:14.585Z","response_time":56,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","cross-platform","expo","food","fuzzy-search","i18n","ios","mobile-app","ocr","react","react-native","recipe-management","shopping-list","sqlite","typescript"],"created_at":"2026-01-13T23:02:10.745Z","updated_at":"2026-01-13T23:02:10.879Z","avatar_url":"https://github.com/AntoC-dev.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🍳 Recipedia\n\nA React Native recipe management app built with Expo that allows users to add, search, and manage recipes with OCR\ncapabilities for extracting recipe information from images.\n\n\u003cdiv align=\"center\"\u003e\n\n[![Version](https://img.shields.io/badge/version-0.7.0-blue.svg)](package.json)\n[![React Native](https://img.shields.io/badge/React%20Native-0.76.9-blue.svg)](https://reactnative.dev/)\n[![Expo](https://img.shields.io/badge/Expo-~52.0.42-black.svg)](https://expo.dev/)\n[![TypeScript](https://img.shields.io/badge/TypeScript-5.3.3-blue.svg)](https://www.typescriptlang.org/)\n[![License](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE)\n\n\u003c/div\u003e\n\n## ✨ Features\n\n- 📱 **Cross-platform**: Built with React Native and Expo for iOS and Android\n- 🔍 **Smart Search**: Fuzzy search for recipes and ingredients using Fuse.js\n- 📸 **OCR Integration**: Extract recipe information from images using ML Kit text recognition\n- 🌐 **Web Recipe Import**: Import recipes from 400+ websites using [recipe-scrapers](https://github.com/hhursev/recipe-scrapers)\n- 🌍 **Multi-language**: Full internationalization support (English \u0026 French)\n- 🌙 **Dark Mode**: Complete dark/light theme support\n- 🗃️ **Local Storage**: SQLite database for offline functionality\n- 🛒 **Shopping Lists**: Convert recipe ingredients to shopping lists\n- 🏷️ **Smart Filtering**: Filter recipes by ingredients, tags, time, and seasonality\n- 📅 **Seasonal Awareness**: Track ingredient seasonality for better meal planning\n\n## 📷 Screenshots\n\n| Home Screen   | Recipe View   | Search \u0026 Filters | Shopping List |\n|---------------|---------------|------------------|---------------|\n| *Coming soon* | *Coming soon* | *Coming soon*    | *Coming soon* |\n\n## 🚀 Quick Start\n\n### Prerequisites\n\n- [Node.js](https://nodejs.org/) (v18 or higher)\n- [npm](https://www.npmjs.com/) or [yarn](https://yarnpkg.com/)\n- [Expo CLI](https://docs.expo.dev/get-started/installation/)\n- For Android: [Android Studio](https://developer.android.com/studio) with Android SDK\n- For iOS: [Xcode](https://developer.apple.com/xcode/) (macOS only)\n\n### Installation\n\n1. **Clone the repository**\n   ```bash\n   git clone https://github.com/AntoC-dev/Recipedia.git\n   cd Recipedia\n   ```\n\n2. **Install dependencies**\n   ```bash\n   npm install\n   ```\n\n3. **Start the development server**\n   ```bash\n   npm start\n   ```\n\n4. **Run on your platform**\n    - **Android**: `npm run dev:android`\n    - **iOS**: `npm run dev:ios`\n\n## 🏗️ Project Architecture\n\nRecipedia follows a well-structured architecture with clear separation of concerns:\n\n```\nsrc/\n├── components/          # Reusable UI components (Atomic Design)\n│   ├── atomic/         # Basic components (buttons, inputs)\n│   ├── molecules/      # Composite components\n│   └── organisms/      # Complex components\n├── screens/            # App screens\n├── navigation/         # Navigation configuration\n├── context/           # React Context providers\n├── utils/             # Utility functions and database\n├── styles/            # Theme and styling\n├── translations/      # i18n translations\n└── customTypes/       # TypeScript type definitions\n```\n\n### Key Technologies\n\n- **Framework**: React Native with Expo\n- **Database**: SQLite with expo-sqlite\n- **Navigation**: React Navigation v6\n- **State Management**: React Context + Hooks\n- **UI Library**: React Native Paper for design system\n- **Internationalization**: i18next\n- **Search**: Fuse.js for fuzzy search\n- **OCR**: @react-native-ml-kit/text-recognition\n- **Recipe Scraping**: [recipe-scrapers](https://github.com/hhursev/recipe-scrapers) via Python (Chaquopy on Android, BeeWare on iOS, Pyodide on Web)\n- **Testing**: Jest + React Native Testing Library + Maestro (E2E)\n\n## 📖 Documentation\n\n### For Users\n\n- [Installation Guide](docs/installation.md)\n- [User Manual](docs/user-guide.md)\n- [FAQ](docs/faq.md)\n\n### For Developers\n\n- **[API Documentation](https://AntoC-dev.github.io/Recipedia/)** - Complete TypeScript API reference\n- [Contributing Guidelines](CONTRIBUTING.md)\n- [Testing Guide](docs/testing.md)\n- [CI/CD Setup](docs/ci-setup.md)\n\n### API Documentation\n\nThe project maintains comprehensive API documentation generated with TypeDoc, covering all components, utilities, and\ntypes. The documentation is automatically published to GitHub Pages and includes:\n\n- **Component Documentation**: All atomic, molecular, and organism components\n- **Utility Functions**: Database operations, file management, and helper functions\n- **Type Definitions**: Complete TypeScript interfaces and types\n- **Source Code**: Direct links to GitHub source files\n- **Examples**: Usage examples and code snippets\n\n**Documentation Commands:**\n\n```bash\nnpm run docs:build    # Generate documentation\nnpm run docs:clean    # Clean documentation build\n```\n\n**Viewing Documentation:**\n\n- **Online**: [https://AntoC-dev.github.io/Recipedia/](https://AntoC-dev.github.io/Recipedia/)\n- **Local**: Run `npm run docs:build` then open `docs/index.html`\n\n## 🧪 Testing\n\nRecipedia includes comprehensive testing at multiple levels:\n\n### Unit Tests\n\n```bash\nnpm run test:unit           # Run all unit tests\nnpm run test:unit:watch     # Run tests in watch mode\nnpm run test:unit:coverage  # Run with coverage report\n```\n\n### End-to-End Tests\n\n```bash\nnpm run test:e2e:android    # Run E2E tests on Android\nnpm run workflow:build-test:android  # Full cycle\n```\n\n### Test Coverage\n\n- **Unit Tests**: Components, utilities, and business logic\n- **E2E Tests**: Complete user workflows using Maestro\n\n## 🔧 Development\n\n### Available Scripts\n\n| Command                      | Description                    |\n|------------------------------|--------------------------------|\n| `npm start`                  | Start Expo development server  |\n| `npm run dev:android`        | Run on Android device/emulator |\n| `npm run dev:ios`            | Run on iOS device/simulator    |\n| `npm run build:test:android` | Build Android APK              |\n| `npm run build:test:ios`     | Build iOS app                  |\n| `npm run test:unit`          | Run unit tests                 |\n| `npm run test:e2e:android`   | Run E2E tests                  |\n| `npm run release`            | Create semantic release        |\n\n### Code Style\n\nThe project follows strict TypeScript and React Native best practices:\n\n- **ESLint** for code linting\n- **Prettier** for code formatting\n- **TypeScript** for type safety\n- **Atomic Design** for component architecture\n- **Feature-first** folder structure\n\n## 🤝 Contributing\n\nWe welcome contributions! Please see our [Contributing Guidelines](CONTRIBUTING.md) for details.\n\n### How to Contribute\n\n1. Fork the repository\n2. Create a feature branch (`git checkout -b feature/123-amazing-feature`)\n3. Make your changes\n4. Run tests (`npm run test:unit`)\n5. Commit your changes (`git commit -m 'feat(#123): add amazing feature'`)\n6. Push to the branch (`git push origin feature/123-amazing-feature`)\n7. Open a Pull Request\n\n### Development Guidelines\n\n- Follow the existing code style and patterns\n- Add unit tests for new functionality\n- Update documentation as needed\n- Ensure all tests pass before submitting PR\n- Use semantic commit messages with issue numbers\n\n## 🐛 Bug Reports \u0026 Feature Requests\n\nPlease use [GitHub Issues](https://github.com/AntoC-dev/Recipedia/issues) to:\n\n- Report bugs\n- Request new features\n- Ask questions about usage\n\n### Bug Report Template\n\nWhen reporting bugs, please include:\n\n- Device and OS version\n- App version\n- Steps to reproduce\n- Expected vs actual behavior\n- Screenshots if applicable\n\n## 📱 Device Support\n\n### Minimum Requirements\n\n- **iOS**: iOS 13.0+\n- **Android**: Android 6.0+ (API level 23+)\n\n### Tested Devices\n\n- iOS: Not yet, to come\n- Android: Various devices with Android 14.0+\n\n## 🔐 Privacy \u0026 Security\n\n- **Local Data**: All recipes are stored locally on your device\n- **No Cloud Sync**: Your data stays on your device\n- **Camera Permissions**: Only used for OCR recipe scanning\n- **No Analytics**: No user tracking or data collection\n\n## 📄 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## 🙏 Acknowledgments\n\n- [Expo](https://expo.dev/) for the amazing development platform\n- [React Native](https://reactnative.dev/) team for the framework\n- [React Native Paper](https://reactnativepaper.com/) for the UI components\n- [ML Kit](https://developers.google.com/ml-kit) for OCR capabilities\n- **[recipe-scrapers](https://github.com/hhursev/recipe-scrapers)** - A huge thank you to [Hristo Harsev](https://github.com/hhursev) and all the [contributors](https://github.com/hhursev/recipe-scrapers/graphs/contributors) for this incredible Python library that powers our web recipe import feature, supporting 400+ recipe websites\n- [Chaquopy](https://chaquo.com/chaquopy/) for embedding Python in Android apps\n- [BeeWare](https://beeware.org/) for Python on iOS support\n- [Pyodide](https://pyodide.org/) for running Python in the browser via WebAssembly\n- All contributors who help make this project better\n\n## 📞 Support\n\n- **Documentation**: Check our [docs folder](docs/)\n- **Issues**: [GitHub Issues](https://github.com/AntoC-dev/Recipedia/issues)\n- **Discussions**: [GitHub Discussions](https://github.com/AntoC-dev/Recipedia/discussions)\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n**Made with ❤️ by the Recipedia team**\n\n[⭐ Star this repo](https://github.com/AntoC-dev/Recipedia) • [🐛 Report bug](https://github.com/AntoC-dev/Recipedia/issues) • [✨ Request feature](https://github.com/AntoC-dev/Recipedia/issues)\n\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fantoc-dev%2Frecipedia","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fantoc-dev%2Frecipedia","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fantoc-dev%2Frecipedia/lists"}