This Flutter application is a solution for the Libsy Technical Assignment. It implements a feature to display user orders, divided into Purchases and Sales, retrieved from a provided API. The app adheres to the Libsy design language while ensuring functional and visually appealing interfaces.
- Flutter: version 3.24.5
- Dart
- flutter_dotenv : For managing environment variables (like api token) securely.
- http : For making HTTP requests to fetch data from APIs.
- Flutter Bloc : For propper state management handling
- Fast Cahced Network Image : For efficient image caching and loading.
- Path Provider : For accessing file system paths like temporary directories.
- Equatable : For simplifying equality comparisons in Dart objects.
- Flutter Screenutil : For building responsive layouts across devices.
- smooth page indicator : For creating smooth and stylish page indicators.
- Order Listing: Displays user purchases and sales in separate sections.
- Includes item details such as name, buyer/seller information, and order status.
- Order Details: Allows users to view more detailed information about a specific order.
- Dynamic API Integration: Fetches data from the provided API, with proper handling of loading states.
- Intuitive UI Design: Follows modern app design principles inspired by libsy.
- VS code
- Android Studio
- Get the apk of the app from Drive
To get a local copy up and running, follow these instructions.
Prerequisites
- Flutter SDK: Ensure Flutter is installed on your system. Follow Flutter installation guide
- Android Studio or Visual Studio Code for development and testing.
- clone the repository
- Ensure your device's Intrenet are enabled.
- Define the api key at the .env file
- and run the app on any plugged android physical device or emulator.
# Clone the repository
git clone https://github.com/Mohamed-said-salah/libsy_technical_assignment_app_for_viewing_orders_page_list.git
cd libsy_technical_assignment
# Install dependencies
flutter pub get
# Run the application on an physical device or emulator
flutter run
# Build the APK
flutter build apk --release
.
└── lib/
├── api/
│ └── order_api.dart
├── core/
│ ├── router/...
│ └── theme/
│ ├── app_colors.dart
│ └── text_styles.dart
├── models/
│ ├── responses/
│ │ └── orders_response.dart
│ ├── item.dart
│ ├── order.dart
│ ├── profile.dart
│ └── sale.dart
├── logic/
│ └── cubit/
│ ├── orders_cubit.dart
│ └── orders_state.dart
├── views/
│ ├── screens/
│ │ ├── order_details_screen.dart
│ │ ├── orders_screen.dart
│ │ └── splash_screen.dart
│ └── widgets/
│ ├── avatars/...
│ ├── components/...
│ ├── shimmers/...
│ └── tiles/...
└── main.dart