Zeba Academy Revision Engine

A powerful Flutter package for building intelligent learning revision systems with spaced repetition, revision queues, weak topic detection, review scheduling, and difficulty tracking.


๐Ÿš€ Features

โœจ Spaced Repetition

  • Intelligent review scheduling
  • Automatic next revision calculation
  • Mastery progression tracking

๐Ÿ“š Revision Queue

  • Get daily revision tasks
  • Automatically filters due topics
  • Manage learning workflow

๐Ÿง  Weak Topic Detection

  • Identify topics needing improvement
  • Analyze mastery levels
  • Focus learning where it matters

๐Ÿ“… Review Calendar

  • Generate revision schedules
  • Organize reviews by date
  • Plan learning sessions

๐ŸŽฏ Difficulty Tracking

  • Easy / Medium / Hard difficulty levels
  • Difficulty-based learning adjustment
  • Adaptive revision intervals

๐Ÿ“ฆ Installation

Add this package to your pubspec.yaml:

dependencies:
  zeba_academy_revision_engine: ^1.0.0

Run:

flutter pub get

๐Ÿ›  Usage

Import the package:

import 'package:zeba_academy_revision_engine/zeba_academy_revision_engine.dart';

Create Revision Item

final item = RevisionItem(
  id: "flutter-001",
  topic: "Flutter",
  content: "State Management",
  difficulty: Difficulty.medium,
);

Use Spaced Repetition

final engine = SpacedRepetitionEngine();

engine.review(item);

print(item.nextReview);
print(item.mastery);

Output:

Next Review: 2026-06-18
Mastery: 0.1

๐Ÿ“š Revision Queue

Create a revision queue:

final queue = RevisionQueue(
  [
    item
  ]
);


final today =
queue.getTodayQueue();


for(final revision in today){

  print(revision.topic);

}

๐Ÿง  Detect Weak Topics

final detector =
WeakTopicDetector();


final weakTopics =
detector.detect(
[
 item
]
);


print(
weakTopics
);

๐Ÿ“… Review Calendar

Generate learning calendar:

final calendar =
ReviewCalendar();


final schedule =
calendar.generate(
[
 item
]
);


print(schedule);

๐ŸŽฏ Difficulty System

Available difficulty levels:

Difficulty.easy

Difficulty.medium

Difficulty.hard

Difficulty affects revision intervals:

Difficulty Learning Speed
Easy Faster progress
Medium Normal progress
Hard More frequent revision

๐Ÿงช Testing

Run package tests:

flutter test

Analyze code:

flutter analyze

๐Ÿ— Project Structure

lib/

โ”œโ”€โ”€ models/
โ”‚   โ”œโ”€โ”€ revision_item.dart
โ”‚   โ”œโ”€โ”€ review_record.dart
โ”‚   โ””โ”€โ”€ difficulty.dart

โ”œโ”€โ”€ engines/
โ”‚   โ”œโ”€โ”€ spaced_repetition_engine.dart
โ”‚   โ”œโ”€โ”€ revision_queue.dart
โ”‚   โ””โ”€โ”€ weak_topic_detector.dart

โ”œโ”€โ”€ calendar/
โ”‚   โ””โ”€โ”€ review_calendar.dart

โ””โ”€โ”€ zeba_academy_revision_engine.dart

๐Ÿ›ฃ Roadmap

Future improvements:

  • JSON serialization
  • Local database support
  • Hive integration
  • SQLite support
  • FSRS algorithm
  • SM-2 algorithm
  • Learning analytics
  • Progress dashboard widgets
  • Cloud synchronization

๐Ÿ‘จโ€๐Ÿ’ป About Me

โœจ Iโ€™m Sufyan bin Uzayr, an open-source developer passionate about building and sharing meaningful projects.

Learn more:

๐ŸŒ 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.

Build practical skills through:

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

Visit:

๐ŸŒ Main Website
https://zeba.academy

๐Ÿ’ป Coding Resources
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 changes
git push origin feature/new-feature
  1. Open a Pull Request

๐Ÿ“„ License

This project is licensed under the GNU General Public License v3.0.

You are free to use, modify, and distribute this software under the terms of the GPL-3.0 license.

See the LICENSE file for details.


Copyright (C) 2026
Sufyan bin Uzayr