zeba_academy_flashcards 1.0.4 copy "zeba_academy_flashcards: ^1.0.4" to clipboard
zeba_academy_flashcards: ^1.0.4 copied to clipboard

Professional Flashcard engine with flip animation, swipe gestures, and spaced repetition algorithm.

example/lib/main.dart

import 'package:flutter/material.dart';
import 'package:zeba_academy_flashcards/zeba_academy_flashcards.dart';
import 'package:uuid/uuid.dart';

void main() {
  runApp(const FlashcardDemo());
}

class FlashcardDemo extends StatefulWidget {
  const FlashcardDemo({super.key});

  @override
  State<FlashcardDemo> createState() => _FlashcardDemoState();
}

class _FlashcardDemoState extends State<FlashcardDemo> {
  final FlashcardController controller = FlashcardController();

  @override
  void initState() {
    super.initState();

    controller.loadCards([
      FlashcardModel(
        id: const Uuid().v4(),
        question: "What is Flutter?",
        answer: "Flutter is Google’s UI toolkit for building beautiful apps.",
      ),
    ]);
  }

  @override
  Widget build(BuildContext context) {
    final card = controller.cards.first;

    return MaterialApp(
      debugShowCheckedModeBanner: false,
      home: Scaffold(
        backgroundColor: const Color(0xFFF5F7FA),
        appBar: AppBar(
          elevation: 0,
          backgroundColor: Colors.transparent,
          foregroundColor: Colors.black,
          centerTitle: true,
          title: const Text(
            "Zeba Academy Flashcards",
            style: TextStyle(fontWeight: FontWeight.bold),
          ),
        ),
        body: Padding(
          padding: const EdgeInsets.symmetric(horizontal: 20),
          child: Column(
            children: [
              const SizedBox(height: 30),

              // Progress Bar
              ClipRRect(
                borderRadius: BorderRadius.circular(10),
                child: LinearProgressIndicator(
                  value: controller.progress,
                  minHeight: 10,
                ),
              ),

              const SizedBox(height: 40),

              // Flashcard
              Center(
                child: FlashcardWidget(
                  card: card,
                  onDifficultySelected: (difficulty) {
                    setState(() {
                      controller.markDifficulty(card, difficulty);
                    });
                  },
                ),
              ),

              const SizedBox(height: 40),

              // Difficulty Buttons
              Row(
                mainAxisAlignment: MainAxisAlignment.spaceEvenly,
                children: [
                  _difficultyButton("Hard", Colors.red, () {
                    setState(() {
                      controller.markDifficulty(card, Difficulty.hard);
                    });
                  }),
                  _difficultyButton("Medium", Colors.orange, () {
                    setState(() {
                      controller.markDifficulty(card, Difficulty.medium);
                    });
                  }),
                  _difficultyButton("Easy", Colors.green, () {
                    setState(() {
                      controller.markDifficulty(card, Difficulty.easy);
                    });
                  }),
                ],
              ),
            ],
          ),
        ),
      ),
    );
  }

  Widget _difficultyButton(String text, Color color, VoidCallback onTap) {
    return ElevatedButton(
      style: ElevatedButton.styleFrom(
        backgroundColor: color,
        padding: const EdgeInsets.symmetric(horizontal: 22, vertical: 12),
        shape: RoundedRectangleBorder(
          borderRadius: BorderRadius.circular(30),
        ),
      ),
      onPressed: onTap,
      child: Text(
        text,
        style: const TextStyle(fontWeight: FontWeight.bold),
      ),
    );
  }
}
0
likes
140
points
164
downloads
screenshot

Documentation

API reference

Publisher

verified publisherzeba.academy

Weekly Downloads

Professional Flashcard engine with flip animation, swipe gestures, and spaced repetition algorithm.

Homepage

License

unknown (license)

Dependencies

flutter, shared_preferences, uuid

More

Packages that depend on zeba_academy_flashcards