🧠 quiz_package

quiz_package est un package Flutter permettant d'intégrer facilement une mécanique de quiz dans votre application, avec ou sans clé de participation. Il fournit un widget principal QuizEngine hautement configurable et extensible.

🚀 Installation

Ajoutez ceci à votre pubspec.yaml :

dependencies:
  quiz_package:
    quiz-package: {{pubdev_version}}
    #path: /srv/owlnext/quiz-package
    #git:
      #url: https://github.com/owlnext-fr/quiz-package

📦 Import

import 'package:quiz_package/quiz_package.dart';

🧪 Exemple d'utilisation

@override
Widget build(BuildContext context) {
  if (isPartcipationKeyReachable) {
    return QuizEngine(
      useParticipationKey: true,
      services: QuizEngineServices(
        getParticipationDetails: () async {
          return await ParticipationService().getParticipationDetails();
        },
        putParticipationResponses: ({required data}) async {
          return await ParticipationService().putParticipationResponses(data: data);
        },
      ),
      errors: QuizEngineErrorLogger(
        captureException: (throwable, {scope, stackTrace}) async {
          Sentry.captureException(throwable, stackTrace: stackTrace, withScope: (scopeContext) {
            scopeContext.setTag(
              'QuizEngine -> scope: ${scope ?? "Not provided"}',
              'error: $throwable, trace: $stackTrace',
            );
          });
        },
      ),
    );
  }

  // Fallback sans clé de participation
  return QuizEngine(
    useParticipationKey: false,
    quizTemplate: fallbackQuiz, //Passer directement le template de formulaire
    services: QuizEngineServices(),
    errors: QuizEngineErrorLogger(
      captureException: (throwable, {scope, stackTrace}) async {
        Sentry.captureException(throwable, stackTrace: stackTrace, withScope: (scopeContext) {
          scopeContext.setTag(
            'QuizEngine -> scope: ${scope ?? "Not provided"}',
            'error: $throwable, trace: $stackTrace',
          );
        });
      },
    ),
  );
}

Libraries

application/Branding/Logo/logo_widget
application/CustomWidgets/CustomDropdownButton/view
application/CustomWidgets/CustomDropdownButton/view_model
application/CustomWidgets/CustomMultiActionButton/model
application/CustomWidgets/CustomMultiActionButton/view_model
application/Details/DetailsDrawer/detail_drawer
application/Errors/ErrorInfoWidget/error_info_widget
application/Panels/PanelsTemplates/help_panel
application/Panels/PanelsTemplates/right_panel
application/Popups/ClickOutsideWrapper/clickoutside_wrapper
application/QuizEngine/Core/QuizSteppingMode/question_by_question_mixin
application/QuizEngine/Core/QuizSteppingMode/step_by_step_mixin
application/QuizEngine/Core/QuizSteppingMode/view_model
application/QuizEngine/dataModels/display_conditions_model
application/QuizEngine/dataModels/DTO/Participation/display_mode
application/QuizEngine/dataModels/DTO/Participation/params
application/QuizEngine/dataModels/DTO/Participation/possible_answer
application/QuizEngine/dataModels/DTO/participation_details_dto
application/QuizEngine/dataModels/DTO/put_quiz_responses_dto
application/QuizEngine/dataModels/DTO/questionnary_dto
application/QuizEngine/dataModels/DTO/quiz_answers_output
application/QuizEngine/dataModels/DTO/quiz_current_question_input_dto
application/QuizEngine/dataModels/DTO/quiz_details_dto
application/QuizEngine/dataModels/DTO/quiz_list_output_dto
application/QuizEngine/dataModels/options_model
application/QuizEngine/dataModels/other_option_model
application/QuizEngine/dataModels/quiz_constants
application/QuizEngine/dataModels/quiz_dictionnary
application/QuizEngine/dataModels/quiz_engine_action_callback
application/QuizEngine/dataModels/quiz_engine_error_callback
application/QuizEngine/dataModels/quiz_engine_services
application/QuizEngine/dataModels/quiz_informations_stepper_model
application/QuizEngine/dataModels/quiz_integrity_model
application/QuizEngine/dataModels/quiz_model
application/QuizEngine/dataModels/quiz_question_model
application/QuizEngine/dataModels/quiz_step_model
application/QuizEngine/dataModels/quiz_stepping_mode
application/QuizEngine/dataModels/quiz_subs_step_model
application/QuizEngine/dataModels/quiz_theming
application/QuizEngine/dataModels/quiz_timer_model
application/QuizEngine/dataModels/why_model
application/QuizEngine/Editor/AddQuestionPopup/view_model
application/QuizEngine/Editor/quiz_question_editor
application/QuizEngine/Editor/quiz_step_editor
application/QuizEngine/Editor/step_editor
application/QuizEngine/Editor/Tabs/encoder_utils
application/QuizEngine/Editor/Tabs/FreeEditor/view_model
application/QuizEngine/Editor/Tabs/GraphicEditor/QuizQuestionEditorTabs/model
application/QuizEngine/Editor/Tabs/GraphicEditor/QuizQuestionEditorTabs/QuestionHelpInformationEditor/view_model
application/QuizEngine/Editor/Tabs/GraphicEditor/QuizQuestionEditorTabs/QuestionMainInformationEditor/view_model
application/QuizEngine/Editor/Tabs/GraphicEditor/QuizQuestionEditorTabs/QuestionOptionsEditor/QuizQuestionOptionsEditor/QuizOptionItemBuilder/view_model
application/QuizEngine/Editor/Tabs/GraphicEditor/QuizQuestionEditorTabs/QuestionOptionsEditor/QuizQuestionOptionsEditor/view_model
application/QuizEngine/Editor/Tabs/GraphicEditor/QuizQuestionEditorTabs/QuestionOptionsEditor/view_model
application/QuizEngine/Editor/Tabs/GraphicEditor/QuizQuestionEditorTabs/QuestionPrevisualisation/view_model
application/QuizEngine/Editor/Tabs/GraphicEditor/QuizQuestionEditorTabs/view_model
application/QuizEngine/Editor/Tabs/GraphicEditor/view
application/QuizEngine/Editor/Tabs/GraphicEditor/view_model
application/QuizEngine/Editor/Tabs/view_model
application/QuizEngine/InformationsStepper/view_model
application/QuizEngine/IntegrityChecking/view_model
application/QuizEngine/Subparts/Actions/FormHasErrorWidget/view_model
application/QuizEngine/Subparts/Actions/tack_back_later_button
application/QuizEngine/Subparts/EndingQuizScreen/view
application/QuizEngine/Subparts/EndingQuizScreen/view_model
application/QuizEngine/Subparts/QuizHeader/view
application/QuizEngine/Subparts/QuizHeader/view_model
application/QuizEngine/Subparts/QuizProgress/QuestionProgressBar/view_model
application/QuizEngine/Subparts/QuizProgress/RecapAnswer/recap_answer
application/QuizEngine/Subparts/QuizProgress/StepBalls/ballItem/FinishingBall/view_model
application/QuizEngine/Subparts/QuizProgress/StepBalls/ballItem/view_mixin_standard
application/QuizEngine/Subparts/QuizProgress/StepBalls/ballItem/view_model
application/QuizEngine/Subparts/QuizProgress/StepBalls/model_view
application/QuizEngine/Subparts/QuizProgress/StepBalls/step_by_step_mixin
application/QuizEngine/Subparts/QuizProgress/StepTitle/view_model
application/QuizEngine/Subparts/QuizProgress/SubStepTitle/view_model
application/QuizEngine/Subparts/QuizProgress/Timeout/timeout
application/QuizEngine/Subparts/QuizQuestionResolving/ImgDescriptor/mobile_view
application/QuizEngine/Subparts/QuizQuestionResolving/ImgDescriptor/view
application/QuizEngine/Subparts/QuizQuestionResolving/ImgDescriptor/view_model
application/QuizEngine/Subparts/QuizQuestionResolving/QuizStepResolver/Inputs/BooleanInput/mobile_view
application/QuizEngine/Subparts/QuizQuestionResolving/QuizStepResolver/Inputs/BooleanInput/view_model
application/QuizEngine/Subparts/QuizQuestionResolving/QuizStepResolver/Inputs/DateInput/view
application/QuizEngine/Subparts/QuizQuestionResolving/QuizStepResolver/Inputs/DateInput/view_model
application/QuizEngine/Subparts/QuizQuestionResolving/QuizStepResolver/Inputs/FloatInput/mobile_view
application/QuizEngine/Subparts/QuizQuestionResolving/QuizStepResolver/Inputs/FloatInput/view_model
application/QuizEngine/Subparts/QuizQuestionResolving/QuizStepResolver/Inputs/MarkdownInput/view
application/QuizEngine/Subparts/QuizQuestionResolving/QuizStepResolver/Inputs/MarkdownInput/view_model
application/QuizEngine/Subparts/QuizQuestionResolving/QuizStepResolver/Inputs/RatingInput/view_bubble_mixin
application/QuizEngine/Subparts/QuizQuestionResolving/QuizStepResolver/Inputs/RatingInput/view_model
application/QuizEngine/Subparts/QuizQuestionResolving/QuizStepResolver/Inputs/RatingInput/view_star_mixin
application/QuizEngine/Subparts/QuizQuestionResolving/QuizStepResolver/Inputs/ScaleInput/view_model
application/QuizEngine/Subparts/QuizQuestionResolving/QuizStepResolver/Inputs/ScaleInput/view_nps_mixin
application/QuizEngine/Subparts/QuizQuestionResolving/QuizStepResolver/Inputs/SelectInput/view_button_version
application/QuizEngine/Subparts/QuizQuestionResolving/QuizStepResolver/Inputs/SelectInput/view_check_version
application/QuizEngine/Subparts/QuizQuestionResolving/QuizStepResolver/Inputs/SelectInput/view_model
application/QuizEngine/Subparts/QuizQuestionResolving/QuizStepResolver/Inputs/SelectInput/view_radio_version
application/QuizEngine/Subparts/QuizQuestionResolving/QuizStepResolver/Inputs/TextInput/view
application/QuizEngine/Subparts/QuizQuestionResolving/QuizStepResolver/Inputs/TextInput/view_model
application/QuizEngine/Subparts/QuizQuestionResolving/QuizStepResolver/Inputs/WhyInput/view
application/QuizEngine/Subparts/QuizQuestionResolving/QuizStepResolver/Inputs/WhyInput/view_model
application/QuizEngine/Subparts/QuizQuestionResolving/QuizStepResolver/question_resolver
application/QuizEngine/Subparts/QuizQuestionResolving/QuizStepResolver/question_resolver_utils
application/QuizEngine/Subparts/QuizRecapWidget/RecapStepTitle/view_model
application/QuizEngine/Subparts/QuizRecapWidget/RecapValue/view_model
application/QuizEngine/Subparts/QuizRecapWidget/view
application/QuizEngine/Subparts/QuizRecapWidget/view_model
application/QuizEngine/Subparts/QuizResults/ExternalVersion/view
application/QuizEngine/Subparts/QuizResults/ExternalVersion/view_model
application/QuizEngine/Subparts/StepDescription/view_model
application/QuizEngine/Subparts/UXMessages/multiple_choice_hint
application/QuizEngine/Subparts/UXMessages/RequiredFieldNotice/label_with_optionnal_asteriks
application/QuizEngine/Subparts/UXMessages/RequiredFieldNotice/required_field_notice
application/QuizEngine/templates/contact_form
application/QuizEngine/templates/default_quiz
application/QuizEngine/templates/default_with_params
application/QuizEngine/templates/env_client_side
application/QuizEngine/templates/env_quiz
application/QuizEngine/templates/fallback_template
application/QuizEngine/templates/markdown_quiz
application/QuizEngine/templates/markdownExamples/stylesheet_testing
application/QuizEngine/templates/quizImages/quiz_images
application/QuizEngine/templates/quizIntroStepper/default_intro_stepper
application/QuizEngine/templates/register_quiz
application/QuizEngine/templates/satisfaction.quiz
application/QuizEngine/templates/shrrom_quiz
application/QuizEngine/templates/temp_quiz
application/QuizEngine/view
application/QuizEngine/view_model
application/Theme/init_theme
application/WidgetBricks/Drawer/drawer_header
application/WidgetExamples/markdown_reader_example
CustomWidgets/CustomBlurPlate/custom_blur_plate
CustomWidgets/CustomDividor/mobile_view
CustomWidgets/CustomDividor/view
CustomWidgets/CustomDividor/view_model
CustomWidgets/CustomFormWrapper/view_model
CustomWidgets/CustomListView/custom_padded_list_view
CustomWidgets/CustomMarkdownReader/markdown_reader
CustomWidgets/CustomPresentators/big_heading
CustomWidgets/CustomPresentators/step_presentation
CustomWidgets/CustomSimpleStepper/custom_simple_stepper
CustomWidgets/CustomStepper/MainStepper/main_stepper_advanced
CustomWidgets/CustomStepper/MainStepSeparation/main_step_separator
documentation/documentation_introduction
documentation/documentation_theme
documentation/pages/quiz_engine_documentation_page
examples/quiz_example_page
nirrtiForked/custom_button/view
nirrtiForked/custom_button/view_model
nirrtiForked/custom_input/view
nirrtiForked/custom_input/view_model
nirrtiForked/custom_loading/mobile_view
nirrtiForked/custom_loading/view
nirrtiForked/custom_loading/view_model
nirrtiForked/extensions/datetime_extensions
nirrtiForked/extensions/double_extensions
nirrtiForked/extensions/int_extensions
nirrtiForked/extensions/string_extensions
nirrtiForked/styles/artist
quiz_package
utils/constants/quiz_package_global
utils/extensions/color_extension
utils/extensions/datetime_extensions
utils/extensions/string_extensions
utils/formats/date_formatter
utils/formats/format_checker
utils/formats/hours_formatter
utils/quiz_package_common
utils/redirection/redirection_generic
utils/redirection/redirection_non_web
utils/redirection/redirection_web
utils/security/dto_checkers