An advanced, feature-rich Sneaker E-commerce Application built with Flutter, Firebase, GetX, and Riverpod. Designed to provide a seamless shopping experience with features like product discovery, secure user authentication, real-time data sync, and a modern, responsive UI.
- 🔐 Robust Authentication: Secure sign-up/login using Firebase Auth with Email and social providers.
- 👥 State Management: Efficient state handling using a hybrid approach with GetX (for navigation/controllers) and Riverpod.
- 🛍️ Product Catalog: Dynamic product listing with category filtering and search capabilities.
- 🎥 Rich Animations: Engaging user interface with Lottie animations and carousel sliders.
- 📡 Connectivity Status: Real-time network monitoring to handle offline states gracefully using
connectivity_plus. - 🎨 Modern UI/UX: System-aware Light and Dark modes with a polished design system.
- 💾 Local Storage: Persistent user preferences using Shared Preferences.
- 📍 Location Services: Integrated Geolocation features for delivery or store location services.
- ☁️ Cloud Integration: Powered by Firebase Firestore for real-time database and Firebase Storage for asset management.
- Framework: Flutter (Dart)
- State Management: GetX, Riverpod
- Navigation: GetX Routes
- UI Components: Carousel Slider, Motion Toast, Rating Bar, Badges
- Icons: Iconsax, Cupertino Icons
- Fonts: Google Fonts
- Database: Firebase Cloud Firestore
- Authentication: Firebase Auth
- Storage: Firebase Storage
- HTTP Client:
httppackage - Environment:
flutter_dotenv
Follow these steps to set up the project locally.
- Flutter SDK (v3.0+)
- Dart SDK
- Firebase Project Credentials
-
Clone the repository:
git clone https://github.com/sakilalakmal/shoe_app_assigment.git cd shoe_app_assigment -
Install dependencies:
flutter pub get
-
Configure Environment Variables: Create a
.envfile in the root directory and add your keys (if applicable):# Example API_KEY=your_api_key
Note: Ensure your
google-services.json(Android) andGoogleService-Info.plist(iOS) are placed in the respective directories for Firebase configuration. -
Run the Application:
flutter run
shoe_app_assigment/
├── lib/
│ ├── controllers/ # GetX Controllers for business logic
│ ├── core/ # Core configurations (e.g., Firebase Init)
│ ├── model/ # Data models
│ ├── provider/ # Riverpod providers
│ ├── service/ # API and external service calls
│ ├── utils/ # Utilities, themes, and constants
│ ├── views/ # UI Screens and Widgets
│ └── main.dart # Entry point
├── assets/ # Images, animations, and icons
├── android/ # Android native code
├── ios/ # iOS native code
└── pubspec.yaml # Dependencies and configuration
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the project
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is proprietary and confidential.
Made with ❤️ by Sakila Lakmal