A modern Flutter-based e-commerce application showcasing authentic Indonesian batik products. Built with Firebase backend integration, this app provides a seamless shopping experience for traditional batik clothing and accessories.
Lynel App is a comprehensive mobile e-commerce platform dedicated to promoting Indonesian cultural heritage through traditional batik products. The application features a beautiful Nusantara-inspired design with earth-tone colors and provides users with an intuitive shopping experience for authentic batik items.
- Product Catalog: Browse extensive collection of batik products
- Product Details: Detailed product information with high-quality images
- Shopping Cart: Add, remove, and manage items with quantity controls
- Checkout Process: Streamlined purchase flow with payment confirmation
- Category Filtering: Filter products by type, origin, and pattern
- Firebase Authentication: Secure user registration and login
- Profile Management: User account management and preferences
- Session Management: Persistent login sessions
- Product Management: Add, edit, and remove products
- Inventory Control: Manage stock levels and product availability
- Order Management: Track and manage customer orders
- Nusantara Theme: Traditional Indonesian color palette
- Responsive Design: Optimized for various screen sizes
- Material Design: Modern UI following Material Design principles
- Custom Typography: Google Fonts integration for enhanced readability
- Firebase Integration: Real-time database and cloud storage
- Image Optimization: Smart image URL handling and caching
- State Management: Efficient app state management
- Cross-Platform: iOS and Android compatibility
- Flutter: ^3.8.1 - Cross-platform mobile development framework
- Dart: Programming language for Flutter development
- Firebase Core: ^3.15.2 - Firebase SDK initialization
- Firebase Auth: ^5.7.0 - User authentication
- Cloud Firestore: ^5.6.12 - NoSQL database
- Firebase Storage: ^12.4.10 - File storage and management
- Google Fonts: ^6.1.0 - Typography enhancement
- Cupertino Icons: ^1.0.8 - iOS-style icons
- Material Design: Built-in Flutter design system
- HTTP: ^1.1.0 - Network requests
- Shared Preferences: ^2.2.2 - Local data persistence
- Flutter SDK (^3.8.1)
- Dart SDK
- Android Studio / VS Code
- Firebase project setup
- Android/iOS development environment
-
Clone the repository
git clone https://github.com/Pfftz/watra_nusa.git cd watra_nusa -
Install dependencies
flutter pub get
-
Firebase Setup
- Create a new Firebase project at Firebase Console
- Enable Authentication, Firestore, and Storage
- Download
google-services.jsonfor Android and place inandroid/app/ - Download
GoogleService-Info.plistfor iOS and place inios/Runner/ - Configure Firebase options in
lib/firebase_options.dart
-
Run the application
flutter run
The app requires the following Firebase services:
- Authentication: Email/password authentication
- Firestore Database: Product and user data storage
- Firebase Storage: Product image storage
Ensure your Firebase security rules are properly configured for production use.
lib/
โโโ main.dart # App entry point
โโโ firebase_options.dart # Firebase configuration
โโโ pages/ # Application screens
โ โโโ home_page.dart # Main product showcase
โ โโโ login_page.dart # User authentication
โ โโโ register_page.dart # User registration
โ โโโ product_list_page.dart # Product catalog
โ โโโ detail_produk_page.dart # Product details
โ โโโ cart_page.dart # Shopping cart
โ โโโ checkout_page.dart # Checkout process
โ โโโ konfirmasi_pembayaran_page.dart # Payment confirmation
โ โโโ admin_panel_page.dart # Admin dashboard
โ โโโ image_debug_page.dart # Image testing utility
โ โโโ theme.dart # App theme configuration
โโโ services/ # Business logic
โ โโโ auth_service.dart # Authentication service
โ โโโ product_service.dart # Product management
โ โโโ cart_service.dart # Shopping cart logic
โ โโโ database_seeder.dart # Initial data population
โโโ utils/ # Utility functions
โ โโโ image_url_helper.dart # Image URL processing
โโโ widgets/ # Reusable components
โโโ cart_icon.dart # Shopping cart icon widget
The app follows a Nusantara-inspired design with the following color palette:
- Primary: Earth Brown (
#8B4513) - Traditional earth tones - Secondary: Golden Amber (
#D4A574) - Warm accents - Background: Nusantara Beige (
#FDF7F0) - Soft, warm background - Surface: Warm Cream (
#FAF0E6) - Card and surface colors - Accent: Batik Indigo (
#2E4A62) - Traditional batik blues
- Ensure Flutter is properly installed and configured
- Set up Firebase project with required services
- Configure platform-specific settings for Android and iOS
Configure Firestore security rules for proper data access control:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
// Products collection - read access for all, write for admin only
match /products/{productId} {
allow read: if true;
allow write: if request.auth != null &&
resource.data.adminEmail == request.auth.token.email;
}
// User data - authenticated users only
match /users/{userId} {
allow read, write: if request.auth != null &&
request.auth.uid == userId;
}
}
}flutter build apk --release
# or for app bundle
flutter build appbundle --releaseflutter build ios --release- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Indonesian batik artisans and cultural heritage
- Flutter and Firebase teams for excellent development tools
- Traditional Nusantara design inspiration
- Open source community contributions
For support and questions:
- Create an issue in the GitHub repository
- Contact: [Your Contact Information]
Lynel App - Preserving Indonesian Heritage Through Digital Innovation ๐ฎ๐ฉ