Giter Site home page Giter Site logo

mo7amedaliebaid / piiicks-ecommerce Goto Github PK

View Code? Open in Web Editor NEW
40.0 2.0 10.0 25.33 MB

Flutter ecommerce built with clean architecture and bloc state management.

License: MIT License

Kotlin 0.03% Swift 0.61% Objective-C 0.01% Dart 88.44% CMake 4.47% C++ 5.67% C 0.34% HTML 0.44%
bloc clean-architecture dart ecommerce flutter cubit pagination search dartz equatable

piiicks-ecommerce's Introduction

Piiicks

Piiicks is a Flutter e-commerce app, meticulously crafted with clean architecture and powered by the efficient BLoC state management ensuring scalability, maintainability, and optimal performance. Dive into a seamless coding experience with a sleek interface and robust features designed to elevate the online shopping journey.

Directory Structure.

  • lib
    • main.dart: Entry point of the application.
    • 📂application ──📂blocs/cubits: Houses the BLoC (Business Logic Component) or Cubit classes responsible for managing the application's state.
    • 📂core: Contains core functionalities and utilities shared across the application.
    • 📂configs: Holds configuration files for the project.
    • 📂di: Dependency Injection setup for managing dependencies and services.
    • 📂data: Manages data sources, repositories, and data models.
    • 📂domain: Defines the domain entities, use cases, and interfaces.
    • 📂presentation ──📂screens/widgets: Contains UI components, screens, and widgets for the application.

Features

  1. Clean Architecture: Ensure a modular and scalable architecture for long-term maintainability.
  2. BLoC State Management: Efficient state management for a smooth and predictable user experience.

User Interface

  1. Product Screen: User-friendly display of products for effortless browsing.
  2. Categories: Seamless navigation through various product categories.
  3. Product Details: In-depth information for a comprehensive view of products.
  4. Search Functionality: Robust search feature for quick product discovery.
  5. Search Results: Clear and relevant search results for user convenience.
  6. Home Screen: Engaging showcase of featured products and categories.
  7. Filter Options: Intuitive product filtering options for a customized shopping experience.
  8. Splash Screen: Captivating initial loading screen setting the tone for the app.
  9. Addresses: Effortlessly manage and edit user addresses for smooth order processing.
  10. Pagination: Implement pagination for efficient loading of large sets of data, ensuring a smoother user experience.

User Interaction

  1. Sort Products: Options to sort products based on criteria such as price.
  2. Notifications: Keep users informed with updates on order status and more.

User Management

  1. Login/SignUp: Secure user authentication for a personalized experience.
  2. Shopping Cart: Seamless and intuitive management of selected items before purchase.
  3. User Profile: Dedicated section for managing addresses, viewing order history, and personalizing preferences.
  4. Orders Management: Enable the user to make orders and show different order result screen based on the order status.

Additional Features

  1. Image Caching and Loading Optimization: Utilize the cached_network_image package for efficient loading and caching of network images, enhancing performance.
  2. SVG Support: Leverage the flutter_svg package for supporting SVG images, providing a scalable and crisp user interface.
  3. Data Caching: Use the shared_preferences package for caching small amounts of data, improving the user experience by maintaining certain states.
  4. Authentication and Secure Storage: Implement secure user authentication with the flutter_secure_storage package, ensuring sensitive user data is stored securely.
  5. Stateful UI with Shimmer Effect: Enhance the user interface by incorporating the shimmering effect using the shimmer package, providing a polished loading experience.
  6. Dynamic Page Indicators: Implement dynamic page indicators using the dots_indicator package, providing visual cues for users when navigating through different screens.
  7. HTTP Requests and API Integration: Leverage the http package for making HTTP requests and seamlessly integrate with external APIs for fetching and updating data.
  8. Network Connectivity Check: Utilize the internet_connection_checker package to ensure a smooth user experience by checking and handling network connectivity.
  9. Dependency Injection: Leverage the get_it package for efficient dependency injection, improving code maintainability and managing dependencies effectively.
  10. Functional Programming Principles: Explore and implement functional programming principles from the dartz package, enhancing code clarity and error handling.
  11. Share Products: Enable users to share product details using the share_plus package for seamless sharing on social media and other platforms.
  12. Contact Us Screen with URL Launcher: Utilize the url_launcher package to open the contact us screen, allowing users to interact with external links such as emails or phone numbers.
  13. Wishlist with Get Storage: Implement a wishlist feature using the get_storage package to save and retrieve products, providing users with a personalized wishlist experience.
  14. Product Sharing with Screenshot: Allow users to share product details with a screenshot using the screenshot package, enhancing the sharing capabilities of your app.

Dependencies

environment:
  sdk: '>=3.0.5 <4.0.0'

dependencies:
  flutter:
    sdk: flutter
      # the last versions.
  equatable:
      # Package for handling value equality without explicit overrides
  dartz:
      # Functional programming library for Dart
  shared_preferences:
      # Plugin for reading and writing key-value pairs to persistent storage
  http:
      # Package for making HTTP requests
  internet_connection_checker:
      # Library for checking internet connectivity
  flutter_bloc:
      # State management library for Flutter applications
  get_it:
      # Simple service locator for Dart and Flutter projects
  shimmer:
      # Package for adding shimmering effect to Flutter applications
  cached_network_image:
      # Library for loading and caching network images
  flutter_svg:
      # Library for rendering SVG files in Flutter applications
  dots_indicator:
      # Customizable dots indicator for PageView in Flutter
  flutter_secure_storage:
      # Secure storage plugin for Flutter
  photo_view:
      # Package for displaying images in Flutter with zooming and panning capabilities
  dotted_border:
      # Package for creating dotted borders in Flutter
  flutter_local_notifications:
      # Package for displaying local notifications in Flutter applications
  share_plus:
      # Package for sharing content on social media and more
  get_storage: 
      # Persistent storage for Flutter, allowing key-value pair storage
  screenshot:
      # Flutter plugin for taking screenshots of widgets
  path_provider:
      # Plugin for interacting with the file system, including getting the app's temporary and application support directories
  url_launcher:
      # Flutter plugin for launching URLs, emails, making phone calls, and sending SMS.
  flutter_phoenix:
      # Easily restart your application from scratch, losing any previous state.

Download App

Screens.

Done:

  • Products.
  • Categories.
  • Product Details.
  • Search.
  • Search Result.
  • Home.
  • Filter.
  • Login.
  • SignUp.
  • Splash.
  • Cart.
  • Profile.
  • Adresses.
  • Add/Edit Adress.
  • Sort Products.
  • Terms & Conditions.
  • Wishlist.
  • Contact Us.
  • Checkout.
  • Order Success.
  • Order Failure.
  • Orders.
  • Notifications.

For more screen shots Here

ToDo:

  • Payment.

Demos.

login.mp4
orders-cart.mp4
categories-notifications-profile-filter.mp4
search.mp4
  • Usually this Case will Occur if you open the app for the first time without internet connection. If its not the first time the app will use cached data.
error-phoenix-refresh.mp4

Getting Started

  1. Clone the repository.
  2. Navigate to the project directory.
  3. Run flutter pub get to fetch the dependencies.
  4. Open the project in your preferred Flutter IDE.
  5. Run the app on your desired emulator or physical device.

piiicks-ecommerce's People

Contributors

mo7amedaliebaid avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

piiicks-ecommerce's Issues

Todo

I am working on
1- some defaults related to user experience.
2- order details and orders screen. Done
3- notificaions. Done
4- minimize and refactor the code.

Additional Screens

I won't use these screens in my app, but i like to share it anyway.

Screenshot from 2023-12-04 20-21-22
Screenshot from 2023-12-04 20-21-33
Screenshot from 2023-12-04 20-21-37
Screenshot from 2023-12-04 20-22-00
Screenshot from 2023-12-04 20-22-03
Screenshot from 2023-12-04 20-22-12
cd29557591)
Screenshot from 2023-12-04 20-22-08

Todo

1- remove the containers above textfields and
customize its outlined border.
2- remove the future.delayed .method in sign up and log in screens.
3- handle add adress tap in a better way.
4- increase time of splash screen.
5- refactor and minimize code in profile,details,auth screens.
5- handle cart bug=> shows the payment details without products list if user not logged and restarted the app without Internet.
6- categories cache in release apk.
7- record a more detailed demo video.
8- build new apk.
9- add project in my cv and portfolio.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.