zeba_academy_study_timer

A powerful Flutter study productivity toolkit that provides Pomodoro timers, study streak tracking, XP-based rewards, goal-based sessions, and session analytics.

This package helps developers easily add gamified study tracking systems into Flutter apps for students, e-learning platforms, productivity apps, and study planners.


โœจ Features

  • โฑ Pomodoro Timer โ€“ Simple configurable focus timer
  • ๐Ÿ”ฅ Study Streak Tracking โ€“ Track consecutive study days
  • ๐ŸŽฏ Goal-Based Sessions โ€“ Attach study goals to each session
  • โญ XP & Reward System โ€“ Gamified learning progress
  • ๐Ÿ“Š Session Analytics โ€“ Analyze total study time and averages
  • ๐Ÿงฉ Easy Integration โ€“ Simple API for Flutter apps

๐Ÿ“ฆ Installation

Add the package to your pubspec.yaml.

dependencies:
  zeba_academy_study_timer: ^1.0.0

Then run:

flutter pub get

๐Ÿš€ Import

import 'package:zeba_academy_study_timer/zeba_academy_study_timer.dart';

โฑ Pomodoro Timer

The Pomodoro timer helps users focus on study sessions.

Example

final timer = PomodoroTimer(
  workMinutes: 25,
  breakMinutes: 5,
);

timer.onTick = (seconds) {
  print("Remaining: $seconds");
};

timer.onFinish = () {
  print("Session completed!");
};

timer.start();

๐Ÿ”ฅ Study Streak Tracking

Track how many days the user studies consecutively.

final streak = StudyStreak();

streak.recordStudy(DateTime.now());

print(streak.currentStreak);

โญ XP & Reward System

Gamify study sessions using XP points.

final rewards = XPRewardSystem();

rewards.addSessionXP(30);

print("Total XP: ${rewards.totalXP}");
print("Level: ${rewards.level}");

๐ŸŽฏ Goal Based Study Sessions

Each session can store a study goal.

final session = StudySession(
  startTime: DateTime.now(),
  endTime: DateTime.now().add(Duration(minutes: 25)),
  durationMinutes: 25,
  goal: "Learn Flutter State Management",
);

๐Ÿ“Š Session Analytics

Analyze study performance.

final analytics = SessionAnalytics(sessions);

print("Total Sessions: ${analytics.totalSessions}");
print("Total Study Time: ${analytics.totalStudyTime}");
print("Average Minutes: ${analytics.averageSessionMinutes}");

๐Ÿง  Study Timer Manager

Manage sessions, streaks, and rewards together.

final manager = StudyTimerManager();

manager.completeSession(
  start: DateTime.now(),
  end: DateTime.now().add(Duration(minutes: 25)),
  goal: "Math Revision",
);

print(manager.sessions.length);
print(manager.streak.currentStreak);
print(manager.rewards.totalXP);

๐Ÿ“ฑ Example App

Run the example application included with the package.

cd example
flutter run

๐Ÿ“ธ Screenshots

Place screenshots inside a screenshots folder in the root project.

screenshots/
โ”œโ”€โ”€ timer.png
โ”œโ”€โ”€ streak.png
โ”œโ”€โ”€ analytics.png
โ”œโ”€โ”€ rewards.png

Then reference them in the README:

![Pomodoro Timer](screenshots/timer.png)

![Study Streak](screenshots/streak.png)

![Session Analytics](screenshots/analytics.png)

![Rewards System](screenshots/rewards.png)

๐Ÿงช Running Tests

Run tests using:

flutter test

๐Ÿ“‚ Project Structure

lib/
 โ”œโ”€โ”€ zeba_academy_study_timer.dart
 โ””โ”€โ”€ src
     โ”œโ”€โ”€ models
     โ”‚    โ””โ”€โ”€ study_session.dart
     โ”œโ”€โ”€ timer
     โ”‚    โ””โ”€โ”€ pomodoro_timer.dart
     โ”œโ”€โ”€ streak
     โ”‚    โ””โ”€โ”€ study_streak.dart
     โ”œโ”€โ”€ rewards
     โ”‚    โ””โ”€โ”€ xp_reward_system.dart
     โ”œโ”€โ”€ analytics
     โ”‚    โ””โ”€โ”€ session_analytics.dart
     โ””โ”€โ”€ manager
          โ””โ”€โ”€ study_timer_manager.dart

๐ŸŽฏ Use Cases

This package is perfect for:

  • ๐Ÿ“š Study planner apps
  • ๐Ÿง‘โ€๐ŸŽ“ Student productivity apps
  • ๐Ÿ“– E-learning platforms
  • โณ Focus timer apps
  • ๐ŸŽฎ Gamified learning systems

๐Ÿค Contributing

Contributions are welcome!

  1. Fork the repository
  2. Create a new feature branch
  3. Commit your changes
  4. Submit a pull request

๐Ÿ“„ License

This project is licensed under the GPL License.


๐Ÿ‘จโ€๐Ÿ’ป Author

Developed by Zeba Academy to help students build better study habits through gamification and productivity tools.