This Laravel application is designed for generating QR codes with various content types, such as plain text, URL, email address, phone number, GPS location, and Wi-Fi network login credentials. Users can either log in traditionally or use Google authentication through Laravel/Socialite.
- User Authentication: Traditional login and Google authentication (Laravel/Socialite).
- QR Code Generation: Generate QR codes with customizable content:
- Name & Description of code, which allows you to indetify it on the site,
- Error correction options, allows damaged QR Codes be still scanable,
- Image size.
- QR Code Privacy: Users can set QR codes to public, making them visible in the community section.
- Community Section: View and interact with public QR codes generated by other users including a search for interesting ones.
- Download QR Codes: Users can download their own QR codes and public QR codes in PNG format.
- QR Code Removal: Users can delete their own QR codes.
- Like Feature: Users can "like" QR codes, with a limit of one like per code.
- Profile Page: User can present hismelf editing Profile section and sharing f.e. link to socials.
The content of QR Code is not stored in a database, so the Image is a "Data Storage".
-
Clone the repository:
git clone https://github.com/peroxovy/genqr.git
-
Install dependencies:
composer install npm install
-
Configure
config/services.php
with Google OAuth credentials:'google' => [ 'client_id' => 'your_client_id', 'client_secret' => 'your_client_secret', 'redirect' => 'https://{app_url}/login/google/callback', ],
-
Edit your
.env
file with correct database name. -
Run migrations and seed database:
php artisan migrate --seed
-
Generate an application key:
php artisan key:generate
-
Create storage link:
php artisan storage:link
-
Compile vite assets:
- For production:
npm run build
- For development:
npm run dev
- For production:
-
Start development server:
php artisan serve
If you are willing to change your username inside an application, please run following command in CLI:
php artisan queue:work
It's responsible for handling for any scheduled jobs. In our case it is handling directory-rename algorithm done in the background.
Also you can use Supervisor, that will run in the background like cron job
.
- PHP in version 8.1.1
- Laravel in version 10.17.1
- Livewire(fresh after beta) in version 3.0.1
- Alpine.js
- TailwindCSS
- laravel/socialite for Google authentication
- simplesoftwareio/simple-qrcode for QR Code generating
- wire-elements/modal for Livewire modals
- ImageMagick for handling images with PHP