Welcome to the Library E-Commerce App, a Flutter-based mobile application designed to provide a seamless shopping experience for library-related products. This app was developed as part of my graduation project at the University of Computer Science, where I served as the lead developer alongside one contributor. Our team consisted of 7 members, including designers and backend developers, as the project also included a website.
The app achieved an Excellent grade, showcasing its robust architecture, user-friendly design, and extensive features.
- Splash Screen: A visually appealing introduction to the app.
- Onboarding Screens: Guided tour for new users.
- Authentication: Secure login and registration using OTP and social auth.
- Categories: Browse products by category.
- Add to Cart: Add and manage items in the shopping cart.
- Seamless Browsing: Smooth and intuitive navigation.
- Responsive Design: Optimized for various screen sizes.
- User-Friendly UX/UI: Designed with a focus on usability and aesthetics.
- Additional E-Commerce Features: Some features are designed but not fully implemented (e.g., checkout, wishlist).
Splash Screen | Onboarding | Authentication | Categories |
---|---|---|---|
![]() |
![]() |
![]() |
![]() |
Cart | Product Details | Profile |
---|---|---|
![]() |
![]() |
![]() |
The app leverages the following Flutter packages:
- cupertino_icons: ^1.0.2
- test: ^1.16.0 (for unit testing)
- bloc_test: ^10.0.0 (for testing BLoCs)
- flutter_launcher_icons: (for custom app icons)
- shared_preferences: ^2.2.2 (for local storage)
- bloc: ^9.0.0 (state management)
- flutter_bloc: ^9.0.0 (BLoC integration with Flutter)
- flutter_svg: ^2.0.10+1 (for SVG images)
- dio: ^5.4.2+1 (for HTTP requests)
- flutter_screenutil: ^5.9.0 (for responsive design)
- auth_buttons: ^3.0.2 (for social auth buttons)
- smooth_page_indicator: ^1.1.0 (for onboarding indicators)
- country_code_picker: ^3.0.0 (for country code selection)
- pin_code_fields: ^8.0.1 (for OTP input)
- device_preview: ^1.1.0 (for testing responsive designs)
- MVVM (Model-View-ViewModel): Used for clean separation of concerns and maintainability.
- The app's design was created by one of our talented team members, ensuring a visually appealing and user-friendly interface.
- Lead Developer: [Yousef Khalaf]
- Contributor: [Yousef Ayman]
To run this project locally, follow these steps:
-
Clone the repository:
git clone https://github.com/yousefkhalaf0/Distribution-Company.git cd Distribution-Company
-
Install dependencies:
flutter pub get
-
Run the app:
flutter run
To run unit tests:
flutter test
To run BLoC tests:
flutter test --test-randomize-ordering-seed=random
This project was a collaborative effort, and I’m proud to have led the development of the mobile app. Special thanks to my team members for their contributions and support.
This project is licensed under the MIT License. See the LICENSE file for details.
Thank you for checking out our Library E-Commerce App! 🚀