This project has been implemented based on Laravel framework!
You can see and find the diagram in draw.io link, and also you can see the image of the DB diagram.
In this small application we want to create the below features:
- question CRUD
- question types [select, multi-select, text]
- question replies CRUD and assign to questions
- quiz-box to make a group of questions
- scheduled quiz-box to make it easy schedule a group of questions to send to users
- we can define reply_type to have several type of replies
- realtime
- custom_correction_required
- end_of_exam
- we can define reply_type to have several type of replies
- tag to create a label for different type of entities
- quiz-replier-activity: we will log user's answer
You can install the project by following the below steps
- open the project directory on your terminal
- run this command:
make install
- If you get the DB Error (Mysql gone away) run this command:
make table
- If you get the DB Error (Mysql gone away) run this command:
If the make command is not working for you, run the below commands:
composer install
cd deployment && docker-compose up -d --force-recreate && docker-compose build --force-rm
docker exec -it quiz-app cp .env.example .env
docker exec -it quiz-app php artisan key:generate
docker exec -it quiz-app php artisan migrate
You can clone the repository via Insomnia and then you'll see all the endpoints in it.
If you want to contribute in this repository you can use the below commands:
- To have consistency in the repository we are using Laravel Pint Package so before commit, run the below command:
make pint
OR
./vendor/bin/pint
- Clearing all of caches
make clear
For executing the test cases:
make test
OR
./vendor/bin/phpunit