{"id":18606034,"url":"https://github.com/hfagerlund/quiz_app","last_synced_at":"2026-02-27T11:02:04.033Z","repository":{"id":201074343,"uuid":"628457945","full_name":"hfagerlund/quiz_app","owner":"hfagerlund","description":"Quiz app with custom GraphQL API (Laravel 10 backend) and Vue3 front-end","archived":false,"fork":false,"pushed_at":"2025-10-25T19:54:07.000Z","size":394,"stargazers_count":0,"open_issues_count":2,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-25T21:24:34.389Z","etag":null,"topics":["docker-compose","graphql","laravel","laravel10x","php","phpunit","sail","tailwindcss","vite","vue3"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hfagerlund.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-04-16T02:14:20.000Z","updated_at":"2025-10-25T19:48:37.000Z","dependencies_parsed_at":null,"dependency_job_id":"efa79bd2-09d5-4ddd-b0de-79ca34d83f02","html_url":"https://github.com/hfagerlund/quiz_app","commit_stats":null,"previous_names":["hfagerlund/quiz_app"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/hfagerlund/quiz_app","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hfagerlund%2Fquiz_app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hfagerlund%2Fquiz_app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hfagerlund%2Fquiz_app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hfagerlund%2Fquiz_app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hfagerlund","download_url":"https://codeload.github.com/hfagerlund/quiz_app/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hfagerlund%2Fquiz_app/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29892063,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-27T09:48:51.284Z","status":"ssl_error","status_checked_at":"2026-02-27T09:48:43.992Z","response_time":57,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker-compose","graphql","laravel","laravel10x","php","phpunit","sail","tailwindcss","vite","vue3"],"created_at":"2024-11-07T02:24:02.196Z","updated_at":"2026-02-27T11:02:03.994Z","avatar_url":"https://github.com/hfagerlund.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# quiz_app\nQuiz API backend using [Laravel 10], Sail (docker-compose), [GraphQL] with [Vue 3] front-end.\n\n[![Release](https://github.com/hfagerlund/quiz_app/actions/workflows/release.yml/badge.svg)](https://github.com/hfagerlund/quiz_app/actions) [![Laravel Version](https://img.shields.io/badge/laravel-v10.10.0-%23f9322c.svg?style=flat-square)](https://laravel.com/) [![Composer Version](https://img.shields.io/badge/composer-v2.5.5-%234444ff.svg?style=flat-square)](https://getcomposer.org/) [![Composer package: rebing/graphql-laravel Version](https://img.shields.io/badge/laravel/rebinggraphql-v1.22.0-%23d64292.svg?style=flat-square)](https://github.com/rebing/graphql-laravel) [![Composer package: laravel/sail Version](https://img.shields.io/badge/laravel/sail-v1.22.0-%2338bdf7.svg?style=flat-square)](https://github.com/laravel/sail) [![PHP Version](https://img.shields.io/badge/php-v8.2.5-%238892bf.svg?style=flat-square)](https://php.net/) [![PHPUnit Version](https://img.shields.io/badge/phpunit-v10.1.2-%2321ffff.svg?style=flat-square)](https://phpunit.de/) [![MySQL Version](https://img.shields.io/badge/mysql-v8.0-%230074a3.svg?style=flat-square)](https://www.mysql.com/) [![Vite Version](https://img.shields.io/badge/vite-v4.4.11-%23646cff.svg?style=flat-square)](https://vitejs.dev/) [![Vue Version](https://img.shields.io/badge/vue-v3.2.36-%2342b883.svg?style=flat-square)](https://vuejs.org/) [![Tailwind CSS Version](https://img.shields.io/badge/tailwind-v4.0.0-%2338bdf8.svg?style=flat-square)](https://tailwindcss.com/)\n\n## What's going on here?\n* [Laravel] - v10.10.0\n* [PHP]     - v8.2.5\n* [PHPUnit] - v10.1.2\n\n* [Node]    - v18.16.0\n* [npm]     - v9.6.4\n\n(All copyrights for the above remain with their respective owners.)\n\n## Quick start\n```console\n# clone this project\n$ git clone https://github.com/hfagerlund/quiz_app.git\n$ cd quiz_app\n$ cp .env.example .env\n# ...and create .env.testing, customize .env and /config/database.php for your db\n\n$ composer install --ignore-platform-reqs\n\n# start Sail (leave this running in its own terminal tab)\n$ ./vendor/bin/sail up\n\n# in a new terminal tab:\n$ ./vendor/bin/sail npm install\n$ ./vendor/bin/sail artisan key:generate\n$ ./vendor/bin/sail artisan migrate:fresh --seed\n$ ./vendor/bin/sail npm run dev\n# browse to 0.0.0.0\n```\n\n### Useful Tips\n```console\n# stop Sail\n$ ./vendor/bin/sail down\n\n# check state of services\n$ docker-compose ps\n```\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eDifferences between .env and .env.testing [+]\u003c/strong\u003e\u003c/summary\u003e\n\n\u003cbr /\u003e\n\n| .env        |  .env.testing          |\n| ------------- | ------------- |\n| APP_ENV=local  | APP_ENV=testing  |\n| DB_CONNECTION=mysql  | DB_CONNECTION=test1 (corresponds to `\u003cenv name=\"DB_CONNECTION\" value=\"test1\" /\u003e` in phpunit.xml)  |\n| DB_DATABASE=db_for_application  | DB_DATABASE=db_for_testing (corresponds to `\u003cenv name=\"DB_DATABASE\" value=\"db_for_testing\"/\u003e`, `\u003cenv name=\"APP_ENV\" value=\"db_for_testing\"/\u003e` in phpunit.xml) |\n\u003c/details\u003e\n\n## Tests\n```console\n# run all tests (feature, unit, database etc.)\n$ ./vendor/bin/sail artisan test\n# run all tests (for front-end, Vue components)\n$ ./vendor/bin/sail npm run test\n\n# run a specific test\n$ ./vendor/bin/sail test --testsuite Feature --filter=DatabaseTest\n\n# generate (feature) test\n$ ./vendor/bin/sail php artisan make:test HTTPResponseTest\n\n# generate (unit) test\n$ ./vendor/bin/sail php artisan make:test MyUnitTest --unit\n\n# output code coverage stats to terminal\n$ ./vendor/bin/sail php artisan test --coverage\n\n# install Dusk (end-to-end testing, browser automation)\n$ ./vendor/bin/sail composer require --dev laravel/dusk\n$ ./vendor/bin/sail php artisan dusk:install\n```\n\n### Good to Know (miscellaneous commands)\n\u003c!-- .................... --\u003e\n\u003cdetails\u003e\n  \u003csummary\u003e\u003cstrong\u003eAuto-generate code [+]\u003c/strong\u003e \u003cem\u003emodels, migrations, factories, GraphQL schema\u003c/em\u003e\u003c/summary\u003e\n\n\u003cbr /\u003e\n\n```console\n# generate model, migration\n$ ./vendor/bin/sail artisan make:model -m Question\n\n# generate model, migration, factory\n$ ./vendor/bin/sail artisan make:model Question -m -f\n\n# generate GraphQL type\n$ ./vendor/bin/sail artisan make:graphql:type QuestionType\n```\n\n\u003c/details\u003e\n\u003c!-- .................... --\u003e\n\u003cdetails\u003e\n  \u003csummary\u003e\u003cstrong\u003eInstallation [+]\u003c/strong\u003e \u003cem\u003eLaravel 10, libraries\u003c/em\u003e\u003c/summary\u003e\n\n\u003cbr /\u003e\n\n```console\n# install Laravel 10 app (including Sail, MySQL, Redis, Selenium)\n$ curl -s https://laravel.build/new-sail-application | bash\n\n# install library for GraphQL\n$ ./vendor/bin/sail composer require rebing/graphql-laravel\n## publish config file (from /vendor dir to /config/graphql.php)\n$ ./vendor/bin/sail php artisan vendor:publish --provider=\"Rebing\\GraphQL\\GraphQLServiceProvider\"\n```\n\n\u003c/details\u003e\n\u003c!-- .................... --\u003e\n\u003cdetails\u003e\n  \u003csummary\u003e\u003cstrong\u003eConfiguration [+]\u003c/strong\u003e \u003cem\u003ecaching configuration, switching environments\u003c/em\u003e\u003c/summary\u003e\n\n\u003cbr /\u003e\n\n```console\n# cache configuration\n$ ./vendor/bin/sail php artisan config:cache --env=testing\n\n# clear configuration cache\n$ ./vendor/bin/sail php artisan config:clear\n```\n\n\u003c/details\u003e\n\u003c!-- .................... --\u003e\n\u003cdetails\u003e\n  \u003csummary\u003e\u003cstrong\u003eDatabase [+]\u003c/strong\u003e \u003cem\u003erunning migrations, seeders, db schema, db client\u003c/em\u003e\u003c/summary\u003e\n\n\u003cbr /\u003e\n\n```console\n# run migrations\n$ ./vendor/bin/sail artisan migrate\n\n# drop all tables, migrate, seed db\n$ ./vendor/bin/sail artisan migrate:fresh --seed\n\n# dump database schema (ie. 'squash' migrations into a single SQL file)\n$ ./vendor/bin/sail php artisan schema:dump\n\n# access MySQL command-line client\n$ ./vendor/bin/sail mysql\n```\n\n\u003c/details\u003e\n\u003c!-- .................... --\u003e\n\u003cdetails\u003e\n  \u003csummary\u003e\u003cstrong\u003eFront-end Vue app [+]\u003c/strong\u003e \u003cem\u003erunning Node, npm, Vite dev server\u003c/em\u003e\u003c/summary\u003e\n\n\u003cbr /\u003e\n\n```console\n# Node, npm versions\n$ ./vendor/bin/sail node -v\n$ ./vendor/bin/sail npm -v\n\n# run Vite development server (provides Hot Module Replacement for Laravel application)\n$ ./vendor/bin/sail npm run dev\n```\n\n\u003c/details\u003e\n\n## License\nCopyright \u0026copy; 2023 Heini Fagerlund. [License] applies to all parts of quiz_app that are not externally maintained libraries, frameworks.\n\nThe [Laravel] framework is open-sourced software licensed under the [MIT license].\n\n\n[GraphQL]: https://github.com/rebing/graphql-laravel\n[Laravel]: https://laravel.com/\n[Laravel 10]: https://laravel.com/\n[License]: https://github.com/hfagerlund/quiz_app/blob/main/LICENSE\n[MIT license]: https://opensource.org/licenses/MIT\n[Node]: https://nodejs.org/\n[npm]: https://www.npmjs.com/\n[PHP]: https://www.php.net/\n[PHPUnit]: https://phpunit.de/\n[Vue 3]: https://vuejs.org/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhfagerlund%2Fquiz_app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhfagerlund%2Fquiz_app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhfagerlund%2Fquiz_app/lists"}