An open API service indexing awesome lists of open source software.

https://github.com/alanxue1/smartcart

🛒 Mobile app that empowers visually impaired shoppers through intuitive audio guidance and accessibility-first design.
https://github.com/alanxue1/smartcart

expo firebase gemini-api react-native typescript

Last synced: 9 months ago
JSON representation

🛒 Mobile app that empowers visually impaired shoppers through intuitive audio guidance and accessibility-first design.

Awesome Lists containing this project

README

          

# SmartCart

A smart shopping & recipe app that helps manage your grocery shopping and meal planning with AI-powered categorization.

## Features

- **Recipe Integration:** Search recipes, view ingredients, and automatically add missing items to your shopping list.
- **Smart Shopping List:**
- AI-powered categorization of items (Produce, Dairy, etc.) using Google Gemini.
- Real-time list syncing with Firebase.
- Manage items: mark complete, adjust quantity, long-press to delete.
- Intelligent ingredient parsing (handles fractions, removes prep notes like "finely chopped").
- **Pantry Management:** Keep track of ingredients you own to avoid re-buying.
- **Accessibility:** Text-to-speech and high-contrast mode.
- **Cross-Platform:** iOS & Android support via React Native & Expo.

## Tech Stack

- React Native with Expo
- TypeScript
- Firebase Firestore
- Google Gemini API (upgraded to 2.0 Flash)
- React Native Navigation (Expo Router)
- Expo Speech API for accessibility

## Screenshot

![SmartCart App Screenshot](screenshots/main.jpeg)

## Setup

1. Clone the repository:
```bash
git clone https://github.com/alanxue1/smartcart.git
cd smartcart
```

2. Install dependencies:
```bash
npm install
```

3. Create a `.env` file in the root directory with:
```
GEMINI_API_KEY=your_gemini_api_key
```

4. Start the development server:
```bash
npm start
```

5. Run on your device:
- iOS: Press 'i' in the terminal
- Android: Press 'a' in the terminal
- Scan the QR code with Expo Go app

## Environment Variables

- `GEMINI_API_KEY`: Google Gemini API key for item categorization

## Contributing

1. Fork the repository
2. Create your feature branch (`git checkout -b feature/amazing-feature`)
3. Commit your changes (`git commit -m 'feat: add amazing feature'`)
4. Push to the branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request

## License

This project is licensed under the MIT License - see the LICENSE file for details.

## 📞 Contact

Alan Xue - [@alanxue_](https://x.com/alanxue_) - xuealan101@gmail.com