Skip to content

fix: improve timeline input , ui improvement and fixes for participat…#442

Merged
Benjtalkshow merged 1 commit intoboundlessfi:mainfrom
Benjtalkshow:ui-fixes
Mar 4, 2026
Merged

fix: improve timeline input , ui improvement and fixes for participat…#442
Benjtalkshow merged 1 commit intoboundlessfi:mainfrom
Benjtalkshow:ui-fixes

Conversation

@Benjtalkshow
Copy link
Collaborator

@Benjtalkshow Benjtalkshow commented Mar 4, 2026

Summary by CodeRabbit

  • New Features

    • Expanded team size controls to appear for both team and team-or-individual participant types.
    • Added validation requiring at least one submission requirement (GitHub, demo video, or other links) to be selected.
  • Style

    • Improved time input field styling with adjusted width and enhanced visual appearance.

@vercel
Copy link

vercel bot commented Mar 4, 2026

@Benjtalkshow is attempting to deploy a commit to the Threadflow Team on Vercel.

A member of the Team first needs to authorize it.

@coderabbitai
Copy link

coderabbitai bot commented Mar 4, 2026

Caution

Review failed

Pull request was closed or merged during review

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: f4e5ef16-da2f-4650-9a15-a4dc13d1f4c7

📥 Commits

Reviewing files that changed from the base of the PR and between 336ccc0 and 076ee4e.

📒 Files selected for processing (3)
  • components/organization/hackathons/new/tabs/ParticipantTab.tsx
  • components/organization/hackathons/new/tabs/components/timeline/DateTimeInput.tsx
  • components/organization/hackathons/new/tabs/schemas/participantSchema.ts

📝 Walkthrough

Walkthrough

Three related changes to hackathon participant configuration: expanded team size UI visibility to include hybrid participant types, adjusted datetime input styling and width, and added cross-field validation requiring at least one submission requirement selection.

Changes

Cohort / File(s) Summary
Hackathon Participant Configuration
components/organization/hackathons/new/tabs/ParticipantTab.tsx, components/organization/hackathons/new/tabs/components/timeline/DateTimeInput.tsx, components/organization/hackathons/new/tabs/schemas/participantSchema.ts
Expanded Team Size settings rendering condition from 'team' to include 'team_or_individual'; adjusted datetime input width (w-32 → w-40) and styling; added superRefine validation requiring at least one submission requirement (GitHub, demo video, or additional links) to be enabled.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~8 minutes

Suggested reviewers

  • 0xdevcollins

Poem

🐰 A hop and a bound through the form redesign,
Team options now gleam with a broader shine,
Timestamps styled fresh, validation runs tight,
Hackathon setup takes flight!

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title addresses multiple changes in the PR including timeline input improvements, UI improvements, and participant tab fixes, all of which are present in the changeset.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@Benjtalkshow Benjtalkshow merged commit 1f2cb91 into boundlessfi:main Mar 4, 2026
5 of 7 checks passed
0xdevcollins added a commit that referenced this pull request Mar 6, 2026
* fix: improve timeline input , ui improvement and fixes for participation tab (#442)

* feat: integrate Sentry for error tracking and reporting

- Added Sentry configuration for both server and edge environments to capture errors and performance metrics.
- Updated error handling across various components to report errors to Sentry, enhancing monitoring capabilities.
- Introduced a new MessagesProvider for managing in-app messaging and notifications.
- Refactored the .env.example file to include Sentry DSN and related configurations for production environments.
- Removed the deprecated connect-wallet component to streamline the codebase.

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* UI fixes (#445)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: handle potential null values in notification data

- Updated notification handling to safely access properties using optional chaining.
- Ensured that the notification data is checked for null values before accessing its properties in various components, improving robustness and preventing runtime errors.

* feat: Enforce Submission Requirements (requireGithub, requireDemoVideo, requireOtherLinks) (#443)

* feat: enforce submission requirements (requireGithub, requireDemoVideo, requireOtherLinks)

- Add dynamic schema validation based on currentHackathon flags
- Enforce requireDemoVideo at schema level with Zod refine
- Add Step 2 validation for requireGithub, requireDemoVideo, requireOtherLinks
- Add final validation pass in onSubmit before API call
- Add dynamic asterisk (*) to required field labels
- Add legend and helper text for required fields
- Wrap links section in FormField for proper error display

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* feat: prevent removal of required links and style required asterisks in red

Made-with: Cursor

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>

* feat(submissions): enforce team size limits (teamMin, teamMax) (#446)

* feat(submissions): enforce team size limits (teamMin, teamMax)

- Add validation in handleNext (Step 0) to block progression when team
  size is below teamMin, showing specific message with members needed
- Guard handleAddInvitee function to prevent adding members when team
  reaches teamMax capacity
- Add capacity indicator Badge showing "X / Y members" with visual
  states: orange when below minimum, yellow when at capacity
- Disable "Add Member" button and inputs when team is full
- Display helper text when team is below minimum requirement

Closes #405

* fix(submissions): remove hardcoded team size fallbacks

- Use undefined instead of hardcoded defaults (1, 10)
- Add hasTeamLimits guard to only enforce when hackathon defines limits
- Conditionally render Badge and helper text when limits are defined

* refactor: enhance error handling and submission response structure

- Introduced a utility function to standardize API error messages across submission operations.
- Updated the create and update submission functions to handle optional chaining for response checks.
- Improved the response structure to include messages for successful submissions.
- Adjusted the CreateSubmissionRequest interface to remove the hackathonId field and made organizationId optional in the update submission request.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>
Benjtalkshow added a commit that referenced this pull request Mar 9, 2026
* fix: improve timeline input , ui improvement and fixes for participation tab

* merg to prod (#450)

* fix: improve timeline input , ui improvement and fixes for participation tab (#442)

* feat: integrate Sentry for error tracking and reporting

- Added Sentry configuration for both server and edge environments to capture errors and performance metrics.
- Updated error handling across various components to report errors to Sentry, enhancing monitoring capabilities.
- Introduced a new MessagesProvider for managing in-app messaging and notifications.
- Refactored the .env.example file to include Sentry DSN and related configurations for production environments.
- Removed the deprecated connect-wallet component to streamline the codebase.

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* UI fixes (#445)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: handle potential null values in notification data

- Updated notification handling to safely access properties using optional chaining.
- Ensured that the notification data is checked for null values before accessing its properties in various components, improving robustness and preventing runtime errors.

* feat: Enforce Submission Requirements (requireGithub, requireDemoVideo, requireOtherLinks) (#443)

* feat: enforce submission requirements (requireGithub, requireDemoVideo, requireOtherLinks)

- Add dynamic schema validation based on currentHackathon flags
- Enforce requireDemoVideo at schema level with Zod refine
- Add Step 2 validation for requireGithub, requireDemoVideo, requireOtherLinks
- Add final validation pass in onSubmit before API call
- Add dynamic asterisk (*) to required field labels
- Add legend and helper text for required fields
- Wrap links section in FormField for proper error display

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* feat: prevent removal of required links and style required asterisks in red

Made-with: Cursor

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>

* feat(submissions): enforce team size limits (teamMin, teamMax) (#446)

* feat(submissions): enforce team size limits (teamMin, teamMax)

- Add validation in handleNext (Step 0) to block progression when team
  size is below teamMin, showing specific message with members needed
- Guard handleAddInvitee function to prevent adding members when team
  reaches teamMax capacity
- Add capacity indicator Badge showing "X / Y members" with visual
  states: orange when below minimum, yellow when at capacity
- Disable "Add Member" button and inputs when team is full
- Display helper text when team is below minimum requirement

Closes #405

* fix(submissions): remove hardcoded team size fallbacks

- Use undefined instead of hardcoded defaults (1, 10)
- Add hasTeamLimits guard to only enforce when hackathon defines limits
- Conditionally render Badge and helper text when limits are defined

* refactor: enhance error handling and submission response structure

- Introduced a utility function to standardize API error messages across submission operations.
- Updated the create and update submission functions to handle optional chaining for response checks.
- Improved the response structure to include messages for successful submissions.
- Adjusted the CreateSubmissionRequest interface to remove the hackathonId field and made organizationId optional in the update submission request.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>

* UI fixes (#451) (#453)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* ui-fixes (#455)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* merge to prod (#457)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* merg to prod (#459)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>

* merg to prod (#461)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

* Docs: add comprehensive bug test report for organization features (#456)

* Test: add comprehensive bug test report for organization features

* docs: update bug test report for organization features and address critical issues

* fix: update branch name in bug test report and upgrade dompurify to version 3.3.2

* fix: update the milestone submission flow for campaign

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>

---------

Co-authored-by: Collins Ikechukwu <collinschristroa@gmail.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>
Benjtalkshow added a commit that referenced this pull request Mar 9, 2026
* fix: improve timeline input , ui improvement and fixes for participation tab

* merg to prod (#450)

* fix: improve timeline input , ui improvement and fixes for participation tab (#442)

* feat: integrate Sentry for error tracking and reporting

- Added Sentry configuration for both server and edge environments to capture errors and performance metrics.
- Updated error handling across various components to report errors to Sentry, enhancing monitoring capabilities.
- Introduced a new MessagesProvider for managing in-app messaging and notifications.
- Refactored the .env.example file to include Sentry DSN and related configurations for production environments.
- Removed the deprecated connect-wallet component to streamline the codebase.

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* UI fixes (#445)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: handle potential null values in notification data

- Updated notification handling to safely access properties using optional chaining.
- Ensured that the notification data is checked for null values before accessing its properties in various components, improving robustness and preventing runtime errors.

* feat: Enforce Submission Requirements (requireGithub, requireDemoVideo, requireOtherLinks) (#443)

* feat: enforce submission requirements (requireGithub, requireDemoVideo, requireOtherLinks)

- Add dynamic schema validation based on currentHackathon flags
- Enforce requireDemoVideo at schema level with Zod refine
- Add Step 2 validation for requireGithub, requireDemoVideo, requireOtherLinks
- Add final validation pass in onSubmit before API call
- Add dynamic asterisk (*) to required field labels
- Add legend and helper text for required fields
- Wrap links section in FormField for proper error display

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* feat: prevent removal of required links and style required asterisks in red

Made-with: Cursor

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>

* feat(submissions): enforce team size limits (teamMin, teamMax) (#446)

* feat(submissions): enforce team size limits (teamMin, teamMax)

- Add validation in handleNext (Step 0) to block progression when team
  size is below teamMin, showing specific message with members needed
- Guard handleAddInvitee function to prevent adding members when team
  reaches teamMax capacity
- Add capacity indicator Badge showing "X / Y members" with visual
  states: orange when below minimum, yellow when at capacity
- Disable "Add Member" button and inputs when team is full
- Display helper text when team is below minimum requirement

Closes #405

* fix(submissions): remove hardcoded team size fallbacks

- Use undefined instead of hardcoded defaults (1, 10)
- Add hasTeamLimits guard to only enforce when hackathon defines limits
- Conditionally render Badge and helper text when limits are defined

* refactor: enhance error handling and submission response structure

- Introduced a utility function to standardize API error messages across submission operations.
- Updated the create and update submission functions to handle optional chaining for response checks.
- Improved the response structure to include messages for successful submissions.
- Adjusted the CreateSubmissionRequest interface to remove the hackathonId field and made organizationId optional in the update submission request.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>

* UI fixes (#451) (#453)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* ui-fixes (#455)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* merge to prod (#457)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* merg to prod (#459)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>

* merg to prod (#461)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

* Docs: add comprehensive bug test report for organization features (#456)

* Test: add comprehensive bug test report for organization features

* docs: update bug test report for organization features and address critical issues

* fix: update branch name in bug test report and upgrade dompurify to version 3.3.2

* fix: update the milestone submission flow for campaign

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>

---------

Co-authored-by: Collins Ikechukwu <collinschristroa@gmail.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>
Benjtalkshow added a commit that referenced this pull request Mar 9, 2026
* fix: improve timeline input , ui improvement and fixes for participation tab

* merg to prod (#450)

* fix: improve timeline input , ui improvement and fixes for participation tab (#442)

* feat: integrate Sentry for error tracking and reporting

- Added Sentry configuration for both server and edge environments to capture errors and performance metrics.
- Updated error handling across various components to report errors to Sentry, enhancing monitoring capabilities.
- Introduced a new MessagesProvider for managing in-app messaging and notifications.
- Refactored the .env.example file to include Sentry DSN and related configurations for production environments.
- Removed the deprecated connect-wallet component to streamline the codebase.

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* UI fixes (#445)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: handle potential null values in notification data

- Updated notification handling to safely access properties using optional chaining.
- Ensured that the notification data is checked for null values before accessing its properties in various components, improving robustness and preventing runtime errors.

* feat: Enforce Submission Requirements (requireGithub, requireDemoVideo, requireOtherLinks) (#443)

* feat: enforce submission requirements (requireGithub, requireDemoVideo, requireOtherLinks)

- Add dynamic schema validation based on currentHackathon flags
- Enforce requireDemoVideo at schema level with Zod refine
- Add Step 2 validation for requireGithub, requireDemoVideo, requireOtherLinks
- Add final validation pass in onSubmit before API call
- Add dynamic asterisk (*) to required field labels
- Add legend and helper text for required fields
- Wrap links section in FormField for proper error display

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* feat: prevent removal of required links and style required asterisks in red

Made-with: Cursor

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>

* feat(submissions): enforce team size limits (teamMin, teamMax) (#446)

* feat(submissions): enforce team size limits (teamMin, teamMax)

- Add validation in handleNext (Step 0) to block progression when team
  size is below teamMin, showing specific message with members needed
- Guard handleAddInvitee function to prevent adding members when team
  reaches teamMax capacity
- Add capacity indicator Badge showing "X / Y members" with visual
  states: orange when below minimum, yellow when at capacity
- Disable "Add Member" button and inputs when team is full
- Display helper text when team is below minimum requirement

Closes #405

* fix(submissions): remove hardcoded team size fallbacks

- Use undefined instead of hardcoded defaults (1, 10)
- Add hasTeamLimits guard to only enforce when hackathon defines limits
- Conditionally render Badge and helper text when limits are defined

* refactor: enhance error handling and submission response structure

- Introduced a utility function to standardize API error messages across submission operations.
- Updated the create and update submission functions to handle optional chaining for response checks.
- Improved the response structure to include messages for successful submissions.
- Adjusted the CreateSubmissionRequest interface to remove the hackathonId field and made organizationId optional in the update submission request.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>

* UI fixes (#451) (#453)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* ui-fixes (#455)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* merge to prod (#457)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* merg to prod (#459)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>

* merg to prod (#461)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

* Docs: add comprehensive bug test report for organization features (#456)

* Test: add comprehensive bug test report for organization features

* docs: update bug test report for organization features and address critical issues

* fix: update branch name in bug test report and upgrade dompurify to version 3.3.2

* fix: update the milestone submission flow for campaign

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>

---------

Co-authored-by: Collins Ikechukwu <collinschristroa@gmail.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>
Benjtalkshow added a commit that referenced this pull request Mar 9, 2026
* merg to prod (#450)

* fix: improve timeline input , ui improvement and fixes for participation tab (#442)

* feat: integrate Sentry for error tracking and reporting

- Added Sentry configuration for both server and edge environments to capture errors and performance metrics.
- Updated error handling across various components to report errors to Sentry, enhancing monitoring capabilities.
- Introduced a new MessagesProvider for managing in-app messaging and notifications.
- Refactored the .env.example file to include Sentry DSN and related configurations for production environments.
- Removed the deprecated connect-wallet component to streamline the codebase.

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* UI fixes (#445)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: handle potential null values in notification data

- Updated notification handling to safely access properties using optional chaining.
- Ensured that the notification data is checked for null values before accessing its properties in various components, improving robustness and preventing runtime errors.

* feat: Enforce Submission Requirements (requireGithub, requireDemoVideo, requireOtherLinks) (#443)

* feat: enforce submission requirements (requireGithub, requireDemoVideo, requireOtherLinks)

- Add dynamic schema validation based on currentHackathon flags
- Enforce requireDemoVideo at schema level with Zod refine
- Add Step 2 validation for requireGithub, requireDemoVideo, requireOtherLinks
- Add final validation pass in onSubmit before API call
- Add dynamic asterisk (*) to required field labels
- Add legend and helper text for required fields
- Wrap links section in FormField for proper error display

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* feat: prevent removal of required links and style required asterisks in red

Made-with: Cursor

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>

* feat(submissions): enforce team size limits (teamMin, teamMax) (#446)

* feat(submissions): enforce team size limits (teamMin, teamMax)

- Add validation in handleNext (Step 0) to block progression when team
  size is below teamMin, showing specific message with members needed
- Guard handleAddInvitee function to prevent adding members when team
  reaches teamMax capacity
- Add capacity indicator Badge showing "X / Y members" with visual
  states: orange when below minimum, yellow when at capacity
- Disable "Add Member" button and inputs when team is full
- Display helper text when team is below minimum requirement

Closes #405

* fix(submissions): remove hardcoded team size fallbacks

- Use undefined instead of hardcoded defaults (1, 10)
- Add hasTeamLimits guard to only enforce when hackathon defines limits
- Conditionally render Badge and helper text when limits are defined

* refactor: enhance error handling and submission response structure

- Introduced a utility function to standardize API error messages across submission operations.
- Updated the create and update submission functions to handle optional chaining for response checks.
- Improved the response structure to include messages for successful submissions.
- Adjusted the CreateSubmissionRequest interface to remove the hackathonId field and made organizationId optional in the update submission request.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>

* UI fixes (#451) (#453)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* ui-fixes (#455)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* merge to prod (#457)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* merg to prod (#459)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>

* merg to prod (#461)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

* Docs: add comprehensive bug test report for organization features (#456)

* Test: add comprehensive bug test report for organization features

* docs: update bug test report for organization features and address critical issues

* fix: update branch name in bug test report and upgrade dompurify to version 3.3.2

* fix: update the milestone submission flow for campaign

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>

---------

Co-authored-by: Collins Ikechukwu <collinschristroa@gmail.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>
Benjtalkshow added a commit that referenced this pull request Mar 9, 2026
* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

* Docs: add comprehensive bug test report for organization features (#456)

* Test: add comprehensive bug test report for organization features

* docs: update bug test report for organization features and address critical issues

* fix: update branch name in bug test report and upgrade dompurify to version 3.3.2

* fix: update the milestone submission flow for campaign

* UI fixes (#458)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* fix: fix auto refresh ib submission page

* fix: hackathon submission fixes

* fix: fix coderabbit corrections

* fix: fix coderabbit corrections

* chore: write boundless on x challenge blog

* fix: remove blog

* Blog fix (#464)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* fix: fix auto refresh ib submission page

* fix: hackathon submission fixes

* fix: fix coderabbit corrections

* fix: fix coderabbit corrections

* chore: write boundless on x challenge blog

* fix: remove blog

* chore: add blog content

* Blog fix (#465)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* fix: fix auto refresh ib submission page

* fix: hackathon submission fixes

* fix: fix coderabbit corrections

* fix: fix coderabbit corrections

* chore: write boundless on x challenge blog

* fix: remove blog

* chore: add blog content

* fix: fix broken blog image and notification redirect

* merge fork main to boundlessfi main (#468)

* fix: improve timeline input , ui improvement and fixes for participation tab

* merg to prod (#450)

* fix: improve timeline input , ui improvement and fixes for participation tab (#442)

* feat: integrate Sentry for error tracking and reporting

- Added Sentry configuration for both server and edge environments to capture errors and performance metrics.
- Updated error handling across various components to report errors to Sentry, enhancing monitoring capabilities.
- Introduced a new MessagesProvider for managing in-app messaging and notifications.
- Refactored the .env.example file to include Sentry DSN and related configurations for production environments.
- Removed the deprecated connect-wallet component to streamline the codebase.

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* UI fixes (#445)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: handle potential null values in notification data

- Updated notification handling to safely access properties using optional chaining.
- Ensured that the notification data is checked for null values before accessing its properties in various components, improving robustness and preventing runtime errors.

* feat: Enforce Submission Requirements (requireGithub, requireDemoVideo, requireOtherLinks) (#443)

* feat: enforce submission requirements (requireGithub, requireDemoVideo, requireOtherLinks)

- Add dynamic schema validation based on currentHackathon flags
- Enforce requireDemoVideo at schema level with Zod refine
- Add Step 2 validation for requireGithub, requireDemoVideo, requireOtherLinks
- Add final validation pass in onSubmit before API call
- Add dynamic asterisk (*) to required field labels
- Add legend and helper text for required fields
- Wrap links section in FormField for proper error display

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* feat: prevent removal of required links and style required asterisks in red

Made-with: Cursor

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>

* feat(submissions): enforce team size limits (teamMin, teamMax) (#446)

* feat(submissions): enforce team size limits (teamMin, teamMax)

- Add validation in handleNext (Step 0) to block progression when team
  size is below teamMin, showing specific message with members needed
- Guard handleAddInvitee function to prevent adding members when team
  reaches teamMax capacity
- Add capacity indicator Badge showing "X / Y members" with visual
  states: orange when below minimum, yellow when at capacity
- Disable "Add Member" button and inputs when team is full
- Display helper text when team is below minimum requirement

Closes #405

* fix(submissions): remove hardcoded team size fallbacks

- Use undefined instead of hardcoded defaults (1, 10)
- Add hasTeamLimits guard to only enforce when hackathon defines limits
- Conditionally render Badge and helper text when limits are defined

* refactor: enhance error handling and submission response structure

- Introduced a utility function to standardize API error messages across submission operations.
- Updated the create and update submission functions to handle optional chaining for response checks.
- Improved the response structure to include messages for successful submissions.
- Adjusted the CreateSubmissionRequest interface to remove the hackathonId field and made organizationId optional in the update submission request.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>

* UI fixes (#451) (#453)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* ui-fixes (#455)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* merge to prod (#457)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* merg to prod (#459)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>

* merg to prod (#461)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

* Docs: add comprehensive bug test report for organization features (#456)

* Test: add comprehensive bug test report for organization features

* docs: update bug test report for organization features and address critical issues

* fix: update branch name in bug test report and upgrade dompurify to version 3.3.2

* fix: update the milestone submission flow for campaign

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>

---------

Co-authored-by: Collins Ikechukwu <collinschristroa@gmail.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>

* merge to main (#469)

* fix: improve timeline input , ui improvement and fixes for participation tab

* merg to prod (#450)

* fix: improve timeline input , ui improvement and fixes for participation tab (#442)

* feat: integrate Sentry for error tracking and reporting

- Added Sentry configuration for both server and edge environments to capture errors and performance metrics.
- Updated error handling across various components to report errors to Sentry, enhancing monitoring capabilities.
- Introduced a new MessagesProvider for managing in-app messaging and notifications.
- Refactored the .env.example file to include Sentry DSN and related configurations for production environments.
- Removed the deprecated connect-wallet component to streamline the codebase.

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* UI fixes (#445)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: handle potential null values in notification data

- Updated notification handling to safely access properties using optional chaining.
- Ensured that the notification data is checked for null values before accessing its properties in various components, improving robustness and preventing runtime errors.

* feat: Enforce Submission Requirements (requireGithub, requireDemoVideo, requireOtherLinks) (#443)

* feat: enforce submission requirements (requireGithub, requireDemoVideo, requireOtherLinks)

- Add dynamic schema validation based on currentHackathon flags
- Enforce requireDemoVideo at schema level with Zod refine
- Add Step 2 validation for requireGithub, requireDemoVideo, requireOtherLinks
- Add final validation pass in onSubmit before API call
- Add dynamic asterisk (*) to required field labels
- Add legend and helper text for required fields
- Wrap links section in FormField for proper error display

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* feat: prevent removal of required links and style required asterisks in red

Made-with: Cursor

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>

* feat(submissions): enforce team size limits (teamMin, teamMax) (#446)

* feat(submissions): enforce team size limits (teamMin, teamMax)

- Add validation in handleNext (Step 0) to block progression when team
  size is below teamMin, showing specific message with members needed
- Guard handleAddInvitee function to prevent adding members when team
  reaches teamMax capacity
- Add capacity indicator Badge showing "X / Y members" with visual
  states: orange when below minimum, yellow when at capacity
- Disable "Add Member" button and inputs when team is full
- Display helper text when team is below minimum requirement

Closes #405

* fix(submissions): remove hardcoded team size fallbacks

- Use undefined instead of hardcoded defaults (1, 10)
- Add hasTeamLimits guard to only enforce when hackathon defines limits
- Conditionally render Badge and helper text when limits are defined

* refactor: enhance error handling and submission response structure

- Introduced a utility function to standardize API error messages across submission operations.
- Updated the create and update submission functions to handle optional chaining for response checks.
- Improved the response structure to include messages for successful submissions.
- Adjusted the CreateSubmissionRequest interface to remove the hackathonId field and made organizationId optional in the update submission request.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>

* UI fixes (#451) (#453)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* ui-fixes (#455)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* merge to prod (#457)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* merg to prod (#459)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>

* merg to prod (#461)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

* Docs: add comprehensive bug test report for organization features (#456)

* Test: add comprehensive bug test report for organization features

* docs: update bug test report for organization features and address critical issues

* fix: update branch name in bug test report and upgrade dompurify to version 3.3.2

* fix: update the milestone submission flow for campaign

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>

---------

Co-authored-by: Collins Ikechukwu <collinschristroa@gmail.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>

* merge (#470)

* fix: improve timeline input , ui improvement and fixes for participation tab

* merg to prod (#450)

* fix: improve timeline input , ui improvement and fixes for participation tab (#442)

* feat: integrate Sentry for error tracking and reporting

- Added Sentry configuration for both server and edge environments to capture errors and performance metrics.
- Updated error handling across various components to report errors to Sentry, enhancing monitoring capabilities.
- Introduced a new MessagesProvider for managing in-app messaging and notifications.
- Refactored the .env.example file to include Sentry DSN and related configurations for production environments.
- Removed the deprecated connect-wallet component to streamline the codebase.

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* UI fixes (#445)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: handle potential null values in notification data

- Updated notification handling to safely access properties using optional chaining.
- Ensured that the notification data is checked for null values before accessing its properties in various components, improving robustness and preventing runtime errors.

* feat: Enforce Submission Requirements (requireGithub, requireDemoVideo, requireOtherLinks) (#443)

* feat: enforce submission requirements (requireGithub, requireDemoVideo, requireOtherLinks)

- Add dynamic schema validation based on currentHackathon flags
- Enforce requireDemoVideo at schema level with Zod refine
- Add Step 2 validation for requireGithub, requireDemoVideo, requireOtherLinks
- Add final validation pass in onSubmit before API call
- Add dynamic asterisk (*) to required field labels
- Add legend and helper text for required fields
- Wrap links section in FormField for proper error display

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* feat: prevent removal of required links and style required asterisks in red

Made-with: Cursor

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>

* feat(submissions): enforce team size limits (teamMin, teamMax) (#446)

* feat(submissions): enforce team size limits (teamMin, teamMax)

- Add validation in handleNext (Step 0) to block progression when team
  size is below teamMin, showing specific message with members needed
- Guard handleAddInvitee function to prevent adding members when team
  reaches teamMax capacity
- Add capacity indicator Badge showing "X / Y members" with visual
  states: orange when below minimum, yellow when at capacity
- Disable "Add Member" button and inputs when team is full
- Display helper text when team is below minimum requirement

Closes #405

* fix(submissions): remove hardcoded team size fallbacks

- Use undefined instead of hardcoded defaults (1, 10)
- Add hasTeamLimits guard to only enforce when hackathon defines limits
- Conditionally render Badge and helper text when limits are defined

* refactor: enhance error handling and submission response structure

- Introduced a utility function to standardize API error messages across submission operations.
- Updated the create and update submission functions to handle optional chaining for response checks.
- Improved the response structure to include messages for successful submissions.
- Adjusted the CreateSubmissionRequest interface to remove the hackathonId field and made organizationId optional in the update submission request.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>

* UI fixes (#451) (#453)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* ui-fixes (#455)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* merge to prod (#457)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* merg to prod (#459)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>

* merg to prod (#461)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

* Docs: add comprehensive bug test report for organization features (#456)

* Test: add comprehensive bug test report for organization features

* docs: update bug test report for organization features and address critical issues

* fix: update branch name in bug test report and upgrade dompurify to version 3.3.2

* fix: update the milestone submission flow for campaign

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>

---------

Co-authored-by: Collins Ikechukwu <collinschristroa@gmail.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>

* merge fork to main (#471)

* merg to prod (#450)

* fix: improve timeline input , ui improvement and fixes for participation tab (#442)

* feat: integrate Sentry for error tracking and reporting

- Added Sentry configuration for both server and edge environments to capture errors and performance metrics.
- Updated error handling across various components to report errors to Sentry, enhancing monitoring capabilities.
- Introduced a new MessagesProvider for managing in-app messaging and notifications.
- Refactored the .env.example file to include Sentry DSN and related configurations for production environments.
- Removed the deprecated connect-wallet component to streamline the codebase.

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* UI fixes (#445)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: handle potential null values in notification data

- Updated notification handling to safely access properties using optional chaining.
- Ensured that the notification data is checked for null values before accessing its properties in various components, improving robustness and preventing runtime errors.

* feat: Enforce Submission Requirements (requireGithub, requireDemoVideo, requireOtherLinks) (#443)

* feat: enforce submission requirements (requireGithub, requireDemoVideo, requireOtherLinks)

- Add dynamic schema validation based on currentHackathon flags
- Enforce requireDemoVideo at schema level with Zod refine
- Add Step 2 validation for requireGithub, requireDemoVideo, requireOtherLinks
- Add final validation pass in onSubmit before API call
- Add dynamic asterisk (*) to required field labels
- Add legend and helper text for required fields
- Wrap links section in FormField for proper error display

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* feat: prevent removal of required links and style required asterisks in red

Made-with: Cursor

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>

* feat(submissions): enforce team size limits (teamMin, teamMax) (#446)

* feat(submissions): enforce team size limits (teamMin, teamMax)

- Add validation in handleNext (Step 0) to block progression when team
  size is below teamMin, showing specific message with members needed
- Guard handleAddInvitee function to prevent adding members when team
  reaches teamMax capacity
- Add capacity indicator Badge showing "X / Y members" with visual
  states: orange when below minimum, yellow when at capacity
- Disable "Add Member" button and inputs when team is full
- Display helper text when team is below minimum requirement

Closes #405

* fix(submissions): remove hardcoded team size fallbacks

- Use undefined instead of hardcoded defaults (1, 10)
- Add hasTeamLimits guard to only enforce when hackathon defines limits
- Conditionally render Badge and helper text when limits are defined

* refactor: enhance error handling and submission response structure

- Introduced a utility function to standardize API error messages across submission operations.
- Updated the create and update submission functions to handle optional chaining for response checks.
- Improved the response structure to include messages for successful submissions.
- Adjusted the CreateSubmissionRequest interface to remove the hackathonId field and made organizationId optional in the update submission request.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>

* UI fixes (#451) (#453)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* ui-fixes (#455)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* merge to prod (#457)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* merg to prod (#459)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>

* merg to prod (#461)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

* Docs: add comprehensive bug test report for organization features (#456)

* Test: add comprehensive bug test report for organization features

* docs: update bug test report for organization features and address critical issues

* fix: update branch name in bug test report and upgrade dompurify to version 3.3.2

* fix: update the milestone submission flow for campaign

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>

---------

Co-authored-by: Collins Ikechukwu <collinschristroa@gmail.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>

* Create hackathon-detail-design.md (#466)

---------

Co-authored-by: Collins Ikechukwu <collinschristroa@gmail.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>
Co-authored-by: David Emulo <161654052+Davidemulo@users.noreply.github.com>
Benjtalkshow added a commit that referenced this pull request Mar 9, 2026
* merg to prod (#450)

* fix: improve timeline input , ui improvement and fixes for participation tab (#442)

* feat: integrate Sentry for error tracking and reporting

- Added Sentry configuration for both server and edge environments to capture errors and performance metrics.
- Updated error handling across various components to report errors to Sentry, enhancing monitoring capabilities.
- Introduced a new MessagesProvider for managing in-app messaging and notifications.
- Refactored the .env.example file to include Sentry DSN and related configurations for production environments.
- Removed the deprecated connect-wallet component to streamline the codebase.

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* UI fixes (#445)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: handle potential null values in notification data

- Updated notification handling to safely access properties using optional chaining.
- Ensured that the notification data is checked for null values before accessing its properties in various components, improving robustness and preventing runtime errors.

* feat: Enforce Submission Requirements (requireGithub, requireDemoVideo, requireOtherLinks) (#443)

* feat: enforce submission requirements (requireGithub, requireDemoVideo, requireOtherLinks)

- Add dynamic schema validation based on currentHackathon flags
- Enforce requireDemoVideo at schema level with Zod refine
- Add Step 2 validation for requireGithub, requireDemoVideo, requireOtherLinks
- Add final validation pass in onSubmit before API call
- Add dynamic asterisk (*) to required field labels
- Add legend and helper text for required fields
- Wrap links section in FormField for proper error display

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* feat: prevent removal of required links and style required asterisks in red

Made-with: Cursor

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>

* feat(submissions): enforce team size limits (teamMin, teamMax) (#446)

* feat(submissions): enforce team size limits (teamMin, teamMax)

- Add validation in handleNext (Step 0) to block progression when team
  size is below teamMin, showing specific message with members needed
- Guard handleAddInvitee function to prevent adding members when team
  reaches teamMax capacity
- Add capacity indicator Badge showing "X / Y members" with visual
  states: orange when below minimum, yellow when at capacity
- Disable "Add Member" button and inputs when team is full
- Display helper text when team is below minimum requirement

Closes #405

* fix(submissions): remove hardcoded team size fallbacks

- Use undefined instead of hardcoded defaults (1, 10)
- Add hasTeamLimits guard to only enforce when hackathon defines limits
- Conditionally render Badge and helper text when limits are defined

* refactor: enhance error handling and submission response structure

- Introduced a utility function to standardize API error messages across submission operations.
- Updated the create and update submission functions to handle optional chaining for response checks.
- Improved the response structure to include messages for successful submissions.
- Adjusted the CreateSubmissionRequest interface to remove the hackathonId field and made organizationId optional in the update submission request.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>

* UI fixes (#451) (#453)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* ui-fixes (#455)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* merge to prod (#457)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* merg to prod (#459)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>

* merg to prod (#461)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

* Docs: add comprehensive bug test report for organization features (#456)

* Test: add comprehensive bug test report for organization features

* docs: update bug test report for organization features and address critical issues

* fix: update branch name in bug test report and upgrade dompurify to version 3.3.2

* fix: update the milestone submission flow for campaign

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>

* Merge fixes to production (#467)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

* Docs: add comprehensive bug test report for organization features (#456)

* Test: add comprehensive bug test report for organization features

* docs: update bug test report for organization features and address critical issues

* fix: update branch name in bug test report and upgrade dompurify to version 3.3.2

* fix: update the milestone submission flow for campaign

* UI fixes (#458)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* fix: fix auto refresh ib submission page

* fix: hackathon submission fixes

* fix: fix coderabbit corrections

* fix: fix coderabbit corrections

* chore: write boundless on x challenge blog

* fix: remove blog

* Blog fix (#464)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* fix: fix auto refresh ib submission page

* fix: hackathon submission fixes

* fix: fix coderabbit corrections

* fix: fix coderabbit corrections

* chore: write boundless on x challenge blog

* fix: remove blog

* chore: add blog content

* Blog fix (#465)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* fix: fix auto refresh ib submission page

* fix: hackathon submission fixes

* fix: fix coderabbit corrections

* fix: fix coderabbit corrections

* chore: write boundless on x challenge blog

* fix: remove blog

* chore: add blog content

* fix: fix broken blog image and notification redirect

* merge fork main to boundlessfi main (#468)

* fix: improve timeline input , ui improvement and fixes for participation tab

* merg to prod (#450)

* fix: improve timeline input , ui improvement and fixes for participation tab (#442)

* feat: integrate Sentry for error tracking and reporting

- Added Sentry configuration for both server and edge environments to capture errors and performance metrics.
- Updated error handling across various components to report errors to Sentry, enhancing monitoring capabilities.
- Introduced a new MessagesProvider for managing in-app messaging and notifications.
- Refactored the .env.example file to include Sentry DSN and related configurations for production environments.
- Removed the deprecated connect-wallet component to streamline the codebase.

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* UI fixes (#445)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: handle potential null values in notification data

- Updated notification handling to safely access properties using optional chaining.
- Ensured that the notification data is checked for null values before accessing its properties in various components, improving robustness and preventing runtime errors.

* feat: Enforce Submission Requirements (requireGithub, requireDemoVideo, requireOtherLinks) (#443)

* feat: enforce submission requirements (requireGithub, requireDemoVideo, requireOtherLinks)

- Add dynamic schema validation based on currentHackathon flags
- Enforce requireDemoVideo at schema level with Zod refine
- Add Step 2 validation for requireGithub, requireDemoVideo, requireOtherLinks
- Add final validation pass in onSubmit before API call
- Add dynamic asterisk (*) to required field labels
- Add legend and helper text for required fields
- Wrap links section in FormField for proper error display

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* feat: prevent removal of required links and style required asterisks in red

Made-with: Cursor

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>

* feat(submissions): enforce team size limits (teamMin, teamMax) (#446)

* feat(submissions): enforce team size limits (teamMin, teamMax)

- Add validation in handleNext (Step 0) to block progression when team
  size is below teamMin, showing specific message with members needed
- Guard handleAddInvitee function to prevent adding members when team
  reaches teamMax capacity
- Add capacity indicator Badge showing "X / Y members" with visual
  states: orange when below minimum, yellow when at capacity
- Disable "Add Member" button and inputs when team is full
- Display helper text when team is below minimum requirement

Closes #405

* fix(submissions): remove hardcoded team size fallbacks

- Use undefined instead of hardcoded defaults (1, 10)
- Add hasTeamLimits guard to only enforce when hackathon defines limits
- Conditionally render Badge and helper text when limits are defined

* refactor: enhance error handling and submission response structure

- Introduced a utility function to standardize API error messages across submission operations.
- Updated the create and update submission functions to handle optional chaining for response checks.
- Improved the response structure to include messages for successful submissions.
- Adjusted the CreateSubmissionRequest interface to remove the hackathonId field and made organizationId optional in the update submission request.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>

* UI fixes (#451) (#453)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* ui-fixes (#455)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* merge to prod (#457)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* merg to prod (#459)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>

* merg to prod (#461)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

* Docs: add comprehensive bug test report for organization features (#456)

* Test: add comprehensive bug test report for organization features

* docs: update bug test report for organization features and address critical issues

* fix: update branch name in bug test report and upgrade dompurify to version 3.3.2

* fix: update the milestone submission flow for campaign

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>

---------

Co-authored-by: Collins Ikechukwu <collinschristroa@gmail.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>

* merge to main (#469)

* fix: improve timeline input , ui improvement and fixes for participation tab

* merg to prod (#450)

* fix: improve timeline input , ui improvement and fixes for participation tab (#442)

* feat: integrate Sentry for error tracking and reporting

- Added Sentry configuration for both server and edge environments to capture errors and performance metrics.
- Updated error handling across various components to report errors to Sentry, enhancing monitoring capabilities.
- Introduced a new MessagesProvider for managing in-app messaging and notifications.
- Refactored the .env.example file to include Sentry DSN and related configurations for production environments.
- Removed the deprecated connect-wallet component to streamline the codebase.

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* UI fixes (#445)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: handle potential null values in notification data

- Updated notification handling to safely access properties using optional chaining.
- Ensured that the notification data is checked for null values before accessing its properties in various components, improving robustness and preventing runtime errors.

* feat: Enforce Submission Requirements (requireGithub, requireDemoVideo, requireOtherLinks) (#443)

* feat: enforce submission requirements (requireGithub, requireDemoVideo, requireOtherLinks)

- Add dynamic schema validation based on currentHackathon flags
- Enforce requireDemoVideo at schema level with Zod refine
- Add Step 2 validation for requireGithub, requireDemoVideo, requireOtherLinks
- Add final validation pass in onSubmit before API call
- Add dynamic asterisk (*) to required field labels
- Add legend and helper text for required fields
- Wrap links section in FormField for proper error display

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* feat: prevent removal of required links and style required asterisks in red

Made-with: Cursor

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>

* feat(submissions): enforce team size limits (teamMin, teamMax) (#446)

* feat(submissions): enforce team size limits (teamMin, teamMax)

- Add validation in handleNext (Step 0) to block progression when team
  size is below teamMin, showing specific message with members needed
- Guard handleAddInvitee function to prevent adding members when team
  reaches teamMax capacity
- Add capacity indicator Badge showing "X / Y members" with visual
  states: orange when below minimum, yellow when at capacity
- Disable "Add Member" button and inputs when team is full
- Display helper text when team is below minimum requirement

Closes #405

* fix(submissions): remove hardcoded team size fallbacks

- Use undefined instead of hardcoded defaults (1, 10)
- Add hasTeamLimits guard to only enforce when hackathon defines limits
- Conditionally render Badge and helper text when limits are defined

* refactor: enhance error handling and submission response structure

- Introduced a utility function to standardize API error messages across submission operations.
- Updated the create and update submission functions to handle optional chaining for response checks.
- Improved the response structure to include messages for successful submissions.
- Adjusted the CreateSubmissionRequest interface to remove the hackathonId field and made organizationId optional in the update submission request.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>

* UI fixes (#451) (#453)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* ui-fixes (#455)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* merge to prod (#457)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* merg to prod (#459)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>

* merg to prod (#461)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

* Docs: add comprehensive bug test report for organization features (#456)

* Test: add comprehensive bug test report for organization features

* docs: update bug test report for organization features and address critical issues

* fix: update branch name in bug test report and upgrade dompurify to version 3.3.2

* fix: update the milestone submission flow for campaign

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>

---------

Co-authored-by: Collins Ikechukwu <collinschristroa@gmail.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>

* merge (#470)

* fix: improve timeline input , ui improvement and fixes for participation tab

* merg to prod (#450)

* fix: improve timeline input , ui improvement and fixes for participation tab (#442)

* feat: integrate Sentry for error tracking and reporting

- Added Sentry configuration for both server and edge environments to capture errors and performance metrics.
- Updated error handling across various components to report errors to Sentry, enhancing monitoring capabilities.
- Introduced a new MessagesProvider for managing in-app messaging and notifications.
- Refactored the .env.example file to include Sentry DSN and related configurations for production environments.
- Removed the deprecated connect-wallet component to streamline the codebase.

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* UI fixes (#445)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: handle potential null values in notification data

- Updated notification handling to safely access properties using optional chaining.
- Ensured that the notification data is checked for null values before accessing its properties in various components, improving robustness and preventing runtime errors.

* feat: Enforce Submission Requirements (requireGithub, requireDemoVideo, requireOtherLinks) (#443)

* feat: enforce submission requirements (requireGithub, requireDemoVideo, requireOtherLinks)

- Add dynamic schema validation based on currentHackathon flags
- Enforce requireDemoVideo at schema level with Zod refine
- Add Step 2 validation for requireGithub, requireDemoVideo, requireOtherLinks
- Add final validation pass in onSubmit before API call
- Add dynamic asterisk (*) to required field labels
- Add legend and helper text for required fields
- Wrap links section in FormField for proper error display

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* feat: prevent removal of required links and style required asterisks in red

Made-with: Cursor

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>

* feat(submissions): enforce team size limits (teamMin, teamMax) (#446)

* feat(submissions): enforce team size limits (teamMin, teamMax)

- Add validation in handleNext (Step 0) to block progression when team
  size is below teamMin, showing specific message with members needed
- Guard handleAddInvitee function to prevent adding members when team
  reaches teamMax capacity
- Add capacity indicator Badge showing "X / Y members" with visual
  states: orange when below minimum, yellow when at capacity
- Disable "Add Member" button and inputs when team is full
- Display helper text when team is below minimum requirement

Closes #405

* fix(submissions): remove hardcoded team size fallbacks

- Use undefined instead of hardcoded defaults (1, 10)
- Add hasTeamLimits guard to only enforce when hackathon defines limits
- Conditionally render Badge and helper text when limits are defined

* refactor: enhance error handling and submission response structure

- Introduced a utility function to standardize API error messages across submission operations.
- Updated the create and update submission functions to handle optional chaining for response checks.
- Improved the response structure to include messages for successful submissions.
- Adjusted the CreateSubmissionRequest interface to remove the hackathonId field and made organizationId optional in the update submission request.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>

* UI fixes (#451) (#453)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* ui-fixes (#455)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* merge to prod (#457)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* merg to prod (#459)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>

* merg to prod (#461)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

* Docs: add comprehensive bug test report for organization features (#456)

* Test: add comprehensive bug test report for organization features

* docs: update bug test report for organization features and address critical issues

* fix: update branch name in bug test report and upgrade dompurify to version 3.3.2

* fix: update the milestone submission flow for campaign

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>

---------

Co-authored-by: Collins Ikechukwu <collinschristroa@gmail.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>

* merge fork to main (#471)

* merg to prod (#450)

* fix: improve timeline input , ui improvement and fixes for participation tab (#442)

* feat: integrate Sentry for error tracking and reporting

- Added Sentry configuration for both server and edge environments to capture errors and performance metrics.
- Updated error handling across various components to report errors to Sentry, enhancing monitoring capabilities.
- Introduced a new MessagesProvider for managing in-app messaging and notifications.
- Refactored the .env.example file to include Sentry DSN and related configurations for production environments.
- Removed the deprecated connect-wallet component to streamline the codebase.

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* UI fixes (#445)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: handle potential null values in notification data

- Updated notification handling to safely access properties using optional chaining.
- Ensured that the notification data is checked for null values before accessing its properties in various components, improving robustness and preventing runtime errors.

* feat: Enforce Submission Requirements (requireGithub, requireDemoVideo, requireOtherLinks) (#443)

* feat: enforce submission requirements (requireGithub, requireDemoVideo, requireOtherLinks)

- Add dynamic schema validation based on currentHackathon flags
- Enforce requireDemoVideo at schema level with Zod refine
- Add Step 2 validation for requireGithub, requireDemoVideo, requireOtherLinks
- Add final validation pass in onSubmit before API call
- Add dynamic asterisk (*) to required field labels
- Add legend and helper text for required fields
- Wrap links section in FormField for proper error display

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* feat: prevent removal of required links and style required asterisks in red

Made-with: Cursor

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>

* feat(submissions): enforce team size limits (teamMin, teamMax) (#446)

* feat(submissions): enforce team size limits (teamMin, teamMax)

- Add validation in handleNext (Step 0) to block progression when team
  size is below teamMin, showing specific message with members needed
- Guard handleAddInvitee function to prevent adding members when team
  reaches teamMax capacity
- Add capacity indicator Badge showing "X / Y members" with visual
  states: orange when below minimum, yellow when at capacity
- Disable "Add Member" button and inputs when team is full
- Display helper text when team is below minimum requirement

Closes #405

* fix(submissions): remove hardcoded team size fallbacks

- Use undefined instead of hardcoded defaults (1, 10)
- Add hasTeamLimits guard to only enforce when hackathon defines limits
- Conditionally render Badge and helper text when limits are defined

* refactor: enhance error handling and submission response structure

- Introduced a utility function to standardize API error messages across submission operations.
- Updated the create and update submission functions to handle optional chaining for response checks.
- Improved the response structure to include messages for successful submissions.
- Adjusted the CreateSubmissionRequest interface to remove the hackathonId field and made organizationId optional in the update submission request.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>

* UI fixes (#451) (#453)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* ui-fixes (#455)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* merge to prod (#457)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* merg to prod (#459)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>

* merg to prod (#461)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

* Docs: add comprehensive bug test report for organization features (#456)

* Test: add comprehensive bug test report for organization features

* docs: update bug test report for organization features and address critical issues

* fix: update branch name in bug test report and upgrade dompurify to version 3.3.2

* fix: update the milestone submission flow for campaign

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>

---------

Co-authored-by: Collins Ikechukwu <collinschristroa@gmail.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>

* Create hackathon-detail-design.md (#466)

---------

Co-authored-by: Collins Ikechukwu <collinschristroa@gmail.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>
Co-authored-by: David Emulo <161654052+Davidemulo@users.noreply.github.com>

---------

Co-authored-by: Collins Ikechukwu <collinschristroa@gmail.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>
Co-authored-by: David Emulo <161654052+Davidemulo@users.noreply.github.com>
Benjtalkshow added a commit that referenced this pull request Mar 9, 2026
* Create hackathon-detail-design.md (#466)

* Production (#472)

* merg to prod (#450)

* fix: improve timeline input , ui improvement and fixes for participation tab (#442)

* feat: integrate Sentry for error tracking and reporting

- Added Sentry configuration for both server and edge environments to capture errors and performance metrics.
- Updated error handling across various components to report errors to Sentry, enhancing monitoring capabilities.
- Introduced a new MessagesProvider for managing in-app messaging and notifications.
- Refactored the .env.example file to include Sentry DSN and related configurations for production environments.
- Removed the deprecated connect-wallet component to streamline the codebase.

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* UI fixes (#445)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: handle potential null values in notification data

- Updated notification handling to safely access properties using optional chaining.
- Ensured that the notification data is checked for null values before accessing its properties in various components, improving robustness and preventing runtime errors.

* feat: Enforce Submission Requirements (requireGithub, requireDemoVideo, requireOtherLinks) (#443)

* feat: enforce submission requirements (requireGithub, requireDemoVideo, requireOtherLinks)

- Add dynamic schema validation based on currentHackathon flags
- Enforce requireDemoVideo at schema level with Zod refine
- Add Step 2 validation for requireGithub, requireDemoVideo, requireOtherLinks
- Add final validation pass in onSubmit before API call
- Add dynamic asterisk (*) to required field labels
- Add legend and helper text for required fields
- Wrap links section in FormField for proper error display

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* feat: prevent removal of required links and style required asterisks in red

Made-with: Cursor

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>

* feat(submissions): enforce team size limits (teamMin, teamMax) (#446)

* feat(submissions): enforce team size limits (teamMin, teamMax)

- Add validation in handleNext (Step 0) to block progression when team
  size is below teamMin, showing specific message with members needed
- Guard handleAddInvitee function to prevent adding members when team
  reaches teamMax capacity
- Add capacity indicator Badge showing "X / Y members" with visual
  states: orange when below minimum, yellow when at capacity
- Disable "Add Member" button and inputs when team is full
- Display helper text when team is below minimum requirement

Closes #405

* fix(submissions): remove hardcoded team size fallbacks

- Use undefined instead of hardcoded defaults (1, 10)
- Add hasTeamLimits guard to only enforce when hackathon defines limits
- Conditionally render Badge and helper text when limits are defined

* refactor: enhance error handling and submission response structure

- Introduced a utility function to standardize API error messages across submission operations.
- Updated the create and update submission functions to handle optional chaining for response checks.
- Improved the response structure to include messages for successful submissions.
- Adjusted the CreateSubmissionRequest interface to remove the hackathonId field and made organizationId optional in the update submission request.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>

* UI fixes (#451) (#453)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* ui-fixes (#455)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* merge to prod (#457)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* merg to prod (#459)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>

* merg to prod (#461)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

* Docs: add comprehensive bug test report for organization features (#456)

* Test: add comprehensive bug test report for organization features

* docs: update bug test report for organization features and address critical issues

* fix: update branch name in bug test report and upgrade dompurify to version 3.3.2

* fix: update the milestone submission flow for campaign

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>

* Merge fixes to production (#467)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

* Docs: add comprehensive bug test report for organization features (#456)

* Test: add comprehensive bug test report for organization features

* docs: update bug test report for organization features and address critical issues

* fix: update branch name in bug test report and upgrade dompurify to version 3.3.2

* fix: update the milestone submission flow for campaign

* UI fixes (#458)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* fix: fix auto refresh ib submission page

* fix: hackathon submission fixes

* fix: fix coderabbit corrections

* fix: fix coderabbit corrections

* chore: write boundless on x challenge blog

* fix: remove blog

* Blog fix (#464)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* fix: fix auto refresh ib submission page

* fix: hackathon submission fixes

* fix: fix coderabbit corrections

* fix: fix coderabbit corrections

* chore: write boundless on x challenge blog

* fix: remove blog

* chore: add blog content

* Blog fix (#465)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* fix: fix auto refresh ib submission page

* fix: hackathon submission fixes

* fix: fix coderabbit corrections

* fix: fix coderabbit corrections

* chore: write boundless on x challenge blog

* fix: remove blog

* chore: add blog content

* fix: fix broken blog image and notification redirect

* merge fork main to boundlessfi main (#468)

* fix: improve timeline input , ui improvement and fixes for participation tab

* merg to prod (#450)

* fix: improve timeline input , ui improvement and fixes for participation tab (#442)

* feat: integrate Sentry for error tracking and reporting

- Added Sentry configuration for both server and edge environments to capture errors and performance metrics.
- Updated error handling across various components to report errors to Sentry, enhancing monitoring capabilities.
- Introduced a new MessagesProvider for managing in-app messaging and notifications.
- Refactored the .env.example file to include Sentry DSN and related configurations for production environments.
- Removed the deprecated connect-wallet component to streamline the codebase.

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* UI fixes (#445)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: handle potential null values in notification data

- Updated notification handling to safely access properties using optional chaining.
- Ensured that the notification data is checked for null values before accessing its properties in various components, improving robustness and preventing runtime errors.

* feat: Enforce Submission Requirements (requireGithub, requireDemoVideo, requireOtherLinks) (#443)

* feat: enforce submission requirements (requireGithub, requireDemoVideo, requireOtherLinks)

- Add dynamic schema validation based on currentHackathon flags
- Enforce requireDemoVideo at schema level with Zod refine
- Add Step 2 validation for requireGithub, requireDemoVideo, requireOtherLinks
- Add final validation pass in onSubmit before API call
- Add dynamic asterisk (*) to required field labels
- Add legend and helper text for required fields
- Wrap links section in FormField for proper error display

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* feat: prevent removal of required links and style required asterisks in red

Made-with: Cursor

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>

* feat(submissions): enforce team size limits (teamMin, teamMax) (#446)

* feat(submissions): enforce team size limits (teamMin, teamMax)

- Add validation in handleNext (Step 0) to block progression when team
  size is below teamMin, showing specific message with members needed
- Guard handleAddInvitee function to prevent adding members when team
  reaches teamMax capacity
- Add capacity indicator Badge showing "X / Y members" with visual
  states: orange when below minimum, yellow when at capacity
- Disable "Add Member" button and inputs when team is full
- Display helper text when team is below minimum requirement

Closes #405

* fix(submissions): remove hardcoded team size fallbacks

- Use undefined instead of hardcoded defaults (1, 10)
- Add hasTeamLimits guard to only enforce when hackathon defines limits
- Conditionally render Badge and helper text when limits are defined

* refactor: enhance error handling and submission response structure

- Introduced a utility function to standardize API error messages across submission operations.
- Updated the create and update submission functions to handle optional chaining for response checks.
- Improved the response structure to include messages for successful submissions.
- Adjusted the CreateSubmissionRequest interface to remove the hackathonId field and made organizationId optional in the update submission request.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>

* UI fixes (#451) (#453)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* ui-fixes (#455)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* merge to prod (#457)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* merg to prod (#459)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>

* merg to prod (#461)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

* Docs: add comprehensive bug test report for organization features (#456)

* Test: add comprehensive bug test report for organization features

* docs: update bug test report for organization features and address critical issues

* fix: update branch name in bug test report and upgrade dompurify to version 3.3.2

* fix: update the milestone submission flow for campaign

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>

---------

Co-authored-by: Collins Ikechukwu <collinschristroa@gmail.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>

* merge to main (#469)

* fix: improve timeline input , ui improvement and fixes for participation tab

* merg to prod (#450)

* fix: improve timeline input , ui improvement and fixes for participation tab (#442)

* feat: integrate Sentry for error tracking and reporting

- Added Sentry configuration for both server and edge environments to capture errors and performance metrics.
- Updated error handling across various components to report errors to Sentry, enhancing monitoring capabilities.
- Introduced a new MessagesProvider for managing in-app messaging and notifications.
- Refactored the .env.example file to include Sentry DSN and related configurations for production environments.
- Removed the deprecated connect-wallet component to streamline the codebase.

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* UI fixes (#445)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: handle potential null values in notification data

- Updated notification handling to safely access properties using optional chaining.
- Ensured that the notification data is checked for null values before accessing its properties in various components, improving robustness and preventing runtime errors.

* feat: Enforce Submission Requirements (requireGithub, requireDemoVideo, requireOtherLinks) (#443)

* feat: enforce submission requirements (requireGithub, requireDemoVideo, requireOtherLinks)

- Add dynamic schema validation based on currentHackathon flags
- Enforce requireDemoVideo at schema level with Zod refine
- Add Step 2 validation for requireGithub, requireDemoVideo, requireOtherLinks
- Add final validation pass in onSubmit before API call
- Add dynamic asterisk (*) to required field labels
- Add legend and helper text for required fields
- Wrap links section in FormField for proper error display

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* feat: prevent removal of required links and style required asterisks in red

Made-with: Cursor

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>

* feat(submissions): enforce team size limits (teamMin, teamMax) (#446)

* feat(submissions): enforce team size limits (teamMin, teamMax)

- Add validation in handleNext (Step 0) to block progression when team
  size is below teamMin, showing specific message with members needed
- Guard handleAddInvitee function to prevent adding members when team
  reaches teamMax capacity
- Add capacity indicator Badge showing "X / Y members" with visual
  states: orange when below minimum, yellow when at capacity
- Disable "Add Member" button and inputs when team is full
- Display helper text when team is below minimum requirement

Closes #405

* fix(submissions): remove hardcoded team size fallbacks

- Use undefined instead of hardcoded defaults (1, 10)
- Add hasTeamLimits guard to only enforce when hackathon defines limits
- Conditionally render Badge and helper text when limits are defined

* refactor: enhance error handling and submission response structure

- Introduced a utility function to standardize API error messages across submission operations.
- Updated the create and update submission functions to handle optional chaining for response checks.
- Improved the response structure to include messages for successful submissions.
- Adjusted the CreateSubmissionRequest interface to remove the hackathonId field and made organizationId optional in the update submission request.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>

* UI fixes (#451) (#453)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* ui-fixes (#455)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* merge to prod (#457)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* merg to prod (#459)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>

* merg to prod (#461)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

* Docs: add comprehensive bug test report for organization features (#456)

* Test: add comprehensive bug test report for organization features

* docs: update bug test report for organization features and address critical issues

* fix: update branch name in bug test report and upgrade dompurify to version 3.3.2

* fix: update the milestone submission flow for campaign

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>

---------

Co-authored-by: Collins Ikechukwu <collinschristroa@gmail.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>

* merge (#470)

* fix: improve timeline input , ui improvement and fixes for participation tab

* merg to prod (#450)

* fix: improve timeline input , ui improvement and fixes for participation tab (#442)

* feat: integrate Sentry for error tracking and reporting

- Added Sentry configuration for both server and edge environments to capture errors and performance metrics.
- Updated error handling across various components to report errors to Sentry, enhancing monitoring capabilities.
- Introduced a new MessagesProvider for managing in-app messaging and notifications.
- Refactored the .env.example file to include Sentry DSN and related configurations for production environments.
- Removed the deprecated connect-wallet component to streamline the codebase.

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* UI fixes (#445)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: handle potential null values in notification data

- Updated notification handling to safely access properties using optional chaining.
- Ensured that the notification data is checked for null values before accessing its properties in various components, improving robustness and preventing runtime errors.

* feat: Enforce Submission Requirements (requireGithub, requireDemoVideo, requireOtherLinks) (#443)

* feat: enforce submission requirements (requireGithub, requireDemoVideo, requireOtherLinks)

- Add dynamic schema validation based on currentHackathon flags
- Enforce requireDemoVideo at schema level with Zod refine
- Add Step 2 validation for requireGithub, requireDemoVideo, requireOtherLinks
- Add final validation pass in onSubmit before API call
- Add dynamic asterisk (*) to required field labels
- Add legend and helper text for required fields
- Wrap links section in FormField for proper error display

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* feat: prevent removal of required links and style required asterisks in red

Made-with: Cursor

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>

* feat(submissions): enforce team size limits (teamMin, teamMax) (#446)

* feat(submissions): enforce team size limits (teamMin, teamMax)

- Add validation in handleNext (Step 0) to block progression when team
  size is below teamMin, showing specific message with members needed
- Guard handleAddInvitee function to prevent adding members when team
  reaches teamMax capacity
- Add capacity indicator Badge showing "X / Y members" with visual
  states: orange when below minimum, yellow when at capacity
- Disable "Add Member" button and inputs when team is full
- Display helper text when team is below minimum requirement

Closes #405

* fix(submissions): remove hardcoded team size fallbacks

- Use undefined instead of hardcoded defaults (1, 10)
- Add hasTeamLimits guard to only enforce when hackathon defines limits
- Conditionally render Badge and helper text when limits are defined

* refactor: enhance error handling and submission response structure

- Introduced a utility function to standardize API error messages across submission operations.
- Updated the create and update submission functions to handle optional chaining for response checks.
- Improved the response structure to include messages for successful submissions.
- Adjusted the CreateSubmissionRequest interface to remove the hackathonId field and made organizationId optional in the update submission request.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>

* UI fixes (#451) (#453)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* ui-fixes (#455)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* merge to prod (#457)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* merg to prod (#459)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>

* merg to prod (#461)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

* Docs: add comprehensive bug test report for organization features (#456)

* Test: add comprehensive bug test report for organization features

* docs: update bug test report for organization features and address critical issues

* fix: update branch name in bug test report and upgrade dompurify to version 3.3.2

* fix: update the milestone submission flow for campaign

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>

---------

Co-authored-by: Collins Ikechukwu <collinschristroa@gmail.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>

* merge fork to main (#471)

* merg to prod (#450)

* fix: improve timeline input , ui improvement and fixes for participation tab (#442)

* feat: integrate Sentry for error tracking and reporting

- Added Sentry configuration for both server and edge environments to capture errors and performance metrics.
- Updated error handling across various components to report errors to Sentry, enhancing monitoring capabilities.
- Introduced a new MessagesProvider for managing in-app messaging and notifications.
- Refactored the .env.example file to include Sentry DSN and related configurations for production environments.
- Removed the deprecated connect-wallet component to streamline the codebase.

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* UI fixes (#445)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: handle potential null values in notification data

- Updated notification handling to safely access properties using optional chaining.
- Ensured that the notification data is checked for null values before accessing its properties in various components, improving robustness and preventing runtime errors.

* feat: Enforce Submission Requirements (requireGithub, requireDemoVideo, requireOtherLinks) (#443)

* feat: enforce submission requirements (requireGithub, requireDemoVideo, requireOtherLinks)

- Add dynamic schema validation based on currentHackathon flags
- Enforce requireDemoVideo at schema level with Zod refine
- Add Step 2 validation for requireGithub, requireDemoVideo, requireOtherLinks
- Add final validation pass in onSubmit before API call
- Add dynamic asterisk (*) to required field labels
- Add legend and helper text for required fields
- Wrap links section in FormField for proper error display

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* feat: prevent removal of required links and style required asterisks in red

Made-with: Cursor

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>

* feat(submissions): enforce team size limits (teamMin, teamMax) (#446)

* feat(submissions): enforce team size limits (teamMin, teamMax)

- Add validation in handleNext (Step 0) to block progression when team
  size is below teamMin, showing specific message with members needed
- Guard handleAddInvitee function to prevent adding members when team
  reaches teamMax capacity
- Add capacity indicator Badge showing "X / Y members" with visual
  states: orange when below minimum, yellow when at capacity
- Disable "Add Member" button and inputs when team is full
- Display helper text when team is below minimum requirement

Closes #405

* fix(submissions): remove hardcoded team size fallbacks

- Use undefined instead of hardcoded defaults (1, 10)
- Add hasTeamLimits guard to only enforce when hackathon defines limits
- Conditionally render Badge and helper text when limits are defined

* refactor: enhance error handling and submission response structure

- Introduced a utility function to standardize API error messages across submission operations.
- Updated the create and update submission functions to handle optional chaining for response checks.
- Improved the response structure to include messages for successful submissions.
- Adjusted the CreateSubmissionRequest interface to remove the hackathonId field and made organizationId optional in the update submission request.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>

* UI fixes (#451) (#453)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* ui-fixes (#455)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* merge to prod (#457)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* merg to prod (#459)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>

* merg to prod (#461)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

* Docs: add comprehensive bug test report for organization features (#456)

* Test: add comprehensive bug test report for organization features

* docs: update bug test report for organization features and address critical issues

* fix: update branch name in bug test report and upgrade dompurify to version 3.3.2

* fix: update the milestone submission flow for campaign

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>

---------

Co-authored-by: Collins Ikechukwu <collinschristroa@gmail.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>

* Create hackathon-detail-design.md (#466)

---------

Co-authored-by: Collins Ikechukwu <collinschristroa@gmail.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>
Co-authored-by: David Emulo <161654052+Davidemulo@users.noreply.github.com>

---------

Co-authored-by: Collins Ikechukwu <collinschristroa@gmail.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>
Co-authored-by: David Emulo <161654052+Davidemulo@users.noreply.github.com>

---------

Co-authored-by: David Emulo <161654052+Davidemulo@users.noreply.github.com>
Co-authored-by: Collins Ikechukwu <collinschristroa@gmail.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>
Benjtalkshow added a commit that referenced this pull request Mar 9, 2026
* merg to prod (#450)

* fix: improve timeline input , ui improvement and fixes for participation tab (#442)

* feat: integrate Sentry for error tracking and reporting

- Added Sentry configuration for both server and edge environments to capture errors and performance metrics.
- Updated error handling across various components to report errors to Sentry, enhancing monitoring capabilities.
- Introduced a new MessagesProvider for managing in-app messaging and notifications.
- Refactored the .env.example file to include Sentry DSN and related configurations for production environments.
- Removed the deprecated connect-wallet component to streamline the codebase.

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* UI fixes (#445)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: handle potential null values in notification data

- Updated notification handling to safely access properties using optional chaining.
- Ensured that the notification data is checked for null values before accessing its properties in various components, improving robustness and preventing runtime errors.

* feat: Enforce Submission Requirements (requireGithub, requireDemoVideo, requireOtherLinks) (#443)

* feat: enforce submission requirements (requireGithub, requireDemoVideo, requireOtherLinks)

- Add dynamic schema validation based on currentHackathon flags
- Enforce requireDemoVideo at schema level with Zod refine
- Add Step 2 validation for requireGithub, requireDemoVideo, requireOtherLinks
- Add final validation pass in onSubmit before API call
- Add dynamic asterisk (*) to required field labels
- Add legend and helper text for required fields
- Wrap links section in FormField for proper error display

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* feat: prevent removal of required links and style required asterisks in red

Made-with: Cursor

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>

* feat(submissions): enforce team size limits (teamMin, teamMax) (#446)

* feat(submissions): enforce team size limits (teamMin, teamMax)

- Add validation in handleNext (Step 0) to block progression when team
  size is below teamMin, showing specific message with members needed
- Guard handleAddInvitee function to prevent adding members when team
  reaches teamMax capacity
- Add capacity indicator Badge showing "X / Y members" with visual
  states: orange when below minimum, yellow when at capacity
- Disable "Add Member" button and inputs when team is full
- Display helper text when team is below minimum requirement

Closes #405

* fix(submissions): remove hardcoded team size fallbacks

- Use undefined instead of hardcoded defaults (1, 10)
- Add hasTeamLimits guard to only enforce when hackathon defines limits
- Conditionally render Badge and helper text when limits are defined

* refactor: enhance error handling and submission response structure

- Introduced a utility function to standardize API error messages across submission operations.
- Updated the create and update submission functions to handle optional chaining for response checks.
- Improved the response structure to include messages for successful submissions.
- Adjusted the CreateSubmissionRequest interface to remove the hackathonId field and made organizationId optional in the update submission request.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>

* UI fixes (#451) (#453)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* ui-fixes (#455)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* merge to prod (#457)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* merg to prod (#459)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>

* merg to prod (#461)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

* Docs: add comprehensive bug test report for organization features (#456)

* Test: add comprehensive bug test report for organization features

* docs: update bug test report for organization features and address critical issues

* fix: update branch name in bug test report and upgrade dompurify to version 3.3.2

* fix: update the milestone submission flow for campaign

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>

* Merge fixes to production (#467)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

* Docs: add comprehensive bug test report for organization features (#456)

* Test: add comprehensive bug test report for organization features

* docs: update bug test report for organization features and address critical issues

* fix: update branch name in bug test report and upgrade dompurify to version 3.3.2

* fix: update the milestone submission flow for campaign

* UI fixes (#458)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* fix: fix auto refresh ib submission page

* fix: hackathon submission fixes

* fix: fix coderabbit corrections

* fix: fix coderabbit corrections

* chore: write boundless on x challenge blog

* fix: remove blog

* Blog fix (#464)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* fix: fix auto refresh ib submission page

* fix: hackathon submission fixes

* fix: fix coderabbit corrections

* fix: fix coderabbit corrections

* chore: write boundless on x challenge blog

* fix: remove blog

* chore: add blog content

* Blog fix (#465)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* fix: fix auto refresh ib submission page

* fix: hackathon submission fixes

* fix: fix coderabbit corrections

* fix: fix coderabbit corrections

* chore: write boundless on x challenge blog

* fix: remove blog

* chore: add blog content

* fix: fix broken blog image and notification redirect

* merge fork main to boundlessfi main (#468)

* fix: improve timeline input , ui improvement and fixes for participation tab

* merg to prod (#450)

* fix: improve timeline input , ui improvement and fixes for participation tab (#442)

* feat: integrate Sentry for error tracking and reporting

- Added Sentry configuration for both server and edge environments to capture errors and performance metrics.
- Updated error handling across various components to report errors to Sentry, enhancing monitoring capabilities.
- Introduced a new MessagesProvider for managing in-app messaging and notifications.
- Refactored the .env.example file to include Sentry DSN and related configurations for production environments.
- Removed the deprecated connect-wallet component to streamline the codebase.

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* UI fixes (#445)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: handle potential null values in notification data

- Updated notification handling to safely access properties using optional chaining.
- Ensured that the notification data is checked for null values before accessing its properties in various components, improving robustness and preventing runtime errors.

* feat: Enforce Submission Requirements (requireGithub, requireDemoVideo, requireOtherLinks) (#443)

* feat: enforce submission requirements (requireGithub, requireDemoVideo, requireOtherLinks)

- Add dynamic schema validation based on currentHackathon flags
- Enforce requireDemoVideo at schema level with Zod refine
- Add Step 2 validation for requireGithub, requireDemoVideo, requireOtherLinks
- Add final validation pass in onSubmit before API call
- Add dynamic asterisk (*) to required field labels
- Add legend and helper text for required fields
- Wrap links section in FormField for proper error display

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* feat: prevent removal of required links and style required asterisks in red

Made-with: Cursor

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>

* feat(submissions): enforce team size limits (teamMin, teamMax) (#446)

* feat(submissions): enforce team size limits (teamMin, teamMax)

- Add validation in handleNext (Step 0) to block progression when team
  size is below teamMin, showing specific message with members needed
- Guard handleAddInvitee function to prevent adding members when team
  reaches teamMax capacity
- Add capacity indicator Badge showing "X / Y members" with visual
  states: orange when below minimum, yellow when at capacity
- Disable "Add Member" button and inputs when team is full
- Display helper text when team is below minimum requirement

Closes #405

* fix(submissions): remove hardcoded team size fallbacks

- Use undefined instead of hardcoded defaults (1, 10)
- Add hasTeamLimits guard to only enforce when hackathon defines limits
- Conditionally render Badge and helper text when limits are defined

* refactor: enhance error handling and submission response structure

- Introduced a utility function to standardize API error messages across submission operations.
- Updated the create and update submission functions to handle optional chaining for response checks.
- Improved the response structure to include messages for successful submissions.
- Adjusted the CreateSubmissionRequest interface to remove the hackathonId field and made organizationId optional in the update submission request.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>

* UI fixes (#451) (#453)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* ui-fixes (#455)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* merge to prod (#457)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* merg to prod (#459)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>

* merg to prod (#461)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

* Docs: add comprehensive bug test report for organization features (#456)

* Test: add comprehensive bug test report for organization features

* docs: update bug test report for organization features and address critical issues

* fix: update branch name in bug test report and upgrade dompurify to version 3.3.2

* fix: update the milestone submission flow for campaign

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>

---------

Co-authored-by: Collins Ikechukwu <collinschristroa@gmail.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>

* merge to main (#469)

* fix: improve timeline input , ui improvement and fixes for participation tab

* merg to prod (#450)

* fix: improve timeline input , ui improvement and fixes for participation tab (#442)

* feat: integrate Sentry for error tracking and reporting

- Added Sentry configuration for both server and edge environments to capture errors and performance metrics.
- Updated error handling across various components to report errors to Sentry, enhancing monitoring capabilities.
- Introduced a new MessagesProvider for managing in-app messaging and notifications.
- Refactored the .env.example file to include Sentry DSN and related configurations for production environments.
- Removed the deprecated connect-wallet component to streamline the codebase.

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* UI fixes (#445)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: handle potential null values in notification data

- Updated notification handling to safely access properties using optional chaining.
- Ensured that the notification data is checked for null values before accessing its properties in various components, improving robustness and preventing runtime errors.

* feat: Enforce Submission Requirements (requireGithub, requireDemoVideo, requireOtherLinks) (#443)

* feat: enforce submission requirements (requireGithub, requireDemoVideo, requireOtherLinks)

- Add dynamic schema validation based on currentHackathon flags
- Enforce requireDemoVideo at schema level with Zod refine
- Add Step 2 validation for requireGithub, requireDemoVideo, requireOtherLinks
- Add final validation pass in onSubmit before API call
- Add dynamic asterisk (*) to required field labels
- Add legend and helper text for required fields
- Wrap links section in FormField for proper error display

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* feat: prevent removal of required links and style required asterisks in red

Made-with: Cursor

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>

* feat(submissions): enforce team size limits (teamMin, teamMax) (#446)

* feat(submissions): enforce team size limits (teamMin, teamMax)

- Add validation in handleNext (Step 0) to block progression when team
  size is below teamMin, showing specific message with members needed
- Guard handleAddInvitee function to prevent adding members when team
  reaches teamMax capacity
- Add capacity indicator Badge showing "X / Y members" with visual
  states: orange when below minimum, yellow when at capacity
- Disable "Add Member" button and inputs when team is full
- Display helper text when team is below minimum requirement

Closes #405

* fix(submissions): remove hardcoded team size fallbacks

- Use undefined instead of hardcoded defaults (1, 10)
- Add hasTeamLimits guard to only enforce when hackathon defines limits
- Conditionally render Badge and helper text when limits are defined

* refactor: enhance error handling and submission response structure

- Introduced a utility function to standardize API error messages across submission operations.
- Updated the create and update submission functions to handle optional chaining for response checks.
- Improved the response structure to include messages for successful submissions.
- Adjusted the CreateSubmissionRequest interface to remove the hackathonId field and made organizationId optional in the update submission request.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>

* UI fixes (#451) (#453)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* ui-fixes (#455)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* merge to prod (#457)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* merg to prod (#459)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>

* merg to prod (#461)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

* Docs: add comprehensive bug test report for organization features (#456)

* Test: add comprehensive bug test report for organization features

* docs: update bug test report for organization features and address critical issues

* fix: update branch name in bug test report and upgrade dompurify to version 3.3.2

* fix: update the milestone submission flow for campaign

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>

---------

Co-authored-by: Collins Ikechukwu <collinschristroa@gmail.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>

* merge (#470)

* fix: improve timeline input , ui improvement and fixes for participation tab

* merg to prod (#450)

* fix: improve timeline input , ui improvement and fixes for participation tab (#442)

* feat: integrate Sentry for error tracking and reporting

- Added Sentry configuration for both server and edge environments to capture errors and performance metrics.
- Updated error handling across various components to report errors to Sentry, enhancing monitoring capabilities.
- Introduced a new MessagesProvider for managing in-app messaging and notifications.
- Refactored the .env.example file to include Sentry DSN and related configurations for production environments.
- Removed the deprecated connect-wallet component to streamline the codebase.

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* UI fixes (#445)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: handle potential null values in notification data

- Updated notification handling to safely access properties using optional chaining.
- Ensured that the notification data is checked for null values before accessing its properties in various components, improving robustness and preventing runtime errors.

* feat: Enforce Submission Requirements (requireGithub, requireDemoVideo, requireOtherLinks) (#443)

* feat: enforce submission requirements (requireGithub, requireDemoVideo, requireOtherLinks)

- Add dynamic schema validation based on currentHackathon flags
- Enforce requireDemoVideo at schema level with Zod refine
- Add Step 2 validation for requireGithub, requireDemoVideo, requireOtherLinks
- Add final validation pass in onSubmit before API call
- Add dynamic asterisk (*) to required field labels
- Add legend and helper text for required fields
- Wrap links section in FormField for proper error display

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* feat: prevent removal of required links and style required asterisks in red

Made-with: Cursor

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>

* feat(submissions): enforce team size limits (teamMin, teamMax) (#446)

* feat(submissions): enforce team size limits (teamMin, teamMax)

- Add validation in handleNext (Step 0) to block progression when team
  size is below teamMin, showing specific message with members needed
- Guard handleAddInvitee function to prevent adding members when team
  reaches teamMax capacity
- Add capacity indicator Badge showing "X / Y members" with visual
  states: orange when below minimum, yellow when at capacity
- Disable "Add Member" button and inputs when team is full
- Display helper text when team is below minimum requirement

Closes #405

* fix(submissions): remove hardcoded team size fallbacks

- Use undefined instead of hardcoded defaults (1, 10)
- Add hasTeamLimits guard to only enforce when hackathon defines limits
- Conditionally render Badge and helper text when limits are defined

* refactor: enhance error handling and submission response structure

- Introduced a utility function to standardize API error messages across submission operations.
- Updated the create and update submission functions to handle optional chaining for response checks.
- Improved the response structure to include messages for successful submissions.
- Adjusted the CreateSubmissionRequest interface to remove the hackathonId field and made organizationId optional in the update submission request.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>

* UI fixes (#451) (#453)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* ui-fixes (#455)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* merge to prod (#457)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* merg to prod (#459)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>

* merg to prod (#461)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

* Docs: add comprehensive bug test report for organization features (#456)

* Test: add comprehensive bug test report for organization features

* docs: update bug test report for organization features and address critical issues

* fix: update branch name in bug test report and upgrade dompurify to version 3.3.2

* fix: update the milestone submission flow for campaign

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>

---------

Co-authored-by: Collins Ikechukwu <collinschristroa@gmail.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>

* merge fork to main (#471)

* merg to prod (#450)

* fix: improve timeline input , ui improvement and fixes for participation tab (#442)

* feat: integrate Sentry for error tracking and reporting

- Added Sentry configuration for both server and edge environments to capture errors and performance metrics.
- Updated error handling across various components to report errors to Sentry, enhancing monitoring capabilities.
- Introduced a new MessagesProvider for managing in-app messaging and notifications.
- Refactored the .env.example file to include Sentry DSN and related configurations for production environments.
- Removed the deprecated connect-wallet component to streamline the codebase.

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* UI fixes (#445)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: handle potential null values in notification data

- Updated notification handling to safely access properties using optional chaining.
- Ensured that the notification data is checked for null values before accessing its properties in various components, improving robustness and preventing runtime errors.

* feat: Enforce Submission Requirements (requireGithub, requireDemoVideo, requireOtherLinks) (#443)

* feat: enforce submission requirements (requireGithub, requireDemoVideo, requireOtherLinks)

- Add dynamic schema validation based on currentHackathon flags
- Enforce requireDemoVideo at schema level with Zod refine
- Add Step 2 validation for requireGithub, requireDemoVideo, requireOtherLinks
- Add final validation pass in onSubmit before API call
- Add dynamic asterisk (*) to required field labels
- Add legend and helper text for required fields
- Wrap links section in FormField for proper error display

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* feat: prevent removal of required links and style required asterisks in red

Made-with: Cursor

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>

* feat(submissions): enforce team size limits (teamMin, teamMax) (#446)

* feat(submissions): enforce team size limits (teamMin, teamMax)

- Add validation in handleNext (Step 0) to block progression when team
  size is below teamMin, showing specific message with members needed
- Guard handleAddInvitee function to prevent adding members when team
  reaches teamMax capacity
- Add capacity indicator Badge showing "X / Y members" with visual
  states: orange when below minimum, yellow when at capacity
- Disable "Add Member" button and inputs when team is full
- Display helper text when team is below minimum requirement

Closes #405

* fix(submissions): remove hardcoded team size fallbacks

- Use undefined instead of hardcoded defaults (1, 10)
- Add hasTeamLimits guard to only enforce when hackathon defines limits
- Conditionally render Badge and helper text when limits are defined

* refactor: enhance error handling and submission response structure

- Introduced a utility function to standardize API error messages across submission operations.
- Updated the create and update submission functions to handle optional chaining for response checks.
- Improved the response structure to include messages for successful submissions.
- Adjusted the CreateSubmissionRequest interface to remove the hackathonId field and made organizationId optional in the update submission request.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>

* UI fixes (#451) (#453)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* ui-fixes (#455)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* merge to prod (#457)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* merg to prod (#459)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>

* merg to prod (#461)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

* Docs: add comprehensive bug test report for organization features (#456)

* Test: add comprehensive bug test report for organization features

* docs: update bug test report for organization features and address critical issues

* fix: update branch name in bug test report and upgrade dompurify to version 3.3.2

* fix: update the milestone submission flow for campaign

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>

---------

Co-authored-by: Collins Ikechukwu <collinschristroa@gmail.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>

* Create hackathon-detail-design.md (#466)

---------

Co-authored-by: Collins Ikechukwu <collinschristroa@gmail.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>
Co-authored-by: David Emulo <161654052+Davidemulo@users.noreply.github.com>

* merge David's Pr (#473)

* Create hackathon-detail-design.md (#466)

* Production (#472)

* merg to prod (#450)

* fix: improve timeline input , ui improvement and fixes for participation tab (#442)

* feat: integrate Sentry for error tracking and reporting

- Added Sentry configuration for both server and edge environments to capture errors and performance metrics.
- Updated error handling across various components to report errors to Sentry, enhancing monitoring capabilities.
- Introduced a new MessagesProvider for managing in-app messaging and notifications.
- Refactored the .env.example file to include Sentry DSN and related configurations for production environments.
- Removed the deprecated connect-wallet component to streamline the codebase.

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* UI fixes (#445)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: handle potential null values in notification data

- Updated notification handling to safely access properties using optional chaining.
- Ensured that the notification data is checked for null values before accessing its properties in various components, improving robustness and preventing runtime errors.

* feat: Enforce Submission Requirements (requireGithub, requireDemoVideo, requireOtherLinks) (#443)

* feat: enforce submission requirements (requireGithub, requireDemoVideo, requireOtherLinks)

- Add dynamic schema validation based on currentHackathon flags
- Enforce requireDemoVideo at schema level with Zod refine
- Add Step 2 validation for requireGithub, requireDemoVideo, requireOtherLinks
- Add final validation pass in onSubmit before API call
- Add dynamic asterisk (*) to required field labels
- Add legend and helper text for required fields
- Wrap links section in FormField for proper error display

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* feat: prevent removal of required links and style required asterisks in red

Made-with: Cursor

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>

* feat(submissions): enforce team size limits (teamMin, teamMax) (#446)

* feat(submissions): enforce team size limits (teamMin, teamMax)

- Add validation in handleNext (Step 0) to block progression when team
  size is below teamMin, showing specific message with members needed
- Guard handleAddInvitee function to prevent adding members when team
  reaches teamMax capacity
- Add capacity indicator Badge showing "X / Y members" with visual
  states: orange when below minimum, yellow when at capacity
- Disable "Add Member" button and inputs when team is full
- Display helper text when team is below minimum requirement

Closes #405

* fix(submissions): remove hardcoded team size fallbacks

- Use undefined instead of hardcoded defaults (1, 10)
- Add hasTeamLimits guard to only enforce when hackathon defines limits
- Conditionally render Badge and helper text when limits are defined

* refactor: enhance error handling and submission response structure

- Introduced a utility function to standardize API error messages across submission operations.
- Updated the create and update submission functions to handle optional chaining for response checks.
- Improved the response structure to include messages for successful submissions.
- Adjusted the CreateSubmissionRequest interface to remove the hackathonId field and made organizationId optional in the update submission request.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>

* UI fixes (#451) (#453)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* ui-fixes (#455)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* merge to prod (#457)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* merg to prod (#459)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behav…
Benjtalkshow added a commit that referenced this pull request Mar 10, 2026
* Create hackathon-detail-design.md (#466)

* Production (#472)

* merg to prod (#450)

* fix: improve timeline input , ui improvement and fixes for participation tab (#442)

* feat: integrate Sentry for error tracking and reporting

- Added Sentry configuration for both server and edge environments to capture errors and performance metrics.
- Updated error handling across various components to report errors to Sentry, enhancing monitoring capabilities.
- Introduced a new MessagesProvider for managing in-app messaging and notifications.
- Refactored the .env.example file to include Sentry DSN and related configurations for production environments.
- Removed the deprecated connect-wallet component to streamline the codebase.

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* UI fixes (#445)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: handle potential null values in notification data

- Updated notification handling to safely access properties using optional chaining.
- Ensured that the notification data is checked for null values before accessing its properties in various components, improving robustness and preventing runtime errors.

* feat: Enforce Submission Requirements (requireGithub, requireDemoVideo, requireOtherLinks) (#443)

* feat: enforce submission requirements (requireGithub, requireDemoVideo, requireOtherLinks)

- Add dynamic schema validation based on currentHackathon flags
- Enforce requireDemoVideo at schema level with Zod refine
- Add Step 2 validation for requireGithub, requireDemoVideo, requireOtherLinks
- Add final validation pass in onSubmit before API call
- Add dynamic asterisk (*) to required field labels
- Add legend and helper text for required fields
- Wrap links section in FormField for proper error display

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* feat: prevent removal of required links and style required asterisks in red

Made-with: Cursor

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>

* feat(submissions): enforce team size limits (teamMin, teamMax) (#446)

* feat(submissions): enforce team size limits (teamMin, teamMax)

- Add validation in handleNext (Step 0) to block progression when team
  size is below teamMin, showing specific message with members needed
- Guard handleAddInvitee function to prevent adding members when team
  reaches teamMax capacity
- Add capacity indicator Badge showing "X / Y members" with visual
  states: orange when below minimum, yellow when at capacity
- Disable "Add Member" button and inputs when team is full
- Display helper text when team is below minimum requirement

Closes #405

* fix(submissions): remove hardcoded team size fallbacks

- Use undefined instead of hardcoded defaults (1, 10)
- Add hasTeamLimits guard to only enforce when hackathon defines limits
- Conditionally render Badge and helper text when limits are defined

* refactor: enhance error handling and submission response structure

- Introduced a utility function to standardize API error messages across submission operations.
- Updated the create and update submission functions to handle optional chaining for response checks.
- Improved the response structure to include messages for successful submissions.
- Adjusted the CreateSubmissionRequest interface to remove the hackathonId field and made organizationId optional in the update submission request.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>

* UI fixes (#451) (#453)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* ui-fixes (#455)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* merge to prod (#457)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* merg to prod (#459)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>

* merg to prod (#461)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

* Docs: add comprehensive bug test report for organization features (#456)

* Test: add comprehensive bug test report for organization features

* docs: update bug test report for organization features and address critical issues

* fix: update branch name in bug test report and upgrade dompurify to version 3.3.2

* fix: update the milestone submission flow for campaign

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>

* Merge fixes to production (#467)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

* Docs: add comprehensive bug test report for organization features (#456)

* Test: add comprehensive bug test report for organization features

* docs: update bug test report for organization features and address critical issues

* fix: update branch name in bug test report and upgrade dompurify to version 3.3.2

* fix: update the milestone submission flow for campaign

* UI fixes (#458)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* fix: fix auto refresh ib submission page

* fix: hackathon submission fixes

* fix: fix coderabbit corrections

* fix: fix coderabbit corrections

* chore: write boundless on x challenge blog

* fix: remove blog

* Blog fix (#464)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* fix: fix auto refresh ib submission page

* fix: hackathon submission fixes

* fix: fix coderabbit corrections

* fix: fix coderabbit corrections

* chore: write boundless on x challenge blog

* fix: remove blog

* chore: add blog content

* Blog fix (#465)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* fix: fix auto refresh ib submission page

* fix: hackathon submission fixes

* fix: fix coderabbit corrections

* fix: fix coderabbit corrections

* chore: write boundless on x challenge blog

* fix: remove blog

* chore: add blog content

* fix: fix broken blog image and notification redirect

* merge fork main to boundlessfi main (#468)

* fix: improve timeline input , ui improvement and fixes for participation tab

* merg to prod (#450)

* fix: improve timeline input , ui improvement and fixes for participation tab (#442)

* feat: integrate Sentry for error tracking and reporting

- Added Sentry configuration for both server and edge environments to capture errors and performance metrics.
- Updated error handling across various components to report errors to Sentry, enhancing monitoring capabilities.
- Introduced a new MessagesProvider for managing in-app messaging and notifications.
- Refactored the .env.example file to include Sentry DSN and related configurations for production environments.
- Removed the deprecated connect-wallet component to streamline the codebase.

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* UI fixes (#445)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: handle potential null values in notification data

- Updated notification handling to safely access properties using optional chaining.
- Ensured that the notification data is checked for null values before accessing its properties in various components, improving robustness and preventing runtime errors.

* feat: Enforce Submission Requirements (requireGithub, requireDemoVideo, requireOtherLinks) (#443)

* feat: enforce submission requirements (requireGithub, requireDemoVideo, requireOtherLinks)

- Add dynamic schema validation based on currentHackathon flags
- Enforce requireDemoVideo at schema level with Zod refine
- Add Step 2 validation for requireGithub, requireDemoVideo, requireOtherLinks
- Add final validation pass in onSubmit before API call
- Add dynamic asterisk (*) to required field labels
- Add legend and helper text for required fields
- Wrap links section in FormField for proper error display

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* feat: prevent removal of required links and style required asterisks in red

Made-with: Cursor

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>

* feat(submissions): enforce team size limits (teamMin, teamMax) (#446)

* feat(submissions): enforce team size limits (teamMin, teamMax)

- Add validation in handleNext (Step 0) to block progression when team
  size is below teamMin, showing specific message with members needed
- Guard handleAddInvitee function to prevent adding members when team
  reaches teamMax capacity
- Add capacity indicator Badge showing "X / Y members" with visual
  states: orange when below minimum, yellow when at capacity
- Disable "Add Member" button and inputs when team is full
- Display helper text when team is below minimum requirement

Closes #405

* fix(submissions): remove hardcoded team size fallbacks

- Use undefined instead of hardcoded defaults (1, 10)
- Add hasTeamLimits guard to only enforce when hackathon defines limits
- Conditionally render Badge and helper text when limits are defined

* refactor: enhance error handling and submission response structure

- Introduced a utility function to standardize API error messages across submission operations.
- Updated the create and update submission functions to handle optional chaining for response checks.
- Improved the response structure to include messages for successful submissions.
- Adjusted the CreateSubmissionRequest interface to remove the hackathonId field and made organizationId optional in the update submission request.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>

* UI fixes (#451) (#453)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* ui-fixes (#455)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* merge to prod (#457)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* merg to prod (#459)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>

* merg to prod (#461)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

* Docs: add comprehensive bug test report for organization features (#456)

* Test: add comprehensive bug test report for organization features

* docs: update bug test report for organization features and address critical issues

* fix: update branch name in bug test report and upgrade dompurify to version 3.3.2

* fix: update the milestone submission flow for campaign

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>

---------

Co-authored-by: Collins Ikechukwu <collinschristroa@gmail.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>

* merge to main (#469)

* fix: improve timeline input , ui improvement and fixes for participation tab

* merg to prod (#450)

* fix: improve timeline input , ui improvement and fixes for participation tab (#442)

* feat: integrate Sentry for error tracking and reporting

- Added Sentry configuration for both server and edge environments to capture errors and performance metrics.
- Updated error handling across various components to report errors to Sentry, enhancing monitoring capabilities.
- Introduced a new MessagesProvider for managing in-app messaging and notifications.
- Refactored the .env.example file to include Sentry DSN and related configurations for production environments.
- Removed the deprecated connect-wallet component to streamline the codebase.

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* UI fixes (#445)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: handle potential null values in notification data

- Updated notification handling to safely access properties using optional chaining.
- Ensured that the notification data is checked for null values before accessing its properties in various components, improving robustness and preventing runtime errors.

* feat: Enforce Submission Requirements (requireGithub, requireDemoVideo, requireOtherLinks) (#443)

* feat: enforce submission requirements (requireGithub, requireDemoVideo, requireOtherLinks)

- Add dynamic schema validation based on currentHackathon flags
- Enforce requireDemoVideo at schema level with Zod refine
- Add Step 2 validation for requireGithub, requireDemoVideo, requireOtherLinks
- Add final validation pass in onSubmit before API call
- Add dynamic asterisk (*) to required field labels
- Add legend and helper text for required fields
- Wrap links section in FormField for proper error display

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* feat: prevent removal of required links and style required asterisks in red

Made-with: Cursor

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>

* feat(submissions): enforce team size limits (teamMin, teamMax) (#446)

* feat(submissions): enforce team size limits (teamMin, teamMax)

- Add validation in handleNext (Step 0) to block progression when team
  size is below teamMin, showing specific message with members needed
- Guard handleAddInvitee function to prevent adding members when team
  reaches teamMax capacity
- Add capacity indicator Badge showing "X / Y members" with visual
  states: orange when below minimum, yellow when at capacity
- Disable "Add Member" button and inputs when team is full
- Display helper text when team is below minimum requirement

Closes #405

* fix(submissions): remove hardcoded team size fallbacks

- Use undefined instead of hardcoded defaults (1, 10)
- Add hasTeamLimits guard to only enforce when hackathon defines limits
- Conditionally render Badge and helper text when limits are defined

* refactor: enhance error handling and submission response structure

- Introduced a utility function to standardize API error messages across submission operations.
- Updated the create and update submission functions to handle optional chaining for response checks.
- Improved the response structure to include messages for successful submissions.
- Adjusted the CreateSubmissionRequest interface to remove the hackathonId field and made organizationId optional in the update submission request.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>

* UI fixes (#451) (#453)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* ui-fixes (#455)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* merge to prod (#457)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* merg to prod (#459)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>

* merg to prod (#461)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

* Docs: add comprehensive bug test report for organization features (#456)

* Test: add comprehensive bug test report for organization features

* docs: update bug test report for organization features and address critical issues

* fix: update branch name in bug test report and upgrade dompurify to version 3.3.2

* fix: update the milestone submission flow for campaign

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>

---------

Co-authored-by: Collins Ikechukwu <collinschristroa@gmail.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>

* merge (#470)

* fix: improve timeline input , ui improvement and fixes for participation tab

* merg to prod (#450)

* fix: improve timeline input , ui improvement and fixes for participation tab (#442)

* feat: integrate Sentry for error tracking and reporting

- Added Sentry configuration for both server and edge environments to capture errors and performance metrics.
- Updated error handling across various components to report errors to Sentry, enhancing monitoring capabilities.
- Introduced a new MessagesProvider for managing in-app messaging and notifications.
- Refactored the .env.example file to include Sentry DSN and related configurations for production environments.
- Removed the deprecated connect-wallet component to streamline the codebase.

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* UI fixes (#445)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: handle potential null values in notification data

- Updated notification handling to safely access properties using optional chaining.
- Ensured that the notification data is checked for null values before accessing its properties in various components, improving robustness and preventing runtime errors.

* feat: Enforce Submission Requirements (requireGithub, requireDemoVideo, requireOtherLinks) (#443)

* feat: enforce submission requirements (requireGithub, requireDemoVideo, requireOtherLinks)

- Add dynamic schema validation based on currentHackathon flags
- Enforce requireDemoVideo at schema level with Zod refine
- Add Step 2 validation for requireGithub, requireDemoVideo, requireOtherLinks
- Add final validation pass in onSubmit before API call
- Add dynamic asterisk (*) to required field labels
- Add legend and helper text for required fields
- Wrap links section in FormField for proper error display

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* feat: prevent removal of required links and style required asterisks in red

Made-with: Cursor

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>

* feat(submissions): enforce team size limits (teamMin, teamMax) (#446)

* feat(submissions): enforce team size limits (teamMin, teamMax)

- Add validation in handleNext (Step 0) to block progression when team
  size is below teamMin, showing specific message with members needed
- Guard handleAddInvitee function to prevent adding members when team
  reaches teamMax capacity
- Add capacity indicator Badge showing "X / Y members" with visual
  states: orange when below minimum, yellow when at capacity
- Disable "Add Member" button and inputs when team is full
- Display helper text when team is below minimum requirement

Closes #405

* fix(submissions): remove hardcoded team size fallbacks

- Use undefined instead of hardcoded defaults (1, 10)
- Add hasTeamLimits guard to only enforce when hackathon defines limits
- Conditionally render Badge and helper text when limits are defined

* refactor: enhance error handling and submission response structure

- Introduced a utility function to standardize API error messages across submission operations.
- Updated the create and update submission functions to handle optional chaining for response checks.
- Improved the response structure to include messages for successful submissions.
- Adjusted the CreateSubmissionRequest interface to remove the hackathonId field and made organizationId optional in the update submission request.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>

* UI fixes (#451) (#453)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* ui-fixes (#455)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* merge to prod (#457)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* merg to prod (#459)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>

* merg to prod (#461)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

* Docs: add comprehensive bug test report for organization features (#456)

* Test: add comprehensive bug test report for organization features

* docs: update bug test report for organization features and address critical issues

* fix: update branch name in bug test report and upgrade dompurify to version 3.3.2

* fix: update the milestone submission flow for campaign

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>

---------

Co-authored-by: Collins Ikechukwu <collinschristroa@gmail.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>

* merge fork to main (#471)

* merg to prod (#450)

* fix: improve timeline input , ui improvement and fixes for participation tab (#442)

* feat: integrate Sentry for error tracking and reporting

- Added Sentry configuration for both server and edge environments to capture errors and performance metrics.
- Updated error handling across various components to report errors to Sentry, enhancing monitoring capabilities.
- Introduced a new MessagesProvider for managing in-app messaging and notifications.
- Refactored the .env.example file to include Sentry DSN and related configurations for production environments.
- Removed the deprecated connect-wallet component to streamline the codebase.

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* UI fixes (#445)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: handle potential null values in notification data

- Updated notification handling to safely access properties using optional chaining.
- Ensured that the notification data is checked for null values before accessing its properties in various components, improving robustness and preventing runtime errors.

* feat: Enforce Submission Requirements (requireGithub, requireDemoVideo, requireOtherLinks) (#443)

* feat: enforce submission requirements (requireGithub, requireDemoVideo, requireOtherLinks)

- Add dynamic schema validation based on currentHackathon flags
- Enforce requireDemoVideo at schema level with Zod refine
- Add Step 2 validation for requireGithub, requireDemoVideo, requireOtherLinks
- Add final validation pass in onSubmit before API call
- Add dynamic asterisk (*) to required field labels
- Add legend and helper text for required fields
- Wrap links section in FormField for proper error display

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* feat: prevent removal of required links and style required asterisks in red

Made-with: Cursor

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>

* feat(submissions): enforce team size limits (teamMin, teamMax) (#446)

* feat(submissions): enforce team size limits (teamMin, teamMax)

- Add validation in handleNext (Step 0) to block progression when team
  size is below teamMin, showing specific message with members needed
- Guard handleAddInvitee function to prevent adding members when team
  reaches teamMax capacity
- Add capacity indicator Badge showing "X / Y members" with visual
  states: orange when below minimum, yellow when at capacity
- Disable "Add Member" button and inputs when team is full
- Display helper text when team is below minimum requirement

Closes #405

* fix(submissions): remove hardcoded team size fallbacks

- Use undefined instead of hardcoded defaults (1, 10)
- Add hasTeamLimits guard to only enforce when hackathon defines limits
- Conditionally render Badge and helper text when limits are defined

* refactor: enhance error handling and submission response structure

- Introduced a utility function to standardize API error messages across submission operations.
- Updated the create and update submission functions to handle optional chaining for response checks.
- Improved the response structure to include messages for successful submissions.
- Adjusted the CreateSubmissionRequest interface to remove the hackathonId field and made organizationId optional in the update submission request.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>

* UI fixes (#451) (#453)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* ui-fixes (#455)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* merge to prod (#457)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* merg to prod (#459)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>

* merg to prod (#461)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

* Docs: add comprehensive bug test report for organization features (#456)

* Test: add comprehensive bug test report for organization features

* docs: update bug test report for organization features and address critical issues

* fix: update branch name in bug test report and upgrade dompurify to version 3.3.2

* fix: update the milestone submission flow for campaign

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>

---------

Co-authored-by: Collins Ikechukwu <collinschristroa@gmail.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>

* Create hackathon-detail-design.md (#466)

---------

Co-authored-by: Collins Ikechukwu <collinschristroa@gmail.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>
Co-authored-by: David Emulo <161654052+Davidemulo@users.noreply.github.com>

---------

Co-authored-by: Collins Ikechukwu <collinschristroa@gmail.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>
Co-authored-by: David Emulo <161654052+Davidemulo@users.noreply.github.com>

* Production (#474)

* merg to prod (#450)

* fix: improve timeline input , ui improvement and fixes for participation tab (#442)

* feat: integrate Sentry for error tracking and reporting

- Added Sentry configuration for both server and edge environments to capture errors and performance metrics.
- Updated error handling across various components to report errors to Sentry, enhancing monitoring capabilities.
- Introduced a new MessagesProvider for managing in-app messaging and notifications.
- Refactored the .env.example file to include Sentry DSN and related configurations for production environments.
- Removed the deprecated connect-wallet component to streamline the codebase.

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* UI fixes (#445)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: handle potential null values in notification data

- Updated notification handling to safely access properties using optional chaining.
- Ensured that the notification data is checked for null values before accessing its properties in various components, improving robustness and preventing runtime errors.

* feat: Enforce Submission Requirements (requireGithub, requireDemoVideo, requireOtherLinks) (#443)

* feat: enforce submission requirements (requireGithub, requireDemoVideo, requireOtherLinks)

- Add dynamic schema validation based on currentHackathon flags
- Enforce requireDemoVideo at schema level with Zod refine
- Add Step 2 validation for requireGithub, requireDemoVideo, requireOtherLinks
- Add final validation pass in onSubmit before API call
- Add dynamic asterisk (*) to required field labels
- Add legend and helper text for required fields
- Wrap links section in FormField for proper error display

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* feat: prevent removal of required links and style required asterisks in red

Made-with: Cursor

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>

* feat(submissions): enforce team size limits (teamMin, teamMax) (#446)

* feat(submissions): enforce team size limits (teamMin, teamMax)

- Add validation in handleNext (Step 0) to block progression when team
  size is below teamMin, showing specific message with members needed
- Guard handleAddInvitee function to prevent adding members when team
  reaches teamMax capacity
- Add capacity indicator Badge showing "X / Y members" with visual
  states: orange when below minimum, yellow when at capacity
- Disable "Add Member" button and inputs when team is full
- Display helper text when team is below minimum requirement

Closes #405

* fix(submissions): remove hardcoded team size fallbacks

- Use undefined instead of hardcoded defaults (1, 10)
- Add hasTeamLimits guard to only enforce when hackathon defines limits
- Conditionally render Badge and helper text when limits are defined

* refactor: enhance error handling and submission response structure

- Introduced a utility function to standardize API error messages across submission operations.
- Updated the create and update submission functions to handle optional chaining for response checks.
- Improved the response structure to include messages for successful submissions.
- Adjusted the CreateSubmissionRequest interface to remove the hackathonId field and made organizationId optional in the update submission request.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>

* UI fixes (#451) (#453)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* ui-fixes (#455)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* merge to prod (#457)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* merg to prod (#459)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and p…
Benjtalkshow added a commit that referenced this pull request Mar 10, 2026
* Create hackathon-detail-design.md (#466)

* Production (#472)

* merg to prod (#450)

* fix: improve timeline input , ui improvement and fixes for participation tab (#442)

* feat: integrate Sentry for error tracking and reporting

- Added Sentry configuration for both server and edge environments to capture errors and performance metrics.
- Updated error handling across various components to report errors to Sentry, enhancing monitoring capabilities.
- Introduced a new MessagesProvider for managing in-app messaging and notifications.
- Refactored the .env.example file to include Sentry DSN and related configurations for production environments.
- Removed the deprecated connect-wallet component to streamline the codebase.

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* UI fixes (#445)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: handle potential null values in notification data

- Updated notification handling to safely access properties using optional chaining.
- Ensured that the notification data is checked for null values before accessing its properties in various components, improving robustness and preventing runtime errors.

* feat: Enforce Submission Requirements (requireGithub, requireDemoVideo, requireOtherLinks) (#443)

* feat: enforce submission requirements (requireGithub, requireDemoVideo, requireOtherLinks)

- Add dynamic schema validation based on currentHackathon flags
- Enforce requireDemoVideo at schema level with Zod refine
- Add Step 2 validation for requireGithub, requireDemoVideo, requireOtherLinks
- Add final validation pass in onSubmit before API call
- Add dynamic asterisk (*) to required field labels
- Add legend and helper text for required fields
- Wrap links section in FormField for proper error display

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* feat: prevent removal of required links and style required asterisks in red

Made-with: Cursor

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>

* feat(submissions): enforce team size limits (teamMin, teamMax) (#446)

* feat(submissions): enforce team size limits (teamMin, teamMax)

- Add validation in handleNext (Step 0) to block progression when team
  size is below teamMin, showing specific message with members needed
- Guard handleAddInvitee function to prevent adding members when team
  reaches teamMax capacity
- Add capacity indicator Badge showing "X / Y members" with visual
  states: orange when below minimum, yellow when at capacity
- Disable "Add Member" button and inputs when team is full
- Display helper text when team is below minimum requirement

Closes #405

* fix(submissions): remove hardcoded team size fallbacks

- Use undefined instead of hardcoded defaults (1, 10)
- Add hasTeamLimits guard to only enforce when hackathon defines limits
- Conditionally render Badge and helper text when limits are defined

* refactor: enhance error handling and submission response structure

- Introduced a utility function to standardize API error messages across submission operations.
- Updated the create and update submission functions to handle optional chaining for response checks.
- Improved the response structure to include messages for successful submissions.
- Adjusted the CreateSubmissionRequest interface to remove the hackathonId field and made organizationId optional in the update submission request.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>

* UI fixes (#451) (#453)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* ui-fixes (#455)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* merge to prod (#457)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* merg to prod (#459)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>

* merg to prod (#461)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

* Docs: add comprehensive bug test report for organization features (#456)

* Test: add comprehensive bug test report for organization features

* docs: update bug test report for organization features and address critical issues

* fix: update branch name in bug test report and upgrade dompurify to version 3.3.2

* fix: update the milestone submission flow for campaign

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>

* Merge fixes to production (#467)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

* Docs: add comprehensive bug test report for organization features (#456)

* Test: add comprehensive bug test report for organization features

* docs: update bug test report for organization features and address critical issues

* fix: update branch name in bug test report and upgrade dompurify to version 3.3.2

* fix: update the milestone submission flow for campaign

* UI fixes (#458)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* fix: fix auto refresh ib submission page

* fix: hackathon submission fixes

* fix: fix coderabbit corrections

* fix: fix coderabbit corrections

* chore: write boundless on x challenge blog

* fix: remove blog

* Blog fix (#464)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* fix: fix auto refresh ib submission page

* fix: hackathon submission fixes

* fix: fix coderabbit corrections

* fix: fix coderabbit corrections

* chore: write boundless on x challenge blog

* fix: remove blog

* chore: add blog content

* Blog fix (#465)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* fix: fix auto refresh ib submission page

* fix: hackathon submission fixes

* fix: fix coderabbit corrections

* fix: fix coderabbit corrections

* chore: write boundless on x challenge blog

* fix: remove blog

* chore: add blog content

* fix: fix broken blog image and notification redirect

* merge fork main to boundlessfi main (#468)

* fix: improve timeline input , ui improvement and fixes for participation tab

* merg to prod (#450)

* fix: improve timeline input , ui improvement and fixes for participation tab (#442)

* feat: integrate Sentry for error tracking and reporting

- Added Sentry configuration for both server and edge environments to capture errors and performance metrics.
- Updated error handling across various components to report errors to Sentry, enhancing monitoring capabilities.
- Introduced a new MessagesProvider for managing in-app messaging and notifications.
- Refactored the .env.example file to include Sentry DSN and related configurations for production environments.
- Removed the deprecated connect-wallet component to streamline the codebase.

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* UI fixes (#445)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: handle potential null values in notification data

- Updated notification handling to safely access properties using optional chaining.
- Ensured that the notification data is checked for null values before accessing its properties in various components, improving robustness and preventing runtime errors.

* feat: Enforce Submission Requirements (requireGithub, requireDemoVideo, requireOtherLinks) (#443)

* feat: enforce submission requirements (requireGithub, requireDemoVideo, requireOtherLinks)

- Add dynamic schema validation based on currentHackathon flags
- Enforce requireDemoVideo at schema level with Zod refine
- Add Step 2 validation for requireGithub, requireDemoVideo, requireOtherLinks
- Add final validation pass in onSubmit before API call
- Add dynamic asterisk (*) to required field labels
- Add legend and helper text for required fields
- Wrap links section in FormField for proper error display

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* feat: prevent removal of required links and style required asterisks in red

Made-with: Cursor

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>

* feat(submissions): enforce team size limits (teamMin, teamMax) (#446)

* feat(submissions): enforce team size limits (teamMin, teamMax)

- Add validation in handleNext (Step 0) to block progression when team
  size is below teamMin, showing specific message with members needed
- Guard handleAddInvitee function to prevent adding members when team
  reaches teamMax capacity
- Add capacity indicator Badge showing "X / Y members" with visual
  states: orange when below minimum, yellow when at capacity
- Disable "Add Member" button and inputs when team is full
- Display helper text when team is below minimum requirement

Closes #405

* fix(submissions): remove hardcoded team size fallbacks

- Use undefined instead of hardcoded defaults (1, 10)
- Add hasTeamLimits guard to only enforce when hackathon defines limits
- Conditionally render Badge and helper text when limits are defined

* refactor: enhance error handling and submission response structure

- Introduced a utility function to standardize API error messages across submission operations.
- Updated the create and update submission functions to handle optional chaining for response checks.
- Improved the response structure to include messages for successful submissions.
- Adjusted the CreateSubmissionRequest interface to remove the hackathonId field and made organizationId optional in the update submission request.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>

* UI fixes (#451) (#453)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* ui-fixes (#455)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* merge to prod (#457)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* merg to prod (#459)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>

* merg to prod (#461)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

* Docs: add comprehensive bug test report for organization features (#456)

* Test: add comprehensive bug test report for organization features

* docs: update bug test report for organization features and address critical issues

* fix: update branch name in bug test report and upgrade dompurify to version 3.3.2

* fix: update the milestone submission flow for campaign

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>

---------

Co-authored-by: Collins Ikechukwu <collinschristroa@gmail.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>

* merge to main (#469)

* fix: improve timeline input , ui improvement and fixes for participation tab

* merg to prod (#450)

* fix: improve timeline input , ui improvement and fixes for participation tab (#442)

* feat: integrate Sentry for error tracking and reporting

- Added Sentry configuration for both server and edge environments to capture errors and performance metrics.
- Updated error handling across various components to report errors to Sentry, enhancing monitoring capabilities.
- Introduced a new MessagesProvider for managing in-app messaging and notifications.
- Refactored the .env.example file to include Sentry DSN and related configurations for production environments.
- Removed the deprecated connect-wallet component to streamline the codebase.

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* UI fixes (#445)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: handle potential null values in notification data

- Updated notification handling to safely access properties using optional chaining.
- Ensured that the notification data is checked for null values before accessing its properties in various components, improving robustness and preventing runtime errors.

* feat: Enforce Submission Requirements (requireGithub, requireDemoVideo, requireOtherLinks) (#443)

* feat: enforce submission requirements (requireGithub, requireDemoVideo, requireOtherLinks)

- Add dynamic schema validation based on currentHackathon flags
- Enforce requireDemoVideo at schema level with Zod refine
- Add Step 2 validation for requireGithub, requireDemoVideo, requireOtherLinks
- Add final validation pass in onSubmit before API call
- Add dynamic asterisk (*) to required field labels
- Add legend and helper text for required fields
- Wrap links section in FormField for proper error display

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* feat: prevent removal of required links and style required asterisks in red

Made-with: Cursor

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>

* feat(submissions): enforce team size limits (teamMin, teamMax) (#446)

* feat(submissions): enforce team size limits (teamMin, teamMax)

- Add validation in handleNext (Step 0) to block progression when team
  size is below teamMin, showing specific message with members needed
- Guard handleAddInvitee function to prevent adding members when team
  reaches teamMax capacity
- Add capacity indicator Badge showing "X / Y members" with visual
  states: orange when below minimum, yellow when at capacity
- Disable "Add Member" button and inputs when team is full
- Display helper text when team is below minimum requirement

Closes #405

* fix(submissions): remove hardcoded team size fallbacks

- Use undefined instead of hardcoded defaults (1, 10)
- Add hasTeamLimits guard to only enforce when hackathon defines limits
- Conditionally render Badge and helper text when limits are defined

* refactor: enhance error handling and submission response structure

- Introduced a utility function to standardize API error messages across submission operations.
- Updated the create and update submission functions to handle optional chaining for response checks.
- Improved the response structure to include messages for successful submissions.
- Adjusted the CreateSubmissionRequest interface to remove the hackathonId field and made organizationId optional in the update submission request.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>

* UI fixes (#451) (#453)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* ui-fixes (#455)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* merge to prod (#457)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* merg to prod (#459)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>

* merg to prod (#461)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

* Docs: add comprehensive bug test report for organization features (#456)

* Test: add comprehensive bug test report for organization features

* docs: update bug test report for organization features and address critical issues

* fix: update branch name in bug test report and upgrade dompurify to version 3.3.2

* fix: update the milestone submission flow for campaign

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>

---------

Co-authored-by: Collins Ikechukwu <collinschristroa@gmail.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>

* merge (#470)

* fix: improve timeline input , ui improvement and fixes for participation tab

* merg to prod (#450)

* fix: improve timeline input , ui improvement and fixes for participation tab (#442)

* feat: integrate Sentry for error tracking and reporting

- Added Sentry configuration for both server and edge environments to capture errors and performance metrics.
- Updated error handling across various components to report errors to Sentry, enhancing monitoring capabilities.
- Introduced a new MessagesProvider for managing in-app messaging and notifications.
- Refactored the .env.example file to include Sentry DSN and related configurations for production environments.
- Removed the deprecated connect-wallet component to streamline the codebase.

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* UI fixes (#445)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: handle potential null values in notification data

- Updated notification handling to safely access properties using optional chaining.
- Ensured that the notification data is checked for null values before accessing its properties in various components, improving robustness and preventing runtime errors.

* feat: Enforce Submission Requirements (requireGithub, requireDemoVideo, requireOtherLinks) (#443)

* feat: enforce submission requirements (requireGithub, requireDemoVideo, requireOtherLinks)

- Add dynamic schema validation based on currentHackathon flags
- Enforce requireDemoVideo at schema level with Zod refine
- Add Step 2 validation for requireGithub, requireDemoVideo, requireOtherLinks
- Add final validation pass in onSubmit before API call
- Add dynamic asterisk (*) to required field labels
- Add legend and helper text for required fields
- Wrap links section in FormField for proper error display

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* feat: prevent removal of required links and style required asterisks in red

Made-with: Cursor

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>

* feat(submissions): enforce team size limits (teamMin, teamMax) (#446)

* feat(submissions): enforce team size limits (teamMin, teamMax)

- Add validation in handleNext (Step 0) to block progression when team
  size is below teamMin, showing specific message with members needed
- Guard handleAddInvitee function to prevent adding members when team
  reaches teamMax capacity
- Add capacity indicator Badge showing "X / Y members" with visual
  states: orange when below minimum, yellow when at capacity
- Disable "Add Member" button and inputs when team is full
- Display helper text when team is below minimum requirement

Closes #405

* fix(submissions): remove hardcoded team size fallbacks

- Use undefined instead of hardcoded defaults (1, 10)
- Add hasTeamLimits guard to only enforce when hackathon defines limits
- Conditionally render Badge and helper text when limits are defined

* refactor: enhance error handling and submission response structure

- Introduced a utility function to standardize API error messages across submission operations.
- Updated the create and update submission functions to handle optional chaining for response checks.
- Improved the response structure to include messages for successful submissions.
- Adjusted the CreateSubmissionRequest interface to remove the hackathonId field and made organizationId optional in the update submission request.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>

* UI fixes (#451) (#453)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* ui-fixes (#455)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* merge to prod (#457)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* merg to prod (#459)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>

* merg to prod (#461)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

* Docs: add comprehensive bug test report for organization features (#456)

* Test: add comprehensive bug test report for organization features

* docs: update bug test report for organization features and address critical issues

* fix: update branch name in bug test report and upgrade dompurify to version 3.3.2

* fix: update the milestone submission flow for campaign

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>

---------

Co-authored-by: Collins Ikechukwu <collinschristroa@gmail.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>

* merge fork to main (#471)

* merg to prod (#450)

* fix: improve timeline input , ui improvement and fixes for participation tab (#442)

* feat: integrate Sentry for error tracking and reporting

- Added Sentry configuration for both server and edge environments to capture errors and performance metrics.
- Updated error handling across various components to report errors to Sentry, enhancing monitoring capabilities.
- Introduced a new MessagesProvider for managing in-app messaging and notifications.
- Refactored the .env.example file to include Sentry DSN and related configurations for production environments.
- Removed the deprecated connect-wallet component to streamline the codebase.

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* UI fixes (#445)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: handle potential null values in notification data

- Updated notification handling to safely access properties using optional chaining.
- Ensured that the notification data is checked for null values before accessing its properties in various components, improving robustness and preventing runtime errors.

* feat: Enforce Submission Requirements (requireGithub, requireDemoVideo, requireOtherLinks) (#443)

* feat: enforce submission requirements (requireGithub, requireDemoVideo, requireOtherLinks)

- Add dynamic schema validation based on currentHackathon flags
- Enforce requireDemoVideo at schema level with Zod refine
- Add Step 2 validation for requireGithub, requireDemoVideo, requireOtherLinks
- Add final validation pass in onSubmit before API call
- Add dynamic asterisk (*) to required field labels
- Add legend and helper text for required fields
- Wrap links section in FormField for proper error display

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* feat: prevent removal of required links and style required asterisks in red

Made-with: Cursor

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>

* feat(submissions): enforce team size limits (teamMin, teamMax) (#446)

* feat(submissions): enforce team size limits (teamMin, teamMax)

- Add validation in handleNext (Step 0) to block progression when team
  size is below teamMin, showing specific message with members needed
- Guard handleAddInvitee function to prevent adding members when team
  reaches teamMax capacity
- Add capacity indicator Badge showing "X / Y members" with visual
  states: orange when below minimum, yellow when at capacity
- Disable "Add Member" button and inputs when team is full
- Display helper text when team is below minimum requirement

Closes #405

* fix(submissions): remove hardcoded team size fallbacks

- Use undefined instead of hardcoded defaults (1, 10)
- Add hasTeamLimits guard to only enforce when hackathon defines limits
- Conditionally render Badge and helper text when limits are defined

* refactor: enhance error handling and submission response structure

- Introduced a utility function to standardize API error messages across submission operations.
- Updated the create and update submission functions to handle optional chaining for response checks.
- Improved the response structure to include messages for successful submissions.
- Adjusted the CreateSubmissionRequest interface to remove the hackathonId field and made organizationId optional in the update submission request.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>

* UI fixes (#451) (#453)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* ui-fixes (#455)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* merge to prod (#457)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* merg to prod (#459)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>

* merg to prod (#461)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

* Docs: add comprehensive bug test report for organization features (#456)

* Test: add comprehensive bug test report for organization features

* docs: update bug test report for organization features and address critical issues

* fix: update branch name in bug test report and upgrade dompurify to version 3.3.2

* fix: update the milestone submission flow for campaign

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>

---------

Co-authored-by: Collins Ikechukwu <collinschristroa@gmail.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>

* Create hackathon-detail-design.md (#466)

---------

Co-authored-by: Collins Ikechukwu <collinschristroa@gmail.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>
Co-authored-by: David Emulo <161654052+Davidemulo@users.noreply.github.com>

---------

Co-authored-by: Collins Ikechukwu <collinschristroa@gmail.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>
Co-authored-by: David Emulo <161654052+Davidemulo@users.noreply.github.com>

* Production (#474)

* merg to prod (#450)

* fix: improve timeline input , ui improvement and fixes for participation tab (#442)

* feat: integrate Sentry for error tracking and reporting

- Added Sentry configuration for both server and edge environments to capture errors and performance metrics.
- Updated error handling across various components to report errors to Sentry, enhancing monitoring capabilities.
- Introduced a new MessagesProvider for managing in-app messaging and notifications.
- Refactored the .env.example file to include Sentry DSN and related configurations for production environments.
- Removed the deprecated connect-wallet component to streamline the codebase.

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* UI fixes (#445)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: handle potential null values in notification data

- Updated notification handling to safely access properties using optional chaining.
- Ensured that the notification data is checked for null values before accessing its properties in various components, improving robustness and preventing runtime errors.

* feat: Enforce Submission Requirements (requireGithub, requireDemoVideo, requireOtherLinks) (#443)

* feat: enforce submission requirements (requireGithub, requireDemoVideo, requireOtherLinks)

- Add dynamic schema validation based on currentHackathon flags
- Enforce requireDemoVideo at schema level with Zod refine
- Add Step 2 validation for requireGithub, requireDemoVideo, requireOtherLinks
- Add final validation pass in onSubmit before API call
- Add dynamic asterisk (*) to required field labels
- Add legend and helper text for required fields
- Wrap links section in FormField for proper error display

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* feat: prevent removal of required links and style required asterisks in red

Made-with: Cursor

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>

* feat(submissions): enforce team size limits (teamMin, teamMax) (#446)

* feat(submissions): enforce team size limits (teamMin, teamMax)

- Add validation in handleNext (Step 0) to block progression when team
  size is below teamMin, showing specific message with members needed
- Guard handleAddInvitee function to prevent adding members when team
  reaches teamMax capacity
- Add capacity indicator Badge showing "X / Y members" with visual
  states: orange when below minimum, yellow when at capacity
- Disable "Add Member" button and inputs when team is full
- Display helper text when team is below minimum requirement

Closes #405

* fix(submissions): remove hardcoded team size fallbacks

- Use undefined instead of hardcoded defaults (1, 10)
- Add hasTeamLimits guard to only enforce when hackathon defines limits
- Conditionally render Badge and helper text when limits are defined

* refactor: enhance error handling and submission response structure

- Introduced a utility function to standardize API error messages across submission operations.
- Updated the create and update submission functions to handle optional chaining for response checks.
- Improved the response structure to include messages for successful submissions.
- Adjusted the CreateSubmissionRequest interface to remove the hackathonId field and made organizationId optional in the update submission request.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>

* UI fixes (#451) (#453)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* ui-fixes (#455)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* merge to prod (#457)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* merg to prod (#459)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa …
Benjtalkshow added a commit that referenced this pull request Mar 11, 2026
* Create hackathon-detail-design.md (#466)

* Production (#472)

* merg to prod (#450)

* fix: improve timeline input , ui improvement and fixes for participation tab (#442)

* feat: integrate Sentry for error tracking and reporting

- Added Sentry configuration for both server and edge environments to capture errors and performance metrics.
- Updated error handling across various components to report errors to Sentry, enhancing monitoring capabilities.
- Introduced a new MessagesProvider for managing in-app messaging and notifications.
- Refactored the .env.example file to include Sentry DSN and related configurations for production environments.
- Removed the deprecated connect-wallet component to streamline the codebase.

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* UI fixes (#445)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: handle potential null values in notification data

- Updated notification handling to safely access properties using optional chaining.
- Ensured that the notification data is checked for null values before accessing its properties in various components, improving robustness and preventing runtime errors.

* feat: Enforce Submission Requirements (requireGithub, requireDemoVideo, requireOtherLinks) (#443)

* feat: enforce submission requirements (requireGithub, requireDemoVideo, requireOtherLinks)

- Add dynamic schema validation based on currentHackathon flags
- Enforce requireDemoVideo at schema level with Zod refine
- Add Step 2 validation for requireGithub, requireDemoVideo, requireOtherLinks
- Add final validation pass in onSubmit before API call
- Add dynamic asterisk (*) to required field labels
- Add legend and helper text for required fields
- Wrap links section in FormField for proper error display

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* feat: prevent removal of required links and style required asterisks in red

Made-with: Cursor

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>

* feat(submissions): enforce team size limits (teamMin, teamMax) (#446)

* feat(submissions): enforce team size limits (teamMin, teamMax)

- Add validation in handleNext (Step 0) to block progression when team
  size is below teamMin, showing specific message with members needed
- Guard handleAddInvitee function to prevent adding members when team
  reaches teamMax capacity
- Add capacity indicator Badge showing "X / Y members" with visual
  states: orange when below minimum, yellow when at capacity
- Disable "Add Member" button and inputs when team is full
- Display helper text when team is below minimum requirement

Closes #405

* fix(submissions): remove hardcoded team size fallbacks

- Use undefined instead of hardcoded defaults (1, 10)
- Add hasTeamLimits guard to only enforce when hackathon defines limits
- Conditionally render Badge and helper text when limits are defined

* refactor: enhance error handling and submission response structure

- Introduced a utility function to standardize API error messages across submission operations.
- Updated the create and update submission functions to handle optional chaining for response checks.
- Improved the response structure to include messages for successful submissions.
- Adjusted the CreateSubmissionRequest interface to remove the hackathonId field and made organizationId optional in the update submission request.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>

* UI fixes (#451) (#453)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* ui-fixes (#455)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* merge to prod (#457)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* merg to prod (#459)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>

* merg to prod (#461)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

* Docs: add comprehensive bug test report for organization features (#456)

* Test: add comprehensive bug test report for organization features

* docs: update bug test report for organization features and address critical issues

* fix: update branch name in bug test report and upgrade dompurify to version 3.3.2

* fix: update the milestone submission flow for campaign

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>

* Merge fixes to production (#467)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

* Docs: add comprehensive bug test report for organization features (#456)

* Test: add comprehensive bug test report for organization features

* docs: update bug test report for organization features and address critical issues

* fix: update branch name in bug test report and upgrade dompurify to version 3.3.2

* fix: update the milestone submission flow for campaign

* UI fixes (#458)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* fix: fix auto refresh ib submission page

* fix: hackathon submission fixes

* fix: fix coderabbit corrections

* fix: fix coderabbit corrections

* chore: write boundless on x challenge blog

* fix: remove blog

* Blog fix (#464)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* fix: fix auto refresh ib submission page

* fix: hackathon submission fixes

* fix: fix coderabbit corrections

* fix: fix coderabbit corrections

* chore: write boundless on x challenge blog

* fix: remove blog

* chore: add blog content

* Blog fix (#465)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* fix: fix auto refresh ib submission page

* fix: hackathon submission fixes

* fix: fix coderabbit corrections

* fix: fix coderabbit corrections

* chore: write boundless on x challenge blog

* fix: remove blog

* chore: add blog content

* fix: fix broken blog image and notification redirect

* merge fork main to boundlessfi main (#468)

* fix: improve timeline input , ui improvement and fixes for participation tab

* merg to prod (#450)

* fix: improve timeline input , ui improvement and fixes for participation tab (#442)

* feat: integrate Sentry for error tracking and reporting

- Added Sentry configuration for both server and edge environments to capture errors and performance metrics.
- Updated error handling across various components to report errors to Sentry, enhancing monitoring capabilities.
- Introduced a new MessagesProvider for managing in-app messaging and notifications.
- Refactored the .env.example file to include Sentry DSN and related configurations for production environments.
- Removed the deprecated connect-wallet component to streamline the codebase.

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* UI fixes (#445)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: handle potential null values in notification data

- Updated notification handling to safely access properties using optional chaining.
- Ensured that the notification data is checked for null values before accessing its properties in various components, improving robustness and preventing runtime errors.

* feat: Enforce Submission Requirements (requireGithub, requireDemoVideo, requireOtherLinks) (#443)

* feat: enforce submission requirements (requireGithub, requireDemoVideo, requireOtherLinks)

- Add dynamic schema validation based on currentHackathon flags
- Enforce requireDemoVideo at schema level with Zod refine
- Add Step 2 validation for requireGithub, requireDemoVideo, requireOtherLinks
- Add final validation pass in onSubmit before API call
- Add dynamic asterisk (*) to required field labels
- Add legend and helper text for required fields
- Wrap links section in FormField for proper error display

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* feat: prevent removal of required links and style required asterisks in red

Made-with: Cursor

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>

* feat(submissions): enforce team size limits (teamMin, teamMax) (#446)

* feat(submissions): enforce team size limits (teamMin, teamMax)

- Add validation in handleNext (Step 0) to block progression when team
  size is below teamMin, showing specific message with members needed
- Guard handleAddInvitee function to prevent adding members when team
  reaches teamMax capacity
- Add capacity indicator Badge showing "X / Y members" with visual
  states: orange when below minimum, yellow when at capacity
- Disable "Add Member" button and inputs when team is full
- Display helper text when team is below minimum requirement

Closes #405

* fix(submissions): remove hardcoded team size fallbacks

- Use undefined instead of hardcoded defaults (1, 10)
- Add hasTeamLimits guard to only enforce when hackathon defines limits
- Conditionally render Badge and helper text when limits are defined

* refactor: enhance error handling and submission response structure

- Introduced a utility function to standardize API error messages across submission operations.
- Updated the create and update submission functions to handle optional chaining for response checks.
- Improved the response structure to include messages for successful submissions.
- Adjusted the CreateSubmissionRequest interface to remove the hackathonId field and made organizationId optional in the update submission request.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>

* UI fixes (#451) (#453)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* ui-fixes (#455)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* merge to prod (#457)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* merg to prod (#459)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>

* merg to prod (#461)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

* Docs: add comprehensive bug test report for organization features (#456)

* Test: add comprehensive bug test report for organization features

* docs: update bug test report for organization features and address critical issues

* fix: update branch name in bug test report and upgrade dompurify to version 3.3.2

* fix: update the milestone submission flow for campaign

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>

---------

Co-authored-by: Collins Ikechukwu <collinschristroa@gmail.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>

* merge to main (#469)

* fix: improve timeline input , ui improvement and fixes for participation tab

* merg to prod (#450)

* fix: improve timeline input , ui improvement and fixes for participation tab (#442)

* feat: integrate Sentry for error tracking and reporting

- Added Sentry configuration for both server and edge environments to capture errors and performance metrics.
- Updated error handling across various components to report errors to Sentry, enhancing monitoring capabilities.
- Introduced a new MessagesProvider for managing in-app messaging and notifications.
- Refactored the .env.example file to include Sentry DSN and related configurations for production environments.
- Removed the deprecated connect-wallet component to streamline the codebase.

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* UI fixes (#445)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: handle potential null values in notification data

- Updated notification handling to safely access properties using optional chaining.
- Ensured that the notification data is checked for null values before accessing its properties in various components, improving robustness and preventing runtime errors.

* feat: Enforce Submission Requirements (requireGithub, requireDemoVideo, requireOtherLinks) (#443)

* feat: enforce submission requirements (requireGithub, requireDemoVideo, requireOtherLinks)

- Add dynamic schema validation based on currentHackathon flags
- Enforce requireDemoVideo at schema level with Zod refine
- Add Step 2 validation for requireGithub, requireDemoVideo, requireOtherLinks
- Add final validation pass in onSubmit before API call
- Add dynamic asterisk (*) to required field labels
- Add legend and helper text for required fields
- Wrap links section in FormField for proper error display

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* feat: prevent removal of required links and style required asterisks in red

Made-with: Cursor

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>

* feat(submissions): enforce team size limits (teamMin, teamMax) (#446)

* feat(submissions): enforce team size limits (teamMin, teamMax)

- Add validation in handleNext (Step 0) to block progression when team
  size is below teamMin, showing specific message with members needed
- Guard handleAddInvitee function to prevent adding members when team
  reaches teamMax capacity
- Add capacity indicator Badge showing "X / Y members" with visual
  states: orange when below minimum, yellow when at capacity
- Disable "Add Member" button and inputs when team is full
- Display helper text when team is below minimum requirement

Closes #405

* fix(submissions): remove hardcoded team size fallbacks

- Use undefined instead of hardcoded defaults (1, 10)
- Add hasTeamLimits guard to only enforce when hackathon defines limits
- Conditionally render Badge and helper text when limits are defined

* refactor: enhance error handling and submission response structure

- Introduced a utility function to standardize API error messages across submission operations.
- Updated the create and update submission functions to handle optional chaining for response checks.
- Improved the response structure to include messages for successful submissions.
- Adjusted the CreateSubmissionRequest interface to remove the hackathonId field and made organizationId optional in the update submission request.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>

* UI fixes (#451) (#453)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* ui-fixes (#455)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* merge to prod (#457)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* merg to prod (#459)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>

* merg to prod (#461)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

* Docs: add comprehensive bug test report for organization features (#456)

* Test: add comprehensive bug test report for organization features

* docs: update bug test report for organization features and address critical issues

* fix: update branch name in bug test report and upgrade dompurify to version 3.3.2

* fix: update the milestone submission flow for campaign

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>

---------

Co-authored-by: Collins Ikechukwu <collinschristroa@gmail.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>

* merge (#470)

* fix: improve timeline input , ui improvement and fixes for participation tab

* merg to prod (#450)

* fix: improve timeline input , ui improvement and fixes for participation tab (#442)

* feat: integrate Sentry for error tracking and reporting

- Added Sentry configuration for both server and edge environments to capture errors and performance metrics.
- Updated error handling across various components to report errors to Sentry, enhancing monitoring capabilities.
- Introduced a new MessagesProvider for managing in-app messaging and notifications.
- Refactored the .env.example file to include Sentry DSN and related configurations for production environments.
- Removed the deprecated connect-wallet component to streamline the codebase.

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* UI fixes (#445)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: handle potential null values in notification data

- Updated notification handling to safely access properties using optional chaining.
- Ensured that the notification data is checked for null values before accessing its properties in various components, improving robustness and preventing runtime errors.

* feat: Enforce Submission Requirements (requireGithub, requireDemoVideo, requireOtherLinks) (#443)

* feat: enforce submission requirements (requireGithub, requireDemoVideo, requireOtherLinks)

- Add dynamic schema validation based on currentHackathon flags
- Enforce requireDemoVideo at schema level with Zod refine
- Add Step 2 validation for requireGithub, requireDemoVideo, requireOtherLinks
- Add final validation pass in onSubmit before API call
- Add dynamic asterisk (*) to required field labels
- Add legend and helper text for required fields
- Wrap links section in FormField for proper error display

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* feat: prevent removal of required links and style required asterisks in red

Made-with: Cursor

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>

* feat(submissions): enforce team size limits (teamMin, teamMax) (#446)

* feat(submissions): enforce team size limits (teamMin, teamMax)

- Add validation in handleNext (Step 0) to block progression when team
  size is below teamMin, showing specific message with members needed
- Guard handleAddInvitee function to prevent adding members when team
  reaches teamMax capacity
- Add capacity indicator Badge showing "X / Y members" with visual
  states: orange when below minimum, yellow when at capacity
- Disable "Add Member" button and inputs when team is full
- Display helper text when team is below minimum requirement

Closes #405

* fix(submissions): remove hardcoded team size fallbacks

- Use undefined instead of hardcoded defaults (1, 10)
- Add hasTeamLimits guard to only enforce when hackathon defines limits
- Conditionally render Badge and helper text when limits are defined

* refactor: enhance error handling and submission response structure

- Introduced a utility function to standardize API error messages across submission operations.
- Updated the create and update submission functions to handle optional chaining for response checks.
- Improved the response structure to include messages for successful submissions.
- Adjusted the CreateSubmissionRequest interface to remove the hackathonId field and made organizationId optional in the update submission request.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>

* UI fixes (#451) (#453)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* ui-fixes (#455)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* merge to prod (#457)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* merg to prod (#459)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>

* merg to prod (#461)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

* Docs: add comprehensive bug test report for organization features (#456)

* Test: add comprehensive bug test report for organization features

* docs: update bug test report for organization features and address critical issues

* fix: update branch name in bug test report and upgrade dompurify to version 3.3.2

* fix: update the milestone submission flow for campaign

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>

---------

Co-authored-by: Collins Ikechukwu <collinschristroa@gmail.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>

* merge fork to main (#471)

* merg to prod (#450)

* fix: improve timeline input , ui improvement and fixes for participation tab (#442)

* feat: integrate Sentry for error tracking and reporting

- Added Sentry configuration for both server and edge environments to capture errors and performance metrics.
- Updated error handling across various components to report errors to Sentry, enhancing monitoring capabilities.
- Introduced a new MessagesProvider for managing in-app messaging and notifications.
- Refactored the .env.example file to include Sentry DSN and related configurations for production environments.
- Removed the deprecated connect-wallet component to streamline the codebase.

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* UI fixes (#445)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: handle potential null values in notification data

- Updated notification handling to safely access properties using optional chaining.
- Ensured that the notification data is checked for null values before accessing its properties in various components, improving robustness and preventing runtime errors.

* feat: Enforce Submission Requirements (requireGithub, requireDemoVideo, requireOtherLinks) (#443)

* feat: enforce submission requirements (requireGithub, requireDemoVideo, requireOtherLinks)

- Add dynamic schema validation based on currentHackathon flags
- Enforce requireDemoVideo at schema level with Zod refine
- Add Step 2 validation for requireGithub, requireDemoVideo, requireOtherLinks
- Add final validation pass in onSubmit before API call
- Add dynamic asterisk (*) to required field labels
- Add legend and helper text for required fields
- Wrap links section in FormField for proper error display

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* feat: prevent removal of required links and style required asterisks in red

Made-with: Cursor

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>

* feat(submissions): enforce team size limits (teamMin, teamMax) (#446)

* feat(submissions): enforce team size limits (teamMin, teamMax)

- Add validation in handleNext (Step 0) to block progression when team
  size is below teamMin, showing specific message with members needed
- Guard handleAddInvitee function to prevent adding members when team
  reaches teamMax capacity
- Add capacity indicator Badge showing "X / Y members" with visual
  states: orange when below minimum, yellow when at capacity
- Disable "Add Member" button and inputs when team is full
- Display helper text when team is below minimum requirement

Closes #405

* fix(submissions): remove hardcoded team size fallbacks

- Use undefined instead of hardcoded defaults (1, 10)
- Add hasTeamLimits guard to only enforce when hackathon defines limits
- Conditionally render Badge and helper text when limits are defined

* refactor: enhance error handling and submission response structure

- Introduced a utility function to standardize API error messages across submission operations.
- Updated the create and update submission functions to handle optional chaining for response checks.
- Improved the response structure to include messages for successful submissions.
- Adjusted the CreateSubmissionRequest interface to remove the hackathonId field and made organizationId optional in the update submission request.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>

* UI fixes (#451) (#453)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* ui-fixes (#455)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* merge to prod (#457)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* merg to prod (#459)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>

* merg to prod (#461)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

* Docs: add comprehensive bug test report for organization features (#456)

* Test: add comprehensive bug test report for organization features

* docs: update bug test report for organization features and address critical issues

* fix: update branch name in bug test report and upgrade dompurify to version 3.3.2

* fix: update the milestone submission flow for campaign

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>

---------

Co-authored-by: Collins Ikechukwu <collinschristroa@gmail.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>

* Create hackathon-detail-design.md (#466)

---------

Co-authored-by: Collins Ikechukwu <collinschristroa@gmail.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>
Co-authored-by: David Emulo <161654052+Davidemulo@users.noreply.github.com>

---------

Co-authored-by: Collins Ikechukwu <collinschristroa@gmail.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>
Co-authored-by: David Emulo <161654052+Davidemulo@users.noreply.github.com>

* Production (#474)

* merg to prod (#450)

* fix: improve timeline input , ui improvement and fixes for participation tab (#442)

* feat: integrate Sentry for error tracking and reporting

- Added Sentry configuration for both server and edge environments to capture errors and performance metrics.
- Updated error handling across various components to report errors to Sentry, enhancing monitoring capabilities.
- Introduced a new MessagesProvider for managing in-app messaging and notifications.
- Refactored the .env.example file to include Sentry DSN and related configurations for production environments.
- Removed the deprecated connect-wallet component to streamline the codebase.

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* UI fixes (#445)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: handle potential null values in notification data

- Updated notification handling to safely access properties using optional chaining.
- Ensured that the notification data is checked for null values before accessing its properties in various components, improving robustness and preventing runtime errors.

* feat: Enforce Submission Requirements (requireGithub, requireDemoVideo, requireOtherLinks) (#443)

* feat: enforce submission requirements (requireGithub, requireDemoVideo, requireOtherLinks)

- Add dynamic schema validation based on currentHackathon flags
- Enforce requireDemoVideo at schema level with Zod refine
- Add Step 2 validation for requireGithub, requireDemoVideo, requireOtherLinks
- Add final validation pass in onSubmit before API call
- Add dynamic asterisk (*) to required field labels
- Add legend and helper text for required fields
- Wrap links section in FormField for proper error display

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* feat: prevent removal of required links and style required asterisks in red

Made-with: Cursor

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>

* feat(submissions): enforce team size limits (teamMin, teamMax) (#446)

* feat(submissions): enforce team size limits (teamMin, teamMax)

- Add validation in handleNext (Step 0) to block progression when team
  size is below teamMin, showing specific message with members needed
- Guard handleAddInvitee function to prevent adding members when team
  reaches teamMax capacity
- Add capacity indicator Badge showing "X / Y members" with visual
  states: orange when below minimum, yellow when at capacity
- Disable "Add Member" button and inputs when team is full
- Display helper text when team is below minimum requirement

Closes #405

* fix(submissions): remove hardcoded team size fallbacks

- Use undefined instead of hardcoded defaults (1, 10)
- Add hasTeamLimits guard to only enforce when hackathon defines limits
- Conditionally render Badge and helper text when limits are defined

* refactor: enhance error handling and submission response structure

- Introduced a utility function to standardize API error messages across submission operations.
- Updated the create and update submission functions to handle optional chaining for response checks.
- Improved the response structure to include messages for successful submissions.
- Adjusted the CreateSubmissionRequest interface to remove the hackathonId field and made organizationId optional in the update submission request.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>

* UI fixes (#451) (#453)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* ui-fixes (#455)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* merge to prod (#457)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* merg to prod (#459)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for em…
Benjtalkshow added a commit that referenced this pull request Mar 11, 2026
* Create hackathon-detail-design.md (#466)

* Production (#472)

* merg to prod (#450)

* fix: improve timeline input , ui improvement and fixes for participation tab (#442)

* feat: integrate Sentry for error tracking and reporting

- Added Sentry configuration for both server and edge environments to capture errors and performance metrics.
- Updated error handling across various components to report errors to Sentry, enhancing monitoring capabilities.
- Introduced a new MessagesProvider for managing in-app messaging and notifications.
- Refactored the .env.example file to include Sentry DSN and related configurations for production environments.
- Removed the deprecated connect-wallet component to streamline the codebase.

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* UI fixes (#445)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: handle potential null values in notification data

- Updated notification handling to safely access properties using optional chaining.
- Ensured that the notification data is checked for null values before accessing its properties in various components, improving robustness and preventing runtime errors.

* feat: Enforce Submission Requirements (requireGithub, requireDemoVideo, requireOtherLinks) (#443)

* feat: enforce submission requirements (requireGithub, requireDemoVideo, requireOtherLinks)

- Add dynamic schema validation based on currentHackathon flags
- Enforce requireDemoVideo at schema level with Zod refine
- Add Step 2 validation for requireGithub, requireDemoVideo, requireOtherLinks
- Add final validation pass in onSubmit before API call
- Add dynamic asterisk (*) to required field labels
- Add legend and helper text for required fields
- Wrap links section in FormField for proper error display

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* feat: prevent removal of required links and style required asterisks in red

Made-with: Cursor

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>

* feat(submissions): enforce team size limits (teamMin, teamMax) (#446)

* feat(submissions): enforce team size limits (teamMin, teamMax)

- Add validation in handleNext (Step 0) to block progression when team
  size is below teamMin, showing specific message with members needed
- Guard handleAddInvitee function to prevent adding members when team
  reaches teamMax capacity
- Add capacity indicator Badge showing "X / Y members" with visual
  states: orange when below minimum, yellow when at capacity
- Disable "Add Member" button and inputs when team is full
- Display helper text when team is below minimum requirement

Closes #405

* fix(submissions): remove hardcoded team size fallbacks

- Use undefined instead of hardcoded defaults (1, 10)
- Add hasTeamLimits guard to only enforce when hackathon defines limits
- Conditionally render Badge and helper text when limits are defined

* refactor: enhance error handling and submission response structure

- Introduced a utility function to standardize API error messages across submission operations.
- Updated the create and update submission functions to handle optional chaining for response checks.
- Improved the response structure to include messages for successful submissions.
- Adjusted the CreateSubmissionRequest interface to remove the hackathonId field and made organizationId optional in the update submission request.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>

* UI fixes (#451) (#453)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* ui-fixes (#455)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* merge to prod (#457)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* merg to prod (#459)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>

* merg to prod (#461)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

* Docs: add comprehensive bug test report for organization features (#456)

* Test: add comprehensive bug test report for organization features

* docs: update bug test report for organization features and address critical issues

* fix: update branch name in bug test report and upgrade dompurify to version 3.3.2

* fix: update the milestone submission flow for campaign

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>

* Merge fixes to production (#467)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

* Docs: add comprehensive bug test report for organization features (#456)

* Test: add comprehensive bug test report for organization features

* docs: update bug test report for organization features and address critical issues

* fix: update branch name in bug test report and upgrade dompurify to version 3.3.2

* fix: update the milestone submission flow for campaign

* UI fixes (#458)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* fix: fix auto refresh ib submission page

* fix: hackathon submission fixes

* fix: fix coderabbit corrections

* fix: fix coderabbit corrections

* chore: write boundless on x challenge blog

* fix: remove blog

* Blog fix (#464)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* fix: fix auto refresh ib submission page

* fix: hackathon submission fixes

* fix: fix coderabbit corrections

* fix: fix coderabbit corrections

* chore: write boundless on x challenge blog

* fix: remove blog

* chore: add blog content

* Blog fix (#465)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* fix: fix auto refresh ib submission page

* fix: hackathon submission fixes

* fix: fix coderabbit corrections

* fix: fix coderabbit corrections

* chore: write boundless on x challenge blog

* fix: remove blog

* chore: add blog content

* fix: fix broken blog image and notification redirect

* merge fork main to boundlessfi main (#468)

* fix: improve timeline input , ui improvement and fixes for participation tab

* merg to prod (#450)

* fix: improve timeline input , ui improvement and fixes for participation tab (#442)

* feat: integrate Sentry for error tracking and reporting

- Added Sentry configuration for both server and edge environments to capture errors and performance metrics.
- Updated error handling across various components to report errors to Sentry, enhancing monitoring capabilities.
- Introduced a new MessagesProvider for managing in-app messaging and notifications.
- Refactored the .env.example file to include Sentry DSN and related configurations for production environments.
- Removed the deprecated connect-wallet component to streamline the codebase.

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* UI fixes (#445)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: handle potential null values in notification data

- Updated notification handling to safely access properties using optional chaining.
- Ensured that the notification data is checked for null values before accessing its properties in various components, improving robustness and preventing runtime errors.

* feat: Enforce Submission Requirements (requireGithub, requireDemoVideo, requireOtherLinks) (#443)

* feat: enforce submission requirements (requireGithub, requireDemoVideo, requireOtherLinks)

- Add dynamic schema validation based on currentHackathon flags
- Enforce requireDemoVideo at schema level with Zod refine
- Add Step 2 validation for requireGithub, requireDemoVideo, requireOtherLinks
- Add final validation pass in onSubmit before API call
- Add dynamic asterisk (*) to required field labels
- Add legend and helper text for required fields
- Wrap links section in FormField for proper error display

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* feat: prevent removal of required links and style required asterisks in red

Made-with: Cursor

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>

* feat(submissions): enforce team size limits (teamMin, teamMax) (#446)

* feat(submissions): enforce team size limits (teamMin, teamMax)

- Add validation in handleNext (Step 0) to block progression when team
  size is below teamMin, showing specific message with members needed
- Guard handleAddInvitee function to prevent adding members when team
  reaches teamMax capacity
- Add capacity indicator Badge showing "X / Y members" with visual
  states: orange when below minimum, yellow when at capacity
- Disable "Add Member" button and inputs when team is full
- Display helper text when team is below minimum requirement

Closes #405

* fix(submissions): remove hardcoded team size fallbacks

- Use undefined instead of hardcoded defaults (1, 10)
- Add hasTeamLimits guard to only enforce when hackathon defines limits
- Conditionally render Badge and helper text when limits are defined

* refactor: enhance error handling and submission response structure

- Introduced a utility function to standardize API error messages across submission operations.
- Updated the create and update submission functions to handle optional chaining for response checks.
- Improved the response structure to include messages for successful submissions.
- Adjusted the CreateSubmissionRequest interface to remove the hackathonId field and made organizationId optional in the update submission request.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>

* UI fixes (#451) (#453)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* ui-fixes (#455)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* merge to prod (#457)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* merg to prod (#459)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>

* merg to prod (#461)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

* Docs: add comprehensive bug test report for organization features (#456)

* Test: add comprehensive bug test report for organization features

* docs: update bug test report for organization features and address critical issues

* fix: update branch name in bug test report and upgrade dompurify to version 3.3.2

* fix: update the milestone submission flow for campaign

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>

---------

Co-authored-by: Collins Ikechukwu <collinschristroa@gmail.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>

* merge to main (#469)

* fix: improve timeline input , ui improvement and fixes for participation tab

* merg to prod (#450)

* fix: improve timeline input , ui improvement and fixes for participation tab (#442)

* feat: integrate Sentry for error tracking and reporting

- Added Sentry configuration for both server and edge environments to capture errors and performance metrics.
- Updated error handling across various components to report errors to Sentry, enhancing monitoring capabilities.
- Introduced a new MessagesProvider for managing in-app messaging and notifications.
- Refactored the .env.example file to include Sentry DSN and related configurations for production environments.
- Removed the deprecated connect-wallet component to streamline the codebase.

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* UI fixes (#445)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: handle potential null values in notification data

- Updated notification handling to safely access properties using optional chaining.
- Ensured that the notification data is checked for null values before accessing its properties in various components, improving robustness and preventing runtime errors.

* feat: Enforce Submission Requirements (requireGithub, requireDemoVideo, requireOtherLinks) (#443)

* feat: enforce submission requirements (requireGithub, requireDemoVideo, requireOtherLinks)

- Add dynamic schema validation based on currentHackathon flags
- Enforce requireDemoVideo at schema level with Zod refine
- Add Step 2 validation for requireGithub, requireDemoVideo, requireOtherLinks
- Add final validation pass in onSubmit before API call
- Add dynamic asterisk (*) to required field labels
- Add legend and helper text for required fields
- Wrap links section in FormField for proper error display

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* feat: prevent removal of required links and style required asterisks in red

Made-with: Cursor

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>

* feat(submissions): enforce team size limits (teamMin, teamMax) (#446)

* feat(submissions): enforce team size limits (teamMin, teamMax)

- Add validation in handleNext (Step 0) to block progression when team
  size is below teamMin, showing specific message with members needed
- Guard handleAddInvitee function to prevent adding members when team
  reaches teamMax capacity
- Add capacity indicator Badge showing "X / Y members" with visual
  states: orange when below minimum, yellow when at capacity
- Disable "Add Member" button and inputs when team is full
- Display helper text when team is below minimum requirement

Closes #405

* fix(submissions): remove hardcoded team size fallbacks

- Use undefined instead of hardcoded defaults (1, 10)
- Add hasTeamLimits guard to only enforce when hackathon defines limits
- Conditionally render Badge and helper text when limits are defined

* refactor: enhance error handling and submission response structure

- Introduced a utility function to standardize API error messages across submission operations.
- Updated the create and update submission functions to handle optional chaining for response checks.
- Improved the response structure to include messages for successful submissions.
- Adjusted the CreateSubmissionRequest interface to remove the hackathonId field and made organizationId optional in the update submission request.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>

* UI fixes (#451) (#453)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* ui-fixes (#455)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* merge to prod (#457)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* merg to prod (#459)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>

* merg to prod (#461)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

* Docs: add comprehensive bug test report for organization features (#456)

* Test: add comprehensive bug test report for organization features

* docs: update bug test report for organization features and address critical issues

* fix: update branch name in bug test report and upgrade dompurify to version 3.3.2

* fix: update the milestone submission flow for campaign

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>

---------

Co-authored-by: Collins Ikechukwu <collinschristroa@gmail.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>

* merge (#470)

* fix: improve timeline input , ui improvement and fixes for participation tab

* merg to prod (#450)

* fix: improve timeline input , ui improvement and fixes for participation tab (#442)

* feat: integrate Sentry for error tracking and reporting

- Added Sentry configuration for both server and edge environments to capture errors and performance metrics.
- Updated error handling across various components to report errors to Sentry, enhancing monitoring capabilities.
- Introduced a new MessagesProvider for managing in-app messaging and notifications.
- Refactored the .env.example file to include Sentry DSN and related configurations for production environments.
- Removed the deprecated connect-wallet component to streamline the codebase.

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* UI fixes (#445)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: handle potential null values in notification data

- Updated notification handling to safely access properties using optional chaining.
- Ensured that the notification data is checked for null values before accessing its properties in various components, improving robustness and preventing runtime errors.

* feat: Enforce Submission Requirements (requireGithub, requireDemoVideo, requireOtherLinks) (#443)

* feat: enforce submission requirements (requireGithub, requireDemoVideo, requireOtherLinks)

- Add dynamic schema validation based on currentHackathon flags
- Enforce requireDemoVideo at schema level with Zod refine
- Add Step 2 validation for requireGithub, requireDemoVideo, requireOtherLinks
- Add final validation pass in onSubmit before API call
- Add dynamic asterisk (*) to required field labels
- Add legend and helper text for required fields
- Wrap links section in FormField for proper error display

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* feat: prevent removal of required links and style required asterisks in red

Made-with: Cursor

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>

* feat(submissions): enforce team size limits (teamMin, teamMax) (#446)

* feat(submissions): enforce team size limits (teamMin, teamMax)

- Add validation in handleNext (Step 0) to block progression when team
  size is below teamMin, showing specific message with members needed
- Guard handleAddInvitee function to prevent adding members when team
  reaches teamMax capacity
- Add capacity indicator Badge showing "X / Y members" with visual
  states: orange when below minimum, yellow when at capacity
- Disable "Add Member" button and inputs when team is full
- Display helper text when team is below minimum requirement

Closes #405

* fix(submissions): remove hardcoded team size fallbacks

- Use undefined instead of hardcoded defaults (1, 10)
- Add hasTeamLimits guard to only enforce when hackathon defines limits
- Conditionally render Badge and helper text when limits are defined

* refactor: enhance error handling and submission response structure

- Introduced a utility function to standardize API error messages across submission operations.
- Updated the create and update submission functions to handle optional chaining for response checks.
- Improved the response structure to include messages for successful submissions.
- Adjusted the CreateSubmissionRequest interface to remove the hackathonId field and made organizationId optional in the update submission request.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>

* UI fixes (#451) (#453)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* ui-fixes (#455)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* merge to prod (#457)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* merg to prod (#459)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>

* merg to prod (#461)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

* Docs: add comprehensive bug test report for organization features (#456)

* Test: add comprehensive bug test report for organization features

* docs: update bug test report for organization features and address critical issues

* fix: update branch name in bug test report and upgrade dompurify to version 3.3.2

* fix: update the milestone submission flow for campaign

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>

---------

Co-authored-by: Collins Ikechukwu <collinschristroa@gmail.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>

* merge fork to main (#471)

* merg to prod (#450)

* fix: improve timeline input , ui improvement and fixes for participation tab (#442)

* feat: integrate Sentry for error tracking and reporting

- Added Sentry configuration for both server and edge environments to capture errors and performance metrics.
- Updated error handling across various components to report errors to Sentry, enhancing monitoring capabilities.
- Introduced a new MessagesProvider for managing in-app messaging and notifications.
- Refactored the .env.example file to include Sentry DSN and related configurations for production environments.
- Removed the deprecated connect-wallet component to streamline the codebase.

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* UI fixes (#445)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: handle potential null values in notification data

- Updated notification handling to safely access properties using optional chaining.
- Ensured that the notification data is checked for null values before accessing its properties in various components, improving robustness and preventing runtime errors.

* feat: Enforce Submission Requirements (requireGithub, requireDemoVideo, requireOtherLinks) (#443)

* feat: enforce submission requirements (requireGithub, requireDemoVideo, requireOtherLinks)

- Add dynamic schema validation based on currentHackathon flags
- Enforce requireDemoVideo at schema level with Zod refine
- Add Step 2 validation for requireGithub, requireDemoVideo, requireOtherLinks
- Add final validation pass in onSubmit before API call
- Add dynamic asterisk (*) to required field labels
- Add legend and helper text for required fields
- Wrap links section in FormField for proper error display

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* feat: prevent removal of required links and style required asterisks in red

Made-with: Cursor

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>

* feat(submissions): enforce team size limits (teamMin, teamMax) (#446)

* feat(submissions): enforce team size limits (teamMin, teamMax)

- Add validation in handleNext (Step 0) to block progression when team
  size is below teamMin, showing specific message with members needed
- Guard handleAddInvitee function to prevent adding members when team
  reaches teamMax capacity
- Add capacity indicator Badge showing "X / Y members" with visual
  states: orange when below minimum, yellow when at capacity
- Disable "Add Member" button and inputs when team is full
- Display helper text when team is below minimum requirement

Closes #405

* fix(submissions): remove hardcoded team size fallbacks

- Use undefined instead of hardcoded defaults (1, 10)
- Add hasTeamLimits guard to only enforce when hackathon defines limits
- Conditionally render Badge and helper text when limits are defined

* refactor: enhance error handling and submission response structure

- Introduced a utility function to standardize API error messages across submission operations.
- Updated the create and update submission functions to handle optional chaining for response checks.
- Improved the response structure to include messages for successful submissions.
- Adjusted the CreateSubmissionRequest interface to remove the hackathonId field and made organizationId optional in the update submission request.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>

* UI fixes (#451) (#453)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* ui-fixes (#455)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* merge to prod (#457)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* merg to prod (#459)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>

* merg to prod (#461)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

* feat(newsletter): implement newsletter API integration with subscribe… (#452)

* feat(newsletter): implement newsletter API integration with subscribe, confirm, unsubscribe, and preferences

* Draft
feat(newsletter): Imp some extra things

* feat(newsletter): add API routes, client helpers, and UI pages

* Docs: add comprehensive bug test report for organization features (#456)

* Test: add comprehensive bug test report for organization features

* docs: update bug test report for organization features and address critical issues

* fix: update branch name in bug test report and upgrade dompurify to version 3.3.2

* fix: update the milestone submission flow for campaign

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>

---------

Co-authored-by: Collins Ikechukwu <collinschristroa@gmail.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>

* Create hackathon-detail-design.md (#466)

---------

Co-authored-by: Collins Ikechukwu <collinschristroa@gmail.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>
Co-authored-by: David Emulo <161654052+Davidemulo@users.noreply.github.com>

---------

Co-authored-by: Collins Ikechukwu <collinschristroa@gmail.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>
Co-authored-by: Sandeep chauhan <92181599+ryzen-xp@users.noreply.github.com>
Co-authored-by: Ekene Ngwudike <94962750+Ekene001@users.noreply.github.com>
Co-authored-by: David Emulo <161654052+Davidemulo@users.noreply.github.com>

* Production (#474)

* merg to prod (#450)

* fix: improve timeline input , ui improvement and fixes for participation tab (#442)

* feat: integrate Sentry for error tracking and reporting

- Added Sentry configuration for both server and edge environments to capture errors and performance metrics.
- Updated error handling across various components to report errors to Sentry, enhancing monitoring capabilities.
- Introduced a new MessagesProvider for managing in-app messaging and notifications.
- Refactored the .env.example file to include Sentry DSN and related configurations for production environments.
- Removed the deprecated connect-wallet component to streamline the codebase.

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* UI fixes (#445)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: handle potential null values in notification data

- Updated notification handling to safely access properties using optional chaining.
- Ensured that the notification data is checked for null values before accessing its properties in various components, improving robustness and preventing runtime errors.

* feat: Enforce Submission Requirements (requireGithub, requireDemoVideo, requireOtherLinks) (#443)

* feat: enforce submission requirements (requireGithub, requireDemoVideo, requireOtherLinks)

- Add dynamic schema validation based on currentHackathon flags
- Enforce requireDemoVideo at schema level with Zod refine
- Add Step 2 validation for requireGithub, requireDemoVideo, requireOtherLinks
- Add final validation pass in onSubmit before API call
- Add dynamic asterisk (*) to required field labels
- Add legend and helper text for required fields
- Wrap links section in FormField for proper error display

* UI fixes (#444)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* feat: prevent removal of required links and style required asterisks in red

Made-with: Cursor

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>

* feat(submissions): enforce team size limits (teamMin, teamMax) (#446)

* feat(submissions): enforce team size limits (teamMin, teamMax)

- Add validation in handleNext (Step 0) to block progression when team
  size is below teamMin, showing specific message with members needed
- Guard handleAddInvitee function to prevent adding members when team
  reaches teamMax capacity
- Add capacity indicator Badge showing "X / Y members" with visual
  states: orange when below minimum, yellow when at capacity
- Disable "Add Member" button and inputs when team is full
- Display helper text when team is below minimum requirement

Closes #405

* fix(submissions): remove hardcoded team size fallbacks

- Use undefined instead of hardcoded defaults (1, 10)
- Add hasTeamLimits guard to only enforce when hackathon defines limits
- Conditionally render Badge and helper text when limits are defined

* refactor: enhance error handling and submission response structure

- Introduced a utility function to standardize API error messages across submission operations.
- Updated the create and update submission functions to handle optional chaining for response checks.
- Improved the response structure to include messages for successful submissions.
- Adjusted the CreateSubmissionRequest interface to remove the hackathonId field and made organizationId optional in the update submission request.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>
Co-authored-by: Matias Aguilar <aaguilar1x@gmail.com>
Co-authored-by: felipevega2x <feliaguilar5@gmail.com>
Co-authored-by: Josué Araya Marín <104031367+Josue19-08@users.noreply.github.com>

* UI fixes (#451) (#453)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* ui-fixes (#455)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* merge to prod (#457)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* fix: fix hackathon submission and participant page

* fix: fix hackathon submission and participant page

* feat(navbar): enhance navbar styles and layout

- Added CSS variables for active navbar link states, improving visual feedback.
- Refactored navbar layout for better alignment and responsiveness, including adjustments for mobile and desktop views.
- Updated component structure to ensure consistent styling and behavior across different states.

* feat(announcements): enhance announcement rendering and markdown support

- Implemented a `stripMarkdown` function to convert Markdown content to plain text for better preview handling in the announcement page.
- Created an `AnnouncementPreview` component to render announcements with Markdown support, improving content display in the announcements tab.
- Updated the announcement editor to utilize a dynamic Markdown editor, enhancing the editing experience for users.

---------

Co-authored-by: Nnaji Benjamin <60315147+Benjtalkshow@users.noreply.github.com>

* merg to prod (#459)

* UI fixes (#451)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and password login

* fix: fix conflict

* fix: fix submission form

* UI fixes (#454)

* fix: improve timeline input , ui improvement and fixes for participation tab

* fix: implement 2fa for email and p…
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant