feat: Implement comprehensive onboarding system for new users

Add complete user onboarding flow that redirects new users to complete their
profile before accessing the application:

- Add onboarding_completed boolean field to users with migration
- Create OnboardingController with form validation and completion logic
- Design professional onboarding UI with progressive disclosure for company info
- Implement Stimulus controller for toggling company information section
- Add application-wide redirect middleware for incomplete users
- Create comprehensive test suite for all onboarding functionality
- Update test fixtures and helpers to support onboarding in existing tests

The onboarding collects required first/last name and optional company information.
Users are redirected to onboarding after login until profile is completed.
Features smooth animations, full-width form button, and clean UX design.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
kbe
2025-09-08 11:38:28 +02:00
parent 935974b70a
commit 89bda03f45
16 changed files with 472 additions and 8 deletions

View File

@@ -17,6 +17,18 @@ module ActiveSupport
fixtures :all
# Add more helper methods to be used by all tests here...
# Helper to create users with completed onboarding by default for tests
def create_test_user(attributes = {})
User.create!({
email: "test#{rand(10000)}@example.com",
password: "password123",
password_confirmation: "password123",
first_name: "Test",
last_name: "User",
onboarding_completed: true
}.merge(attributes))
end
end
end