PrepCart is a mobile application to streamline your grocery shopping by managing your shopping list and finding discounts from local store catalogs.
- Frontend: React Native with Expo
- Language: TypeScript
- Backend: Firebase (Authentication, Cloud Functions, Cloud Storage)
-
Clone & Install:
git clone https://github.com/blagoySimandov/prepcart.git cd prepcartv2 npm install -
Configure Firebase:
- Create
firebaseConfig.jsin the root with your Firebase project's configuration. - Add your
google-services.json(Android) andGoogleService-Info.plist(iOS) files.
- Create
-
Run the App:
npx expo start
The project is organized into several key directories:
app/: Contains all the screens and navigation logic, following the Expo Router file-based routing convention.(tabs)/: Defines the main tab navigation for the app.auth/: Authentication screens (Login).
assets/: Static assets like images, fonts, and html files.components/: Reusable UI components used across the application.constants/: Global constants like color schemes.hooks/: Custom React hooks.src/: Core application logic, services, and type definitions.auth/: Authentication services.catalog-search/: Logic for the catalog search feature.discounts/: Services for handling discounts.user/: Services and managers for user data and shopping lists.
under-development/: Features that are currently being built and are not yet integrated into the main application flow.
The PDF viewer loads brochures directly from Firebase Storage. For this to work in the web-based PDF.js viewer, you need to configure Cross-Origin Resource Sharing (CORS) on your Firebase Storage bucket.