|
1 | | -# ShopSherpa |
| 1 | +# ShopSherpa 🛒 |
2 | 2 |
|
3 | | -**ShopSherpa** is a mobile-first web application that empowers international students and immigrants in the UK to make informed grocery purchases through real-time value comparisons and user reviews. |
| 3 | +**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. |
4 | 4 |
|
5 | | -## Key Features |
| 5 | +## Usage Guide |
6 | 6 |
|
7 | | -- 🔍 **Product Lookup**: Search by name or barcode for instant price data |
8 | | -- 📷 **Mobile Barcode Scanner**: Seamless in-app camera scanning for fast lookup |
9 | | -- 📊 **Value Insights**: Contextual guidance on relative value of grocery products so you can shop smart |
| 7 | +1. **Search Products**: Use the search bar or barcode scanner to find products |
10 | 8 |
|
11 | | -Built with ❤️ by the ShopSherpa Team — empowering international communities through shopping confidence. |
| 9 | + <div align="center"> |
| 10 | + <img src="public/readme/demo.gif" alt="Search Page" width="300"> |
| 11 | + </div> |
| 12 | + |
| 13 | +2. **View Insights**: Review radar charts, price comparisons, and community ratings |
| 14 | + |
| 15 | +  |
| 16 | + |
| 17 | +3. **Set Preferences**: Customize your shopping priorities in the profile section |
| 18 | + |
| 19 | +  |
| 20 | + |
| 21 | +4. **Manage Allergens**: Set up allergen warnings for safer shopping |
| 22 | + |
| 23 | +  |
| 24 | + |
| 25 | +5. **Read Reviews**: Browse community feedback and ratings |
| 26 | + |
| 27 | +  |
| 28 | + |
| 29 | +6. **Join Discussions**: Participate in community forums about products |
| 30 | + |
| 31 | +  |
| 32 | + |
| 33 | + |
| 34 | +### Project Structure |
| 35 | + |
| 36 | +``` |
| 37 | +src/ |
| 38 | +├── app/ # Next.js App Router pages |
| 39 | +│ ├── api/ # API routes for backend functionality |
| 40 | +│ ├── auth/ # Authentication pages |
| 41 | +│ ├── chats/ # Community forum |
| 42 | +│ ├── product/[id]/ # Product detail pages |
| 43 | +│ ├── profile/ # User profile management |
| 44 | +│ ├── review/ # Review creation and viewing |
| 45 | +│ └── search/ # Main search interface |
| 46 | +├── components/ # Reusable React components |
| 47 | +│ ├── buttons/ # Interactive button components |
| 48 | +│ ├── cards/ # Product and content cards |
| 49 | +│ ├── community/ # Forum and social features |
| 50 | +│ ├── product/ # Product-specific components |
| 51 | +│ ├── profile/ # User profile components |
| 52 | +│ └── search/ # Search interface components |
| 53 | +├── hooks/ # Custom React hooks |
| 54 | +├── lib/ # Utility libraries and configurations |
| 55 | +├── middleware/ # Authentication and request middleware |
| 56 | +├── styles/ # Global styles and color schemes |
| 57 | +├── types/ # TypeScript type definitions |
| 58 | +└── utils/ # Helper functions and utilities |
| 59 | +``` |
| 60 | + |
| 61 | +## Contributing |
| 62 | + |
| 63 | +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: |
| 64 | + |
| 65 | +### Prerequisites |
| 66 | +- Node.js 20+ and pnpm 9+ |
| 67 | + |
| 68 | +### Installation |
| 69 | + |
| 70 | +1. **Clone the repository** |
| 71 | + ```bash |
| 72 | + git clone <-- put http or ssh repo url here --> |
| 73 | + cd shopsmart |
| 74 | + ``` |
| 75 | + |
| 76 | +2. **Install dependencies** |
| 77 | + ```bash |
| 78 | + pnpm install |
| 79 | + ``` |
| 80 | + |
| 81 | +3. **Firebase Setup** |
| 82 | +- Create a Firebase project at [console.firebase.google.com](https://console.firebase.google.com) |
| 83 | +- Enable Firestore Database and Authentication |
| 84 | +- Download service account credentials |
| 85 | +- Configure authentication providers (Email/Password recommended) |
| 86 | + |
| 87 | +4. **Environment Setup** |
| 88 | + Create a `.env.local` file with the following variables: |
| 89 | + ```env |
| 90 | + # Firebase Configuration (Client) |
| 91 | + NEXT_PUBLIC_FIREBASE_API_KEY=your_api_key |
| 92 | + NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=your_project.firebaseapp.com |
| 93 | + NEXT_PUBLIC_FIREBASE_PROJECT_ID=your_project_id |
| 94 | + |
| 95 | + # Firebase Admin Configuration (Server) |
| 96 | + FIREBASE_PROJECT_ID=your_project_id |
| 97 | + FIREBASE_PRIVATE_KEY_ID=your_private_key_id |
| 98 | + FIREBASE_PRIVATE_KEY="-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----\n" |
| 99 | + FIREBASE_CLIENT_EMAIL=firebase-adminsdk-xxxxx@your_project.iam.gserviceaccount.com |
| 100 | + FIREBASE_CLIENT_ID=your_client_id |
| 101 | + ``` |
| 102 | + |
| 103 | +5. **Database Initialization** |
| 104 | + ```bash |
| 105 | + # Seed initial tags for the community system |
| 106 | + node scripts/seedTags.js |
| 107 | + ``` |
| 108 | + |
| 109 | +6. **Start Development Server** |
| 110 | + ```bash |
| 111 | + pnpm dev |
| 112 | + ``` |
| 113 | + |
| 114 | + The application will be available at `http://localhost:3000 |
| 115 | + |
| 116 | +## License |
| 117 | + |
| 118 | +This project is licensed under the AGPLv3 License - see the [LICENSE.md](LICENSE.md) file for details. |
| 119 | + |
| 120 | +--- |
| 121 | + |
| 122 | +**Built with ❤️ by the ShopSherpa Team — [Benjamin Cummings](https://github.com/BnjmnCummings), [Bruce Chen](https://github.com/bsychen), [Freddie Nunn](https://github.com/freddien03) and [Zachary Lazar](https://github.com/zakklzr)** |
0 commit comments