Refactor user information handling and improve the post-login experience.
* **Login Flow & User Profile:**
* Introduced `UserInfoService` to centralize user data storage and retrieval from local storage, replacing direct `localStorage` access for user `person` data.
* Modified the `LoginPage` to use `userInfoService.updateUserInfo()` after successful OTP verification.
* Implemented immediate fetching of the full user profile (`fetchUserProfile`) after login to ensure up-to-date user details.
* Adjusted post-login navigation logic: users with a complete profile (indicated by `userInfo?.username`) are now directed to the campaigns page, while those with incomplete profiles are guided to the profile page for completion.
* **UI/UX Improvements:**
* The `CustomRadio` component now displays its `value` as a fallback if no `label` is explicitly provided, improving usability for radio buttons.
* Adjusted styling for form field labels in `DynamicForm` to include a bottom margin, enhancing visual separation and readability.
- Added ProfileCard component to display user profile information.
- Created DashboardLayout for consistent layout structure.
- Defined Campaign and related types for campaign management.
- Developed CampaignDetailPage for viewing individual campaign details.
- Implemented CampaignsPage for listing and filtering campaigns.
- Enhanced DashboardPage with user profile fetching and navigation.
- Built RegisterPage for user profile registration and updates.
- Added user service for fetching and updating user profiles.
- Established campaigns service for managing campaign data and interactions.
- Updated routing constants and router configuration for new pages.