🧠 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/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_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/CustomPopup/CustomPopupHeader/popup_header_widget
- 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