Skip to content

guerezi/csv_processing_flutter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Product Management App (Flutter)

A modern Flutter application for managing products, featuring CSV uploads, real-time progress tracking, and filtering capabilities. Built with Clean Architecture to ensure scalability and testability.

Getting Started

Prerequisites

  • Flutter SDK (v3.0+)
  • Dart SDK
  • Android Studio / Xcode (for mobile emulation)

Installation & Running

  1. Navigate to the app directory:

    cd app
  2. Install dependencies:

    flutter pub get
  3. Run the application:

    flutter run
  4. Run tests:

    flutter test

Architecture

The application follows Clean Architecture principles, dividing the codebase into three main layers: Domain, Data, and App (Presentation).

Folder Structure

app/lib/
├── app/               # Presentation Layer (UI & State Management)
│   ├── pages/         # Screen widgets and their controllers (e.g., HomeView, HomeController)
│   ├── theme/         # App styling, colors, and text styles
│   └── widgets/       # Reusable UI components
├── data/              # Data Layer (Implementation)
│   └── repositories/  # Concrete implementations of domain repositories
│   └── errors/        # Error handling classes (Failure, ServerFailure, etc.)
├── domain/            # Domain Layer (Business Logic)
│   ├── entities/      # Pure Dart objects representing business entities
│   ├── repositories/  # Abstract interfaces for repositories
│   ├── services/      # Abstract interfaces for services (e.g., FilePicker)
│   └── usecases/      # Business logic units (e.g., GetProducts, UploadProducts)
│   └── errors/        # Error handling abstraction
├── injection.dart     # Dependency Injection setup (GetIt)
└── main.dart          # App entry point

Features

  • CSV Upload: Upload product data via CSV files with real-time progress tracking.
  • Product Listing: View products in a responsive table layout.
  • Filtering:
    • Search by product name.
    • Sort by Name, Price, or Expiration Date.
    • Toggle sort direction (Ascending/Descending).
  • Error Handling: Error management with user-friendly UI feedback for network and server issues.
  • Clean UI: Modern, gradient-based design with responsive components.

Tech Stack

  • Framework: Flutter
  • State Management: ValueNotifier / ChangeNotifier
  • Dependency Injection: get_it
  • Networking: dio
  • Testing: flutter_test, mockito

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages