avoo/qcm-core-bundle

QCM Core bundle for Symfony2

Installs: 198

Dependents: 2

Suggesters: 0

Security: 0

Stars: 0

Watchers: 2

Forks: 1

Open Issues: 1

Type:symfony-bundle

1.0.3 2016-09-07 16:09 UTC

This package is not auto-updated.

Last update: 2024-04-13 14:18:33 UTC


README

Latest Stable Version License Build Status Scrutinizer Code Quality

The core bundle includes the basic functionalities of qcm based on SyliusResourceBundle concept and implement QcmComponent

Installation

Require avoo/qcm-core-bundle into your composer.json file:

{
    "require": {
        "avoo/qcm-core-bundle": "@dev-master"
    }
}

Register the bundle in app/AppKernel.php:

// app/AppKernel.php
public function registerBundles()
{
    return array(
        // ...
        new FOS\RestBundle\FOSRestBundle(),
        new JMS\SerializerBundle\JMSSerializerBundle($this),
        new Sylius\Bundle\ResourceBundle\SyliusResourceBundle(),
        new WhiteOctober\PagerfantaBundle\WhiteOctoberPagerfantaBundle(),
        new Qcm\Bundle\CoreBundle\QcmCoreBundle(),
    );
}

In app/config.yml

imports:
    - { resource: parameters.yml }
    - { resource: security.yml }
    - { resource: @QcmCoreBundle/Resources/config/core.yml }

Security default configuration

You can use the default register/login process:

In app/config/routing.yml

qcm_core:
    prefix:   /
    resource: "@QcmCoreBundle/Resources/config/routing.yml"

Add default user provider, firewall and access control in app/config/security.yml:

security:
    encoders:
        Qcm\Component\User\Model\UserInterface: sha512
    providers:
        qcm_corebundle:
            id: qcm_core.user_provider.username
    firewalls:
        login_firewall:
            pattern:    ^/security/login$
            anonymous:  ~
        secured_area:
            pattern:    ^/
            anonymous:  ~
            form_login:
                provider:            qcm_corebundle
                login_path:          qcm_core_security_login
                check_path:          qcm_core_security_login_check
                remember_me:         true
                default_target_path: you_homepage_route
            logout:
                path:   qcm_core_security_logout
    access_control:
        - { path: "^/security/login", roles: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: "^/", roles: ROLE_USER }

QCM Configuration

You can override de default questionnaire configuration in app/config/config.yml

qcm_core:
    website_name: Qcm Demo // The website name
    configuration:
        max_questions: 40 //Questions number max by questionnaire
        question_level: ["beginner", "senior", "jedi"] //Determine the level for each question
        answers_max: 5 //Number of answers max by question
        timeout: 2400 //Total time of the questionnaire (in seconds)
        time_per_question: 60 //Time per question, if you choose this value, the timeout will be disabled

Override service

For statistics class:

qcm_core:
    service:
        statistics:
            class: MyBundle\Statistics\Class // For better compatibility extends the Model\QuestionnaireStatistics
            template: MyBundle\Answers\Template\Class // You need to implements the qcm TemplateInterface

Credits

License

This bundle is released under the MIT license. See the complete license in the bundle:

License