A Laravel + React application for managing user invitations with role-based access control. Users can send invitations via email, and recipients can register using invitation links.
- Send user invitations via email
- Role-based user management
- Email verification system
- User authentication and registration
- Dashboard with user and invitation management
- Responsive UI with modern React components
- PHP 8.1+
- Composer
- Node.js 18+
- MySQL or SQLite database
-
Clone the repository
git clone <repository-url> cd user-invitation
-
Install PHP dependencies
composer install
-
Install Node.js dependencies
npm install
-
Environment setup
cp .env.example .env php artisan key:generate
-
Configure database Update your
.env
file with database credentials:DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=user_invitation DB_USERNAME=your_username DB_PASSWORD=your_password
-
Configure email settings Update your
.env
file with email credentials (required for invitations):MAIL_MAILER=smtp MAIL_HOST=your-smtp-host MAIL_PORT=587 MAIL_USERNAME=your-email@example.com MAIL_PASSWORD=your-email-password MAIL_ENCRYPTION=tls MAIL_FROM_ADDRESS=your-email@example.com MAIL_FROM_NAME="User Invitation System"
-
Run database migrations
php artisan migrate
-
Seed the database (optional)
php artisan db:seed
-
Start the development server
composer run dev
-
Visit the application Open your browser and go to
http://localhost:8000
- After seeding, log in with one of the seeded accounts:
- Admin:
admin@test.com
/password
- User:
user@test.com
/password
- Admin:
- Access the dashboard (only admin can manage users and send invitations)
- Recipients will receive invitation emails with registration links
- Users can register using the invitation tokens
- Backend: Laravel 12, PHP 8.1+
- Frontend: React 18, TypeScript, Inertia.js
- Styling: Tailwind CSS, shadcn/ui components
- Database: MySQL/SQLite
- Build Tool: Vite