Zeba Academy Learning Journal šŸ“šāœØ

A Flutter package for creating a powerful learning journal experience with daily notes, learning goals, reflections, tags, search, and export functionality.

Build better learning habits by documenting progress, tracking goals, and reflecting on your journey.


Features šŸš€

āœ… Daily learning notes āœ… Learning goals tracking āœ… Reflection entries āœ… Tag-based organization āœ… Search journal entries āœ… Export journal notes āœ… Clean reusable Flutter widgets āœ… Developer-friendly API āœ… Lightweight and customizable


Installation

Add this package to your pubspec.yaml:

dependencies:
  zeba_academy_learning_journal: ^0.0.1

Then run:

flutter pub get

Usage

Import the package:

import 'package:zeba_academy_learning_journal/zeba_academy_learning_journal.dart';

Create Journal Controller

final journal = JournalController();

Add Daily Note

journal.addEntry(

  title: "Flutter Learning",

  content:
  "Today I learned Flutter package development",

  reflection:
  "I improved my understanding of reusable components",

  tags:
  [
    "flutter",
    "development",
    "learning"
  ],

);

Display Journal Entries

ListView.builder(

itemCount: journal.entries.length,

itemBuilder:(context,index){

final entry =
journal.entries[index];


return JournalCard(
entry: entry,
);

}

);

Search Entries

final results =
journal.search(
"Flutter"
);

Search works with:

  • Title
  • Content
  • Tags

Filter By Tags

final flutterNotes =
journal.filterByTag(
"flutter"
);

Delete Entry

journal.deleteEntry(
entryId
);

Export Notes

Export all journal entries as a text file:

await ExportService.exportJournal(
journal.entries,
);

The exported file can be shared using the device sharing system.


Widgets Included

JournalCard

Displays journal entry cards.

JournalCard(
 entry: entry,
);

JournalEditor

Ready-made journal input form.

JournalEditor(

onSave:
(title,content,reflection,tags){

 journal.addEntry(
 title:title,
 content:content,
 reflection:reflection,
 tags:tags,
 );

}

)

JournalSearch

Search widget.

JournalSearch(

onSearch:(query){

final result =
journal.search(query);

}

)

Folder Structure

lib/

src/

 ā”œā”€ā”€ models/
 │    └── journal_entry.dart

 ā”œā”€ā”€ controllers/
 │    └── journal_controller.dart

 ā”œā”€ā”€ services/
 │    └── export_service.dart

 └── widgets/
      ā”œā”€ā”€ journal_card.dart
      ā”œā”€ā”€ journal_editor.dart
      └── journal_search.dart

Requirements

Flutter:

>=3.0.0

Dart:

^3.12.0

Roadmap šŸ›£ļø

Upcoming features:

  • Local database support
  • Hive storage
  • JSON backup
  • Markdown notes
  • Learning streaks
  • Calendar journal view
  • Mood tracking
  • Dark mode support
  • Cloud sync

About Me

✨ I’m Sufyan bin Uzayr, an open-source developer passionate about building and sharing meaningful projects.

You can learn more about me and my work:

🌐 Website: https://sufyanism.com/

šŸ’¼ LinkedIn: https://www.linkedin.com/in/sufyanism


Zeba Academy šŸš€

Your all-in-one learning hub!

Explore courses and resources in coding, technology, and development.

Learn practical skills through:

  • Curated tutorials
  • Real-world projects
  • Hands-on development

Level up your tech journey today! šŸ’»āœØ

Main Website:

https://zeba.academy

Learning Platform:

https://code.zeba.academy

YouTube:

https://www.youtube.com/@zeba.academy

Instagram:

https://www.instagram.com/zeba.academy/


Contributing

Contributions are welcome!

Steps:

  1. Fork the repository

  2. Create a feature branch

git checkout -b feature/new-feature
  1. Commit changes
git commit -m "Add new feature"
  1. Push branch
git push origin feature/new-feature
  1. Create a Pull Request

License

This project is licensed under the GNU General Public License v3.0 (GPL-3.0).

You are free to:

āœ… Use āœ… Modify āœ… Share āœ… Distribute

Under the terms of the GPL-3.0 license.

See the LICENSE file for details.


Made with ā¤ļø using Flutter

Ā© Zeba Academy