Skip to content

hpbytes/icecream_app

Repository files navigation

🍦 VEE-ONE Ice Creams

A modern, high-performance React Native ice cream e-commerce app built with Expo and Firebase.

Version React Native Expo Firebase Hermes


πŸ“± Features

Customer Features

  • πŸ›οΈ Product Catalog: Browse 12 delicious ice cream flavors
  • ❀️ Favorites: Save favorite ice creams with persistent storage
  • πŸ›’ Shopping Cart: Add items with quantity management
  • πŸ“¦ Order Tracking: View order history and status
  • 🏠 Address Management: Save multiple delivery addresses
  • πŸ” Authentication: Email/password login with Firebase Auth
  • 🎨 Beautiful UI: Smooth animations with React Native Reanimated

Admin Features

  • πŸ”§ Product Management: Add, edit, delete products
  • πŸ“Š Inventory Control: Update stock and pricing
  • πŸ–ΌοΈ Image Upload: Upload product images to Firebase Storage
  • πŸ‘₯ Order Management: View and manage customer orders

πŸš€ Performance Highlights

  • ⚑ <2s Startup Time - Powered by Hermes engine
  • πŸ“‰ Low Memory Usage - Optimized React contexts
  • πŸ”„ Smooth Scrolling - FlatList performance tuning
  • πŸ’Ύ Offline Support - AsyncStorage for favorites
  • πŸ”₯ Optimized Firestore - Query limits and caching

See OPTIMIZATION_REPORT.md for detailed metrics.


πŸ› οΈ Tech Stack

Category Technology
Framework React Native (Expo)
Language JavaScript
Backend Firebase (Auth, Firestore, Storage)
Navigation React Navigation v7
State Management React Context API
Animations React Native Reanimated v4
Icons FontAwesome, Expo Vector Icons
Storage AsyncStorage
Engine Hermes (enabled)

πŸ“‚ Project Structure

icecream_app/
β”œβ”€β”€ app/
β”‚   β”œβ”€β”€ components/       # Reusable UI components
β”‚   β”‚   β”œβ”€β”€ BrandHeader.jsx
β”‚   β”‚   └── delivery.jsx
β”‚   β”œβ”€β”€ config/           # Firebase configuration
β”‚   β”‚   └── firebaseConfig.js
β”‚   β”œβ”€β”€ constants/        # App constants
β”‚   β”‚   β”œβ”€β”€ images.js
β”‚   β”‚   └── theme.js
β”‚   β”œβ”€β”€ contexts/         # React contexts
β”‚   β”‚   β”œβ”€β”€ AuthContext.js
β”‚   β”‚   β”œβ”€β”€ CartContext.js
β”‚   β”‚   β”œβ”€β”€ FavoritesContext.js
β”‚   β”‚   └── ProductsContext.js
β”‚   β”œβ”€β”€ screens/          # App screens
β”‚   β”‚   β”œβ”€β”€ home.jsx
β”‚   β”‚   β”œβ”€β”€ screen.jsx (shop)
β”‚   β”‚   β”œβ”€β”€ cart.js
β”‚   β”‚   β”œβ”€β”€ checkout.jsx
β”‚   β”‚   β”œβ”€β”€ orderHistory.jsx
β”‚   β”‚   β”œβ”€β”€ profile.jsx
β”‚   β”‚   └── admin.jsx
β”‚   β”œβ”€β”€ services/         # Firebase services
β”‚   β”‚   β”œβ”€β”€ firestoreService.js
β”‚   β”‚   └── storageService.js
β”‚   └── App.js            # Main app component
β”œβ”€β”€ assets/               # Images and fonts
β”œβ”€β”€ android/              # Android native code
β”œβ”€β”€ firestore.rules       # Firestore security rules
β”œβ”€β”€ storage.rules         # Storage security rules
β”œβ”€β”€ app.json              # Expo configuration
└── package.json          # Dependencies

πŸ”§ Installation

Prerequisites

  • Node.js 18+
  • npm or yarn
  • Expo CLI
  • Android Studio (for Android)
  • Xcode (for iOS, macOS only)

Setup Steps

  1. Clone the repository

    git clone <repository-url>
    cd icecream_app
  2. Install dependencies

    npm install
  3. Configure Firebase

    • Create a Firebase project at console.firebase.google.com
    • Download google-services.json (Android)
    • Update app/config/firebaseConfig.js with your credentials
  4. Deploy Firebase rules

    # Deploy Firestore rules
    firebase deploy --only firestore:rules
    
    # Deploy Storage rules
    firebase deploy --only storage:rules
  5. Start the app

    npx expo start

πŸ“± Running the App

Development Mode

# Start development server
npx expo start

# Run on Android
npx expo start --android

# Run on iOS
npx expo start --ios

# Clear cache
npx expo start --clear

Production Build

See BUILD_GUIDE.md for detailed build instructions.


🎨 App Screens

  1. Get Started - Onboarding screen
  2. Login/Register - Authentication
  3. Shop - Browse ice cream products
  4. Product Details - View individual product
  5. Cart - Review cart items
  6. Checkout - Enter delivery details
  7. Order History - View past orders
  8. Profile - User settings
  9. Admin Panel - Product management (admin only)

πŸ”‘ Admin Access

Admin Email: hariprakashpc@gmail.com

Admin users can:

  • Access admin panel from profile
  • Add/edit/delete products
  • Upload product images
  • Manage inventory

πŸ§ͺ Testing

Manual Testing Checklist

  • User registration and login
  • Browse all 12 ice cream products
  • Add items to cart (various quantities)
  • Add/remove favorites
  • Place order
  • View order history
  • Admin: Add new product
  • Admin: Update product price
  • Admin: Delete product

Performance Testing

# Test with production settings
npx expo start --no-dev --minify

# Profile Android performance
adb shell dumpsys gfxinfo com.icecream.icecreamapp

πŸ“Š Performance Benchmarks

Metric Target Actual Status
Startup Time <2s ~1.5s βœ…
Memory Usage <100 MB ~80 MB βœ…
Scroll FPS 60 60 βœ…
APK Size <40 MB ~35 MB βœ…

πŸ” Security

  • βœ… Firebase Security Rules configured
  • βœ… Admin access restricted
  • βœ… User authentication required
  • βœ… Input validation on all forms
  • βœ… No sensitive data in logs
  • βœ… API keys in environment variables

πŸ› Known Issues

No critical issues. See GitHub Issues for feature requests.


πŸ“ˆ Optimization Summary

This app has been fully optimized for production:

βœ… Code Quality

  • All console.log statements removed
  • useCallback/useMemo implemented
  • Proper cleanup on unmount

βœ… Performance

  • Hermes engine enabled
  • FlatList optimizations
  • Query limits on Firestore
  • Image optimization strategy

βœ… Build

  • Proguard minification
  • Resource shrinking
  • Optimized dependencies

See OPTIMIZATION_REPORT.md for details.


🀝 Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/AmazingFeature)
  3. Commit changes (git commit -m 'Add some AmazingFeature')
  4. Push to branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

πŸ“„ License

This project is private and proprietary.


πŸ™ Acknowledgments

  • Firebase for backend services
  • Expo for React Native framework
  • React Navigation for routing
  • React Native Reanimated for animations

πŸ“ž Support

For issues or questions:


πŸ—ΊοΈ Roadmap

Planned Features

  • Payment gateway integration (Razorpay/Stripe)
  • Push notifications for order updates
  • Multi-language support
  • Dark mode theme
  • Customer reviews and ratings
  • Loyalty points program

πŸ“ Changelog

Version 1.0.0 (October 26, 2025)

  • βœ… Initial release
  • βœ… 12 ice cream products
  • βœ… Full e-commerce functionality
  • βœ… Admin panel
  • βœ… Performance optimizations
  • βœ… Production-ready build

Made with ❀️ for ice cream lovers

Status: βœ… Production Ready
Version: 1.0.0
Last Updated: October 26, 2025

About

for a company vee One ice cream app

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors