A modern, digital menu system for cafes and restaurants, powered by QR codes. Customers can scan QR codes at tables to access a mobile-friendly menu, while administrators manage products and categories through an intuitive admin panel.
- QR Code Integration: Seamless access to digital menus via QR codes
- Product Management: Full CRUD operations for products with categories
- Mobile-First Design: Responsive, touch-friendly interface optimized for mobile devices
- Admin Panel: Powerful Filament-based admin interface for easy content management
- Media Library: Integrated media management with Spatie Laravel Media Library
- Multi-Language Support: Built-in language switching capabilities
- Performance Optimized: Redis caching, query optimization, and eager loading
- Security First: HTTPS enforcement, CSRF protection, and role-based access control
- Backend: Laravel 12 (PHP 8.3)
- Frontend: Blade Templates, TailwindCSS 4.0, Vite
- Database: MySQL
- Admin Panel: Filament 3.3
- Caching: Redis
- Monitoring: Laravel Telescope
- Testing: Pest PHP
- Code Quality: Laravel Pint
- PHP 8.3 or higher
- Composer
- Filament 3.3
- MySQL 8.0+
- Redis (optional, for caching)
-
Clone the repository
git clone https://github.com/yourusername/qr-menu.git cd qr-menu
-
Install PHP dependencies
composer install
-
Environment setup
cp .env.example .env php artisan key:generate
-
Database configuration
- Create a MySQL database
- Update
.env
file with database credentials
php artisan migrate php artisan db:seed
-
Start the application
php artisan serve
- Scan QR code at the table
- Browse menu categories and products
- View product details and options
- Enjoy a contactless ordering experience
- Access admin panel at
/admin
- Login with admin credentials
- Manage products, categories, and site settings
- Upload media and configure menu options
php artisan test
./vendor/bin/pint
- Laravel Debugbar is included for development
- Laravel Telescope for monitoring and logging
- Set
APP_ENV=production
in.env
- Configure web server (Nginx/Apache)
- Set up SSL certificate
- Enable caching and optimization
php artisan config:cache php artisan route:cache php artisan view:cache
Key environment variables to configure:
APP_NAME
- Application nameAPP_URL
- Base URLDB_*
- Database configurationCACHE_DRIVER
- Caching driver (redis/file)QUEUE_CONNECTION
- Queue driver
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
This application implements several security measures:
- CSRF protection
- XSS prevention
- SQL injection protection
- Role-based access control
- HTTPS enforcement
For security issues, please email security@example.com instead of opening public issues.
For support, email yusuferdem.dev@gmail.com .