ShopSherpa is a comprehensive mobile-first web application designed to empower international students and immigrants in the UK to make informed grocery purchasing decisions. By combining real-time product data, community-driven reviews, and personalized recommendations, ShopSherpa transforms the shopping experience into an intelligent, confidence-building journey.
-
Search Products: Use the search bar or barcode scanner to find products
-
View Insights: Review radar charts, price comparisons, and community ratings
-
Set Preferences: Customize your shopping priorities in the profile section
-
Manage Allergens: Set up allergen warnings for safer shopping
-
Join Discussions: Participate in community forums about products
src/
├── app/ # Next.js App Router pages
│ ├── api/ # API routes for backend functionality
│ ├── auth/ # Authentication pages
│ ├── chats/ # Community forum
│ ├── product/[id]/ # Product detail pages
│ ├── profile/ # User profile management
│ ├── review/ # Review creation and viewing
│ └── search/ # Main search interface
├── components/ # Reusable React components
│ ├── buttons/ # Interactive button components
│ ├── cards/ # Product and content cards
│ ├── community/ # Forum and social features
│ ├── product/ # Product-specific components
│ ├── profile/ # User profile components
│ └── search/ # Search interface components
├── hooks/ # Custom React hooks
├── lib/ # Utility libraries and configurations
├── middleware/ # Authentication and request middleware
├── styles/ # Global styles and color schemes
├── types/ # TypeScript type definitions
└── utils/ # Helper functions and utilities
We welcome contributions to ShopSherpa! Please read our contributing guidelines and feel free to submit pull requests, report bugs, or suggest features. Here are some instructions on how to set up a local instance of the ShopSherpa App:
- Node.js 20+ and pnpm 9+
-
Clone the repository
git clone <-- put http or ssh repo url here --> cd shopsmart
-
Install dependencies
pnpm install
-
Firebase Setup
- Create a Firebase project at console.firebase.google.com
- Enable Firestore Database and Authentication
- Download service account credentials
- Configure authentication providers (Email/Password recommended)
-
Environment Setup Create a
.env.localfile with the following variables:# Firebase Configuration (Client) NEXT_PUBLIC_FIREBASE_API_KEY=your_api_key NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=your_project.firebaseapp.com NEXT_PUBLIC_FIREBASE_PROJECT_ID=your_project_id # Firebase Admin Configuration (Server) FIREBASE_PROJECT_ID=your_project_id FIREBASE_PRIVATE_KEY_ID=your_private_key_id FIREBASE_PRIVATE_KEY="-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----\n" FIREBASE_CLIENT_EMAIL=firebase-adminsdk-xxxxx@your_project.iam.gserviceaccount.com FIREBASE_CLIENT_ID=your_client_id
-
Database Initialization
# Seed initial tags for the community system node scripts/seedTags.js -
Start Development Server
pnpm dev
The application will be available at `http://localhost:3000
This project is licensed under the AGPLv3 License - see the LICENSE.md file for details.
Built with ❤️ by the ShopSherpa Team — Benjamin Cummings, Bruce Chen, Freddie Nunn and Zachary Lazar




