This mobile application allows users to upload images of food items and receive recipe recommendations based on the ingredients detected in those images. The app uses a combination of local image processing and remote API calls to a backend server that performs recipe recognition and returns relevant recipes. It features user preference tracking and personalized recipe suggestions.
- Image Upload: Users can either take a photo or select an image from their gallery.
- Recipe Recognition: Images are sent to a backend where ingredients are recognized and matched with available recipes.
- Personalization: User preferences are saved and used for tailored recipe suggestions.
- Recipe Display: Recipes are displayed along with their sources, indicating whether they are from the database ('DB') or generated by machine learning models ('LLM').
- React Native: For building the mobile application.
- Expo: Used to handle media picking and manipulation tasks.
- Firebase: For user authentication, storage, and real-time data management.
- Node.js/Express: Backend server for processing images and querying recipes.
- Node.js
- npm or Yarn
- Expo CLI
- Firebase Account
- React Native setup on the development machine
Clone the repository and install the dependencies: git clone https://github.com/srs1234peng/ReciPic.git cd project npm install
- Create a Firebase project in your Firebase console.
- Add an app to your project and download the
firebase-config.js
file. - Place
firebase-config.js
in your project's root directory. - Ensure that Firebase storage and authentication are enabled in your Firebase project.
Start the Expo development server: npx expo start
Scan the QR code with your Expo Go app on your mobile device or use an emulator to run the app.
- Starting the App: Open the app on your device.
- Uploading Images: Navigate to the Explore screen, and either take a photo or select an image from your library.
- Viewing Recipes: After image processing, view the suggested recipes on the Recipe List screen.
- Saving Preferences: Select a recipe to save it to your preference history for personalized suggestions.
Contributions are welcome, and any contributors who want to make this project better can make changes to the repository. To contribute:
- Fork the project.
- Create your feature branch (
git checkout -b feature/AmazingFeature
). - Commit your changes (
git commit -m 'Add some AmazingFeature'
). - Push to the branch (
git push origin feature/AmazingFeature
). - Open a pull request.
Distributed under the MIT License. See LICENSE
for more information.
Hanzhang Peng - [email protected]
Project Link: ReciPic