RowdyHacks XI 1st Place 🏆
- Node.js (v16+), Python (v3.8+), and OpenRouter API key
cd backend
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
cp .env.example .env
# Add your OpenRouter API key to .env: OPENROUTER_API_KEY=sk-or-v1-xxxxx
uvicorn main:app --reload --host 0.0.0.0 --port 8003cd frontend/allergen-app
npm install
cp .env.example .env
# Add your machine's IP to .env: EXPO_PUBLIC_API_BASE_URL=http://YOUR_IP:8003
npx expo startFind your IP:
- macOS/Linux:
ifconfig | grep "inet " - Windows:
ipconfig
Testing:
- Press
ifor iOS Simulator (macOS) - Press
afor Android Emulator - Scan QR with Expo Go app (ensure same WiFi network)
Verify Backend: Visit http://localhost:8003/docs for API documentation
Food allergies can turn a simple grocery trip into a stressful guessing game. Our team wanted to make that process easier, safer, and faster — especially for people who constantly need to double-check ingredients or risk severe reactions.
We created an app allowing you to scan any product, instantly know if it’s safe, and get smart alternatives powered by the gold-standard of food databases, supplemented by ChatGPT. That’s ALERG'Z — a personalized food companion built to bring peace of mind to those with allergies 👍
ALERG'Z is a mobile app that helps users identify allergy-safe foods with just a barcode scan.
Here’s how it works:
| Step | Description |
|---|---|
| 1. User Profile Setup | Users input their allergens when they first open the app, user data is stored with an SQLite database |
| 2. Product Scanning | When a barcode is scanned, ALERG'Z instantly fetches data from OpenFoodFacts to identify the product and its ingredients. |
| 3. Allergen Detection | The backend cross-checks ingredients against the user’s allergy profile. |
| 4. AI-Driven Alternatives | If a product isn’t safe, ALERG'Z uses ChatGPT (via OpenRouter) to suggest similar, allergy-friendly alternatives tailored to the user’s region. |
| 5. Visual Feedback | Each recommendation includes live-fetched product images for a smooth, engaging experience. |
All of this happens in seconds, giving users clear, visual answers and personalized options — no ingredient lists or guesswork required.
- Frontend: A sleek, modern React Native interface designed for both speed and accessibility. We focused on a clean user experience where every tap feels instant and intuitive.
- Backend: Built with FastAPI in Python, enabling rapid, concurrent API calls to OpenFoodFacts and GPT’s generative model for alternative recommendations.
- APIs & Data:
- OpenFoodFacts API for product details and UPC lookups
- OpenAI API for intelligent food alternative generation
- Pixabay / OpenFoodFacts images for visual product data
- Architecture:
- Asynchronous background threads to fetch product images dynamically
- JSON-structured responses to sync data seamlessly with the React Native client
- User authentication and profile management using SQLAlchemy + FastAPI ORM
This setup allowed us to achieve real-time scanning and recommendations — even on limited bandwidth.
- Image Updating: Allowing dynamic loading of page elements to ensure a fast, accessible user experience.
- API Rate Limits: Balancing performance while staying within OpenFoodFacts and ChatGPT rate constraints required optimization and caching logic.
- Prompt Engineering: Tuning the AI prompt for consistent, list-formatted responses from ChatGPT took a lot of iteration.
- Cross-Platform Sync: Ensuring React Native and FastAPI communicated perfectly across threads and sockets pushed us to fine-tune CORS and websocket behavior.
- Built a fully functional allergy-detection and recommendation system from scratch in just a few days.
- Achieved real-time barcode scanning and analysis with a fast, responsive UI.
- Successfully integrated multiple APIs and AI models into one seamless experience.
- Designed a clean, user-first mobile interface that feels both modern and trustworthy.
Most importantly, we created something that could genuinely make life easier for people managing allergies every day.
- How to efficiently orchestrate multi-API workflows in FastAPI using background tasks and concurrent threading.
- The power of prompt design — small phrasing changes can dramatically impact AI output.
- Strategies for frontend-backend synchronization in real-time, user-centric applications.
- How valuable user empathy is when building healthcare-adjacent products — the human side matters just as much as the technical side.
- Ingredient-level risk scoring to show how “safe” a product is for a specific allergy.
- Expanded database support for region-specific food APIs (USDA, Tesco, Carrefour).
- Camera-based label scanning for offline use when barcodes aren’t available.
- Personalized dashboards to track safe foods, allergen exposure, and nutrition trends.
- Social recommendations, allowing users to share safe product discoveries.
Our vision is to make ALERG'Z the go-to app for allergy-conscious consumers — empowering users to eat confidently, anywhere.
ALERGZ
├── README.md
├── LICENSE
├── .gitignore
├── backend
│ ├── main.py
│ ├── requirements.txt
│ ├── allergen.db
│ └── app
│ ├── api
│ │ ├── scan.py
│ │ ├── recommend.py
│ │ └── __init__.py
│ ├── database
│ │ ├── models.py
│ │ ├── db.py
│ │ └── __init__.py
│ ├── schemas
│ │ └── product.py
│ └── __init__.py
├── frontend
│ └── allergen-app
│ ├── package.json
│ ├── tsconfig.json
│ ├── babel.config.js
│ ├── eslint.config.js
│ ├── .env
│ ├── app
│ │ ├── _layout.tsx
│ │ ├── (tabs)
│ │ │ ├── screen1.tsx
│ │ │ ├── screen2.tsx
│ │ │ ├── screen3_camera.tsx
│ │ │ └── explore.tsx
│ │ └── components
│ │ ├── GlassSearchBar.tsx
│ │ ├── SelectedItemsArea.tsx
│ │ └── ui
│ │ └── icon-symbol.tsx
│ ├── assets
│ │ └── (images, icons)
│ └── scripts
│ └── reset-project.js
├── docs
│ └── (design / hackathon notes)
└── misc