MyNotes is a feature-rich, cross-platform note-taking application built with Flutter. It helps you capture your ideas, manage your tasks, and keep everything organized in folders. It also provides advanced features such as exporting your notes as PDFs, pinning important items, and seamless Google Drive backup.
- Rich Note Management: Create, edit, and manage your notes effortlessly.
- Tasks & Checklists: Stay on top of your to-dos with built-in task management.
- Folder Organization: Categorize your notes and tasks into folders for a clutter-free experience.
- Pin Important Items: Pin your most crucial notes and tasks to the top for quick access.
- Search Functionality: Quickly find what you are looking for with the integrated search feature.
- Trash / Recycle Bin: Accidentally deleted something? Recover your notes and tasks from the Trash before they are permanently removed.
- Export & Share: Easily export your notes as PDFs or images, or print them directly from the app.
- Cross-Platform Support: Enjoy a seamless experience across Mobile, Web, and Desktop environments (features responsive layouts like sidebars and desktop views).
- Modern Architecture: Built using a feature-first, clean architecture approach with Riverpod for robust state management.
- Flutter SDK (version ^3.12.2 or higher)
- Dart SDK
- An IDE (like Android Studio, VS Code, or IntelliJ IDEA)
-
Clone the repository:
git clone https://github.com/yourusername/mynotes.git cd mynotes -
Install dependencies:
flutter pub get
-
Run the application:
flutter run
This project follows a feature-driven, clean architecture approach to maintain scalability and readability. The primary directories under lib/ are:
app/: Contains core application setup, including routing, themes, and global layout structures (e.g., sidebar and desktop layouts).core/: Houses shared resources used across the app, such as database services, extensions, utilities, exceptions, and common UI widgets.features/: The main business logic is split into standalone features:folders/: Directory management for notes.notes/: Note creation and displaying logic.tasks/: Task management.pin/: Pinning logic for quick access.search/: Searching capabilities.trash/: Soft-delete mechanism.settings/: App preferences.splash/: Splash screen logic.
- Flutter - UI Toolkit
- Riverpod - Reactive State Management
- pdf & printing - Exporting & Printing
- share_plus - Sharing functionalities
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Distributed under the MIT License. See LICENSE for more information.