ArrowBerry is a mobile-first application for scanning grocery receipts, extracting ingredient information, and turning pantry data into recipe recommendations.
The project is currently built with Expo and React Native, uses Supabase for authentication and backend data, and is organized to support future OCR and pantry-management workflows.
- Support account creation and login with Supabase Auth
- Let users scan receipts from the camera flow
- Extract useful ingredient data from scanned receipts
- Store pantry information per user
- Recommend recipes based on available ingredients
- Allow future feedback features such as recipe likes, dislikes, and pantry edits
- Expo
- React Native
- Expo Router
- React Navigation
- Supabase
app/
navigation/ Navigation setup and tab navigator
screens/ Main app screens such as scanner, recipes, and pantry
login.tsx Login screen
signup.tsx Account creation screen
index.tsx Root app entry and auth gate
lib/
supabase.* Supabase client configuration
assets/ Images, fonts, and static assets
npm installCreate a .env file at the repository root.
EXPO_PUBLIC_SUPABASE_URL=your_supabase_project_url
EXPO_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_keyNotes:
- The variable names must exactly match the names used in code.
- After changing
.env, restart Expo.
npx expo startYou can then run the project in Expo Go, an iOS simulator, an Android emulator, or on the web as needed.
Before opening a pull request, verify the following locally when your changes touch auth, navigation, or UI flows:
- The app starts without runtime errors
- Login screen loads correctly
- Signup screen loads correctly
- Users can create an account
- Users can sign in
- Users can sign out
- Navigation still works across scanner, recipes, and pantry screens
- UI changes look reasonable on both narrow and wider layouts when relevant
- Keep changes focused and easy to review
- Prefer small pull requests over large unrelated rewrites
- Reuse existing patterns before introducing new architecture
- Keep UI behavior consistent across screens
- Do not commit secrets, API keys, or
.envfiles
Use a feature branch for your work.
Example:
git checkout -b feature/add-signup-validation- Pull the latest changes from the main branch
- Create a feature branch
- Make your changes
- Test the affected flow locally
- Open a pull request with a clear summary of what changed and how it was tested
A good pull request should include:
- A short summary of the change
- Why the change was needed
- Any setup steps reviewers should know about
- A short note on how you tested it
- Screenshots for visible UI changes when helpful
ArrowBerry uses Supabase for authentication and backend services.
Important reminders:
- Keep Supabase keys out of committed source files
- Use
.envfor local configuration - Auth redirect behavior may need dashboard configuration during development
- If auth links redirect incorrectly, check the Supabase Site URL and redirect settings
This project is still under active development. The architecture and setup may evolve as receipt scanning, OCR, pantry management, and recipe recommendation features are expanded.