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