Skip to content

📝 Smart Notes is a Flutter project developed for learning purposes, providing a simple interface for creating and viewing notes, following Clean Architecture principles.

Notifications You must be signed in to change notification settings

irbp/smart-notes

Repository files navigation

Smart Notes Logo

Smart Notes 📝

Smart Notes is a Flutter project developed for learning purposes. It allows users to create and view notes through a list-based interface. The app also features a Dark Mode for enhanced user experience.

Architecture 🏛️

The project follows the principles of Clean Architecture, separating it into three layers: domain, data, and presentation.

Domain Layer 🧠

The domain layer contains the core business logic of the application. It includes the following components:

  • Entities: Define the data models and business entities of the application.
  • Use Cases: Implement the application's business rules and orchestrate data flow.

Data Layer 💾

The data layer is responsible for handling data persistence and storage. It includes the following components:

  • Repositories: Provide an abstraction for data access and define the contract for interacting with data sources.
  • Data Sources: Implement the specific data storage mechanisms, such as local databases or APIs.
  • Models: Define the data models used for serialization and deserialization.

Presentation Layer 🖥️

The presentation layer manages the user interface and user interactions. It includes the following components:

  • Pages: Display the UI to the user and handle user input.
  • BLoCs: Manage the state and business logic for each screen using the BLoC pattern.
  • Views: Reusable UI components used across screens.

Packages Used 📦

The following packages were used in this project:

  • mocktail: A package for mocking dependencies during unit tests.
  • hive: A lightweight and fast key-value database for data persistence.
  • bloc and flutter_bloc: Packages for state management using the BLoC pattern.
  • bloc_test: A package for testing BLoCs and their interactions.
  • get_it: A package for dependency injection and service location.

Installation ⚙️

  1. Clone the repository:
git clone https://github.com/irbp/smart-notes.git
  1. Navigate to the project directory:
cd smart-notes
  1. Install the dependencies:
flutter pub get
  1. Run the app:
flutter run

Testing 🧪

To run the unit tests, use the following command:

flutter test

Contributing 🤝

Contributions are welcome! If you find any bugs or have suggestions for improvements, please open an issue or submit a pull request.

About

📝 Smart Notes is a Flutter project developed for learning purposes, providing a simple interface for creating and viewing notes, following Clean Architecture principles.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published