TODO APP - Project Structure

The project follows a clean architecture pattern, with a separation of concerns across different layers. Below is a brief overview of the project's folder structure:

.
├── .dart_tool/                      # Dart tool configuration files
├── .idea/                           # Project-specific settings for IntelliJ-based IDEs
├── android/                         # Android-specific configuration files
├── build/                           # Auto-generated files during the build process
├── ios/                             # iOS-specific configuration files
├── lib/                             # Main project source code
│   ├── data/                        # Data layer
│   │   ├── data_sources/            # Local or remote data sources
│   │   │   └── local_data_source.dart
│   │   ├── models/                  # Data models
│   │   │   └── todo_model.dart      # Todo Model
│   │   └── repositories/            # Repository implementations
│   │       └── todo_repository_impl.dart
│   ├── domain/                      # Domain layer
│   │   ├── entities/                # Core entities
│   │   │   └── todo_entity.dart
│   │   ├── repository/              # Repository interfaces
│   │   │   └── todo_repository.dart
│   │   └── use_case/                # Use cases
│   │       ├── add_todo_use_case.dart
│   │       ├── delete_todo_use_case.dart
│   │       ├── get_todos_use_case.dart
│   │       └── update_todo_use_case.dart
│   ├── presentation/                # Presentation layer
│   │   ├── bloc/                    # Business Logic Component (BLoC) files
│   │   │   ├── todo_bloc.dart
│   │   │   ├── todo_event.dart
│   │   │   └── todo_state.dart
│   │   ├── screens/                 # UI screens
│   │   │   └── todo_screen.dart
│   │   └── widgets/                 # Reusable UI components
│   │       ├── todo_item.dart
│   │       └── main.dart            # Main entry point of the application
├── linux/                           # Linux-specific configuration files
├── macos/                           # macOS-specific configuration files
├── web/                             # Web-specific configuration files
└── windows/                         # Windows-specific configuration files

Description of Main Folders

  • data: Contains the data sources, models, and repository implementations.
  • domain: Defines the core business logic with entities, repository interfaces, and use cases.
  • presentation: Manages the user interface with BLoC for state management, screens, and widgets.

Additional Notes

  • android, ios, linux, macos, web, windows: Platform-specific configuration and setup.
  • build: Auto-generated files during the build process.
  • .dart_tool, .idea: Configuration and settings files that are managed by Dart and your IDE, respectively.