A Laravel 12 + React + Inertia.js application for managing work requests and forms at Joshua Generation Church.
- 📝 Work request form management
- 🔐 Secure authentication with Laravel Fortify
- 🔑 Passkey (WebAuthn) support - Login with Face ID, Touch ID, or Windows Hello
- 👤 Two-factor authentication
- 📊 Form submission tracking
- 🎨 Modern UI with React and Tailwind CSS
Run the setup script to automatically configure your local environment:
chmod +x setup.sh
./setup.shThe script will guide you through:
- Installing dependencies
- Setting up the database
- Configuring environment variables
- Building frontend assets
- Setting up WebAuthn/Passkey support
- Configuring HTTPS for local development
See SETUP_GUIDE.md for detailed manual installation instructions.
- PHP 8.2+
- Composer
- Node.js 18+
- MySQL or PostgreSQL
- Laravel Herd (recommended) or any PHP server with HTTPS support
- Backend: Laravel 12
- Frontend: React 19 + TypeScript
- UI Framework: Inertia.js
- Styling: Tailwind CSS 4
- Authentication: Laravel Fortify + WebAuthn
- Build Tool: Vite 7
This application supports passwordless authentication using passkeys:
- 🍎 Face ID / Touch ID on Apple devices
- 🪟 Windows Hello on Windows
- 🤖 Fingerprint / Face unlock on Android
- 🔐 Hardware security keys (YubiKey, etc.)
The main setup script includes full passkey configuration:
./setup.sh- 📖 SETUP_GUIDE.md - Complete setup guide with WebAuthn/Passkey configuration
- 📝 setup.sh - Automated setup script
Start the development server:
# Terminal 1: Frontend dev server
npm run dev
# Terminal 2: Laravel server (if not using Herd)
php artisan serveVisit https://your-site.test (or http://localhost:8000)
The application is deployed on Cloudways at: https://office.joshgen.org
When deploying to production, ALWAYS follow these steps in order:
- Update code files via SSH or SFTP
- Install/update dependencies:
composer install --no-dev --optimize-autoloader - Set environment variables in
.env:APP_ENV=productionAPP_DEBUG=falseWEBAUTHN_USERLESS=true(required for passkey login)
- Clear config cache COMPLETELY:
rm -f bootstrap/cache/config.php php artisan config:clear php artisan config:cache
- Run database migrations:
php artisan migrate --force - Build frontend assets:
./node_modules/.bin/vite build - Clear Laravel caches:
php artisan route:clear php artisan view:clear
- Verify config:
php artisan config:show webauthn.userless(should returntrue)
Critical: Config cache must be cleared AFTER changing .env or passkey login will fail with "Authentication failed" error.
For detailed production deployment instructions and troubleshooting, see SETUP_GUIDE.md - Production Deployment
├── app/ # Laravel application
├── resources/
│ ├── js/ # React components and pages
│ └── views/ # Blade templates
├── routes/ # Application routes
├── database/ # Migrations and seeders
├── public/ # Public assets
└── tests/ # Test files
- 📘 Complete Setup Guide - Local development, WebAuthn/Passkey configuration, and deployment
- 🚀 Automated Setup Script - One-command setup for local development
- Clone the repository
- Run
./setup.shto set up your environment - Create a feature branch
- Make your changes
- Submit a pull request
Proprietary - Joshua Generation Church
For issues or questions, contact the development team or check the documentation files.
Built with ❤️ for Joshua Generation Church