zeba_academy_flashcards 1.0.1 copy "zeba_academy_flashcards: ^1.0.1" to clipboard
zeba_academy_flashcards: ^1.0.1 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
0
points
164
downloads

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