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_flutterto 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.