/quizapp

A secure TALL based quiz application with laravel 10, filamentphp v3, livewire v3, laravel-charts, tailwindcss and more.

Primary LanguagePHP

About QuizApp

A fully functional quiz application developed on TALL stack and filamentphp3. The development was part of my self-learning to understand web application secure design principles.

I enhanced my knowledge related to overall application security, identification, authentication, authorization, audit and session management best practices and principles.

I explored the importance of input sanitization and validation best practices, and the built-in functionality TALL stack provides to implement these foundational security controls.

An interesting part was encryption of fields, files and sessions with keys that Laravel provides.

This project gave me a deep understanding of what to look for in web applications during design, implementation and maintenance.

Setup

Clone the master repo

git clone <repo>
cd <repo>
alias sail=./vendor/bin/sail

Execute initial setup and seeding.

cp .env.example .env

composer install

sail up -d

sail npm install

sail npm run build

sail artisan migrate:fresh

sail artisan make:filament-user

sail artisan db:seed

sail artisan shield:super-admin

sail artisan db:seed --class ShieldSeeder


sail npm run dev #should be kept open if using local dev env

Loing to admin:

http://localhost/admin/

Login to user:

http://localhost/member/

  • Edit the admin user and set is_admin to yes on edit form and save -- this will enable switching between user and admin roles for admin from profile menu:

Screenshot from 2024-02-24 20-17-47

Screenshot from 2024-02-24 20-18-36

#Create a test user from admin and assign user role #Login as test user and i) Subscribe to the certification under subscription menu and then the subscribed quiz certificaitons will appear in the quiz drop down for selection.

Screenshots

Admin Dashboard

Screenshot from 2024-02-24 19-02-12

Sections Administration: Screenshot from 2024-02-24 19-03-07

User Dashboard: Screenshot from 2024-02-24 19-07-25

Subscription Page: #This could be bootstraped with some subscription for enabling payment and premium services for members with some additional improvements: Screenshot from 2024-02-24 20-21-31

Quiz Selection:

Quiz In-Progress: Screenshot from 2024-02-24 19-05-31

Quiz Result Review: Screenshot from 2024-02-24 19-07-01

Quiz Overview Page: Screenshot from 2024-02-24 19-07-37

Code of Conduct

In order to ensure that the Laravel community is welcoming to all, please review and abide by the Code of Conduct.

Security Vulnerabilities

If you discover a security vulnerability within Laravel, please send an e-mail to Taylor Otwell via taylor@laravel.com. All security vulnerabilities will be promptly addressed.

License

The app is open-sourced software licensed under the MIT license.