Skip to content

Commit 4ca7faf

Browse files
BenjtalkshowDavidemulo0xdevcollinsaguilar1xfelipevega2x
authored
Production (#482)
* 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…
1 parent 3483b21 commit 4ca7faf

29 files changed

Lines changed: 834 additions & 555 deletions

app/(landing)/hackathons/[slug]/HackathonPageClient.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -403,6 +403,7 @@ export default function HackathonPageClient() {
403403
// Shared props for banner and sticky card
404404
const sharedActionProps = {
405405
deadline: currentHackathon.submissionDeadline,
406+
submissionDeadlineExtendedAt: currentHackathon.submissionDeadlineExtendedAt,
406407
startDate: currentHackathon.startDate,
407408
totalPrizePool: currentHackathon.prizeTiers
408409
.reduce((acc, prize) => acc + Number(prize.prizeAmount || 0), 0)

app/(landing)/hackathons/[slug]/hackathon-detail-design.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ https://www.figma.com/design/EMNGAQl1SGObXcsoa24krt/Boundless_Project-Details?no
77
This design proposes a cleaner and more professional UI/UX for the hackathon detail page.
88

99
Included in the Figma file:
10+
1011
- Desktop layout
1112
- Mobile layout
1213
- Banner / hero placement proposal
@@ -23,6 +24,7 @@ The hackathon banner is placed as a full-width hero image at the top of the page
2324
The sidebar becomes a compact summary card with key information and actions.
2425

2526
Design Goals
27+
2628
- Simpler UI and improved visual hierarchy
2729
- Clear primary actions (Join, Submit, View Submission)
2830
- Consistent spacing and typography

app/(landing)/organizations/[id]/hackathons/[hackathonId]/participants/page.tsx

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ const ParticipantsPage: React.FC = () => {
5353
const hackathonId = params.hackathonId as string;
5454

5555
const [view, setView] = useState<'table' | 'grid'>('table');
56+
const [pageSize, setPageSize] = useState(PAGE_SIZE);
5657
const [filters, setFilters] = useState<FilterState>({
5758
search: '',
5859
status: 'all',
@@ -63,9 +64,9 @@ const ParticipantsPage: React.FC = () => {
6364
() => ({
6465
organizationId,
6566
autoFetch: false,
66-
pageSize: PAGE_SIZE, // Grid looks better with multiples of 3/4
67+
pageSize, // Use dynamic page size
6768
}),
68-
[organizationId]
69+
[organizationId, pageSize]
6970
);
7071

7172
const {
@@ -110,7 +111,7 @@ const ParticipantsPage: React.FC = () => {
110111
fetchParticipants(
111112
actualHackathonId,
112113
1,
113-
PAGE_SIZE,
114+
pageSize,
114115
mapFiltersToParams(filters, debouncedSearch)
115116
);
116117
}
@@ -120,6 +121,7 @@ const ParticipantsPage: React.FC = () => {
120121
debouncedSearch,
121122
filters.status,
122123
filters.type,
124+
pageSize,
123125
]);
124126

125127
// Statistics
@@ -161,12 +163,12 @@ const ParticipantsPage: React.FC = () => {
161163
}, [organizationId, actualHackathonId]);
162164

163165
// Handlers
164-
const handlePageChange = (page: number) => {
166+
const handlePageChange = (page: number, limit?: number) => {
165167
if (actualHackathonId) {
166168
fetchParticipants(
167169
actualHackathonId,
168170
page,
169-
PAGE_SIZE,
171+
limit ?? pageSize,
170172
mapFiltersToParams(filters, debouncedSearch)
171173
);
172174
}
@@ -220,7 +222,7 @@ const ParticipantsPage: React.FC = () => {
220222
fetchParticipants(
221223
actualHackathonId,
222224
participantsPagination.currentPage,
223-
PAGE_SIZE,
225+
pageSize,
224226
mapFiltersToParams(filters, debouncedSearch)
225227
);
226228
}
@@ -241,16 +243,17 @@ const ParticipantsPage: React.FC = () => {
241243
},
242244
onPaginationChange: updater => {
243245
if (typeof updater === 'function') {
244-
const newState = (
245-
updater as (old: { pageIndex: number; pageSize: number }) => {
246-
pageIndex: number;
247-
pageSize: number;
248-
}
249-
)({
246+
const newState = updater({
250247
pageIndex: participantsPagination.currentPage - 1,
251248
pageSize: participantsPagination.itemsPerPage,
252249
});
253-
handlePageChange(newState.pageIndex + 1);
250+
251+
if (newState.pageSize !== participantsPagination.itemsPerPage) {
252+
setPageSize(newState.pageSize);
253+
handlePageChange(1, newState.pageSize);
254+
} else {
255+
handlePageChange(newState.pageIndex + 1);
256+
}
254257
}
255258
},
256259
});

app/dashboard/page copy.tsx

Lines changed: 0 additions & 225 deletions
This file was deleted.

app/dashboard/page.tsx

Lines changed: 0 additions & 6 deletions
This file was deleted.

app/me/layout.tsx

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,14 @@ interface MeLayoutProfile {
2323
image?: string;
2424
joinedHackathons?: ProfileItemWithId[];
2525
hackathonSubmissionsAsParticipant?: ProfileItemWithId[];
26+
projects?: ProfileItemWithId[];
2627
};
2728
image?: string;
2829
hackathonSubmissionsAsParticipant?: ProfileItemWithId[];
30+
projects?: ProfileItemWithId[];
31+
stats?: {
32+
projectsCreated?: number;
33+
};
2934
}
3035

3136
const getId = (item: ProfileItemWithId): string | undefined =>
@@ -69,6 +74,25 @@ const MeLayout = ({ children }: MeLayoutProps): React.ReactElement => {
6974
}).length;
7075
}, [typedProfile]);
7176

77+
const projectsCount = useMemo(() => {
78+
if (!typedProfile) return 0;
79+
// stats.projectsCreated is often the most direct count
80+
if (typeof typedProfile.stats?.projectsCreated === 'number') {
81+
return typedProfile.stats.projectsCreated;
82+
}
83+
// Fallback to array lengths
84+
const fromUser = typedProfile.user?.projects ?? [];
85+
const fromProfile = typedProfile.projects ?? [];
86+
const merged = [...fromUser, ...fromProfile];
87+
const seen = new Set<string>();
88+
return merged.filter(p => {
89+
const id = getId(p);
90+
if (!id || seen.has(id)) return false;
91+
seen.add(id);
92+
return true;
93+
}).length;
94+
}, [typedProfile]);
95+
7296
// Only show full-screen spinner on first load, not on background refetches
7397
if (isLoading && !hasLoadedOnce.current) {
7498
return (
@@ -92,6 +116,7 @@ const MeLayout = ({ children }: MeLayoutProps): React.ReactElement => {
92116
counts={{
93117
participating: hackathonsCount,
94118
submissions: submissionsCount,
119+
projects: projectsCount,
95120
}}
96121
variant='inset'
97122
/>

0 commit comments

Comments
 (0)