This technical test is designed to evaluate your coding skills and is your chance to show off your ability to write clear, maintainable, well-tested code.
- PHP >= 8.2
- Node.js >= 18
- Composer >= 2.0
- SQLite
-
Clone the repository
git clone <repository-url> cd laravel-react-test
-
Install PHP dependencies
composer install
-
Install Node.js dependencies
npm install
-
Environment setup
cp .env.example .env php artisan key:generate
-
Database setup
touch database/database.sqlite php artisan migrate php artisan db:seed
- Start full development environment (Laravel server, queue worker, logs, Vite)
composer dev
-
Run PHP tests
composer test -
Run Pest tests directly
php artisan test vendor/bin/pest
-
Run ESLint and auto-fix issues
npm run lint
-
Run TypeScript type checking
npm run types
-
Format code with Prettier
npm run format npm run format:check
-
Format PHP code (Laravel Pint)
vendor/bin/pint
id- Primary keyname- User's full nameemail- Unique email addressemail_verified_at- Email verification timestamppassword- Hashed passwordremember_token- Remember me tokencreated_at,updated_at- Timestamps
id- Primary keyuser_id- Foreign key to users tablename- Post titlecontent- Post content (text)category- Post category (nullable)created_at,updated_at- Timestamps
id- Primary keyuser_id- Foreign key to users tablepost_id- Foreign key to posts tablecontent- Comment content (text)created_at,updated_at- Timestamps
password_reset_tokens- Password reset functionalitysessions- User session managementcache- Application cache storagejobs- Queue job storage
resources/js/
├── components/ # Reusable UI components
│ ├── ui/ # Radix UI + shadcn/ui components
│ └── ... # Custom components
├── hooks/ # Custom React hooks
├── layouts/ # Page layouts (auth, app, settings)
├── lib/ # Utilities and helpers
├── pages/ # Inertia.js pages
│ ├── auth/ # Authentication pages
│ ├── posts/ # Blog post pages
│ └── settings/ # User settings pages
└── types/ # TypeScript type definitions
app/
├── Http/
│ ├── Controllers/ # Request handlers
│ ├── Middleware/ # HTTP middleware
│ └── Requests/ # Form request validation
├── Models/ # Eloquent models
└── Providers/ # Service providers
resources/js/app.tsx- React application entry pointapp/Http/Middleware/HandleInertiaRequests.php- Shared data providerroutes/web.php- Main route definitionsroutes/auth.php- Authentication routesroutes/settings.php- User settings routesvite.config.ts- Frontend build configuration
- Tailwind CSS v4 with CSS-in-JS support
- Component variants using
class-variance-authority - Custom UI components following Radix + shadcn/ui patterns
- Appearance system with light/dark mode support
- Responsive design with mobile-first approach
/login- User login/register- User registration/forgot-password- Password reset request/reset-password- Password reset form/verify-email- Email verification
/dashboard- Main dashboard/posts- Blog posts listing/posts/create- Create new post/posts/{id}- View individual post/posts/{id}/edit- Edit post
/settings/profile- User profile settings/settings/password- Password change/settings/appearance- Theme preferences