For many of us, grocery shopping is routine. We walk into a store, recognize products, compare options, and make decisions without thinking twice. But that isn’t everyone’s reality. For many immigrant and ESL shoppers, grocery stores can feel overwhelming and unfamiliar. Reading labels, understanding ingredients, and choosing between products becomes difficult when everything is in a different language.
These challenges go beyond inconvenience. They can lead to confusion, unsafe food choices, and a sense of isolation in everyday spaces. Something as essential as buying groceries can make people feel like they are not fully part of their community.
Core was built with these experiences in mind. It’s not about asking users to adapt to systems that weren’t designed for them. It’s about redesigning the experience itself to be more inclusive, intuitive, and supportive. Our goal is to make grocery shopping feel simple, safe, and empowering, because everyone deserves to feel at the core of their community.
- Multilingual grocery list input and translation
- Personalised filters (location, language, dietary restrictions)
- Aisle-level organisation for in-store navigation
- Allergen-aware filtering and warnings
- Dual-language product display (native language + English)
- Clean, accessibility-focused UI
- Node.js v18+ (recommended)
- npm v9+
- Python 3.9+
- PostgreSQL
Install required backend packages:
pip install -r requirements.txt
⸻🔑 API Setup
Kroger API
Core uses Kroger API data to power product and store recommendations. 1. Create a developer account at https://developer.kroger.com 2. Create an application to obtain your credentials 3. Add the following to your .env file:
KROGER_CLIENT_ID=your_client_id KROGER_CLIENT_SECRET=your_client_secret
⸻
Google Cloud Translate API
Core uses Google Cloud Translate to support multilingual input and product translation. 1. Create a project in Google Cloud Console 2. Enable the Cloud Translation API 3. Create a service account and download the JSON credentials 4. Add the following to your .env file:
GOOGLE_TRANSLATE_API_KEY=your_google_translate_api_key
Make sure the credentials file is not committed to your repository.
⸻
🚀 Getting Started
- Clone the Repository
git clone cd
⸻
- Frontend Setup
cd frontend npm install
Start the development server (hot reload):
npm run dev
Build for production:
npm run build
Preview the production build:
npm run preview
⸻
- Backend Setup (FastAPI)
cd backend
Create a .env file with:
DATABASE_URL=your_postgres_connection_string GOOGLE_TRANSLATE_API_KEY=your_google_translate_api_key
Run the server:
uvicorn main:app --reload
⸻
- Database Setup
Make sure PostgreSQL is running, then run migrations:
alembic upgrade head
⸻
🧠 Tech Stack
Frontend • React • TypeScript • Vite • Zustand
Backend • FastAPI • PostgreSQL • SQLAlchemy • Alembic
APIs & Data • Google Cloud Translate API • Kroger API
⸻
🌱 Vision
Core is just the beginning. We see it evolving into a broader accessibility layer for retail, supporting more languages, more stores, and more personalized experiences. By reducing language barriers in everyday tasks, we hope to help more people navigate systems with confidence and feel like they truly belong.