- Project Overview
- Resources
- Features
- App Screenshots
- Technical Specifications
- Installation
- Running the App
- Testing
LRL Shopping is a Flutter-based mobile application designed to facilitate product browsing, stock checking, and order placement in an e-commerce environment. The app integrates with a backend API to manage product inventory, user authentication, and order checkout.
- API Base URL:
https://demo.limerickbd.com/backend/public/api/
- Auth API: Used for login and logout (
/login
,/logout
) - Product API: Retrieves product listings with stock details (
/fg-with-stock
) - Dio: Handles API requests with error handling
- Shared Preferences: Stores authentication tokens securely for user sessions
- User Login: Users can log in with their credentials.
- Token Management: The app securely stores the authentication token after a successful login.
- Logout Functionality: The app provides a logout feature that clears stored user data and tokens.
- Retrieve Products: The app fetches products and their stock details.
- Search Functionality: Users can search for products by name.
- Stock & Pricing Details: The product list includes name, stock quantity, price, and master pack details.
- Quantity Selection: Users can increase/decrease the quantity of selected products.
- Review Selected Products: The checkout page displays the selected products, their quantities, and total prices.
- Stock Validation: The app ensures that selected products are available before proceeding to checkout.
- Remove & Modify Products: Users can modify product quantities or remove items from the checkout list.
- Submit Order: A placeholder function simulates order placement.
<img src="/assets/screenshots/settings-darkmode.png" width="200" />
- Clean Architecture: The app follows a layered structure:
- Data Layer: Manages API calls and data sources.
- Domain Layer: Contains business logic and use cases.
- Presentation Layer: Manages UI and user interactions.
- BLoC (Business Logic Component): Used for managing authentication, product listing, and checkout state.
- Dio: Used for handling API requests and error handling.
- Pretty Dio Logger: Provides API request/response logging in debug mode.
- Bearer Token Authentication: The app securely stores and passes the authentication token in API requests.
- Shared Preferences: Stores the token persistently for maintaining user sessions.
- Navigator 2.0: Manages screen transitions efficiently.
- Easy Localization: Supports multi-language UI, allowing users to switch languages.
- Language Support: Currently supports English and Bengali.
- GetIt: Manages service dependencies, ensuring modular and scalable code.
- Connectivity Package: Checks internet connectivity before making API requests.
- Error Handling: Provides clear error messages for API failures and network issues.
- Open the project in Android Studio, where launch configurations for different flavors (development and production) are saved.
- Select the appropriate configuration and run the app.
- Also, select Run All Tests to execute all unit and widget tests.
- For Development Flavor:
flutter run --flavor development -t lib/app/env/main_development.dart
- For Production Flavor:
flutter run --flavor production -t lib/app/env/main_production.dart
- Execute all tests:
flutter test
-
For Development Build:
flutter build apk --flavor development -t lib/app/env/main_development.dart
-
For Production Build:
flutter build apk --flavor production -t lib/app/env/main_production.dart
- For Play Store Upload:
flutter build appbundle --flavor production -t lib/app/env/main_production.dart
- For Production Build:
flutter build apk --flavor production -t lib/app/env/main_production.dart
git clone https://github.com/your-username/lrl-shopping.git
https://drive.google.com/drive/folders/101FnCB3eUsQDlCqqZJZgYSlSBE-zhiSF?usp=sharing