Zeba Academy Reading Tracker

Package: zeba_academy_reading_tracker

A comprehensive Flutter package for tracking and analyzing reading habits. It supports reading streaks, daily reading time, chapter-wise progress, study heatmaps, and exporting reading stats.


Features

  • Reading Streak Tracking – Calculate consecutive reading days.
  • Daily Reading Time – Track minutes read per day.
  • Completion Percentage – Compute progress relative to total chapters.
  • Chapter-wise Progress – Monitor which chapters are completed.
  • Study Heatmap – Visualize reading intensity over days and weeks.
  • Export Reading Stats – Retrieve reading data for reports or analysis.

Installation

Add the package to your pubspec.yaml:

dependencies:
  zeba_academy_reading_tracker:
    git:
      url: https://github.com/zeba-academy/zeba_academy_reading_tracker.git
      ref: main

Then run:

flutter pub get

Usage

Initialize the Tracker

import 'package:zeba_academy_reading_tracker/zeba_academy_reading_tracker.dart';

void main() async {
  await ReadingTracker.init();
}

Add a Reading Session

final session = ReadingSession(
  date: DateTime.now(),
  minutesRead: 30,
  chaptersCompleted: 1,
);

await ReadingTracker.addSession(session);

Get Reading Stats

// Total minutes read
int totalMinutes = ReadingTracker.getTotalMinutes();

// Reading streak
int streak = ReadingTracker.getStreak();

// Completion percentage
double percentage = ReadingTracker.getCompletionPercentage(10);

// All sessions
List<ReadingSession> sessions = ReadingTracker.getSessions();

Display Study Heatmap

import 'package:flutter/material.dart';
import 'package:zeba_academy_reading_tracker/src/heatmap.dart';

class HeatmapExample extends StatelessWidget {
  const HeatmapExample({super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: StudyHeatmap(weeks: 4),
      ),
    );
  }
}

Hive Integration

  • Uses hive_flutter to store reading sessions locally.
  • Automatically registers adapters and opens a box.
  • Supports in-memory Hive testing via hive_test.

Testing

Unit tests are included for all core functionality:

flutter test
  • Reading streak calculation
  • Completion percentage
  • Total minutes
  • Fetching all sessions

Example Project

You can run an example project to see the package in action. Ensure ReadingTracker.init() is called before adding sessions or displaying the heatmap.


Contributing

Contributions are welcome! Please fork the repository, make your changes, and submit a pull request.


License

GPL License. See LICENSE file for details.