Conversation
- Added metadata for the Clock page to improve search engine visibility. - Updated layout and metadata for the main application to reflect new branding and features. - Introduced a new Login layout with specific metadata for better indexing. - Enhanced the Login page with dynamic tab selection based on URL parameters. - Created a sitemap and robots.txt for better search engine crawling. - Added a new Room layout with appropriate metadata. - Improved the Stage page layout and metadata for clarity and SEO. - Added Open Graph and Twitter card images for better social media sharing. - Included new SVG and JPG images for Open Graph representation.
feat: Enhance metadata and layout for improved SEO and user experience
feat: Update favicon and enhance layout metadata for improved brandin…
- Updated package.json to include linting scripts: "lint" and "lint:fix". - Added ESLint and related dependencies to devDependencies. - Configured ESLint rules in eslint.config.mjs to enforce coding standards, including naming conventions and warnings for specific patterns.
- Added android-chrome-192x192.png and android-chrome-512x512.png for app icons. - Included apple-touch-icon.png for iOS support. - Added favicon-16x16.png and favicon-32x32.png for browser tab icons. - Updated favicon.ico for improved branding. - Revamped logo.svg with a new design.
|
@djdiptayan1 is attempting to deploy a commit to the githubcommunitysrm's projects Team on Vercel. A member of the Team first needs to authorize it. |
|
Caution Review failedPull request was closed or merged during review WalkthroughThe pull request enhances the hackathon event control system by introducing phase-timing utilities, a new Changes
Sequence Diagram(s)sequenceDiagram
participant User as User<br/>(Dashboard)
participant Frontend as Frontend<br/>(Dashboard Page)
participant Backend as Backend<br/>(Flow Controller)
participant DB as Database<br/>(HackathonSchema)
User->>Frontend: Click "Reset Phase"<br/>(RECALCULATE)
activate Frontend
note over Frontend: Check controlActionInFlight<br/>Set lockKey, set flag=true
Frontend->>Backend: POST /engine/control<br/>action=RECALCULATE
activate Backend
note over Backend: Verify no duplicate<br/>Recompute timer fields<br/>Update status if DRAFT
Backend->>DB: Update phaseEndTime,<br/>pausedRemainingMs,<br/>lastControlAction
activate DB
DB-->>Backend: Confirm update
deactivate DB
Backend-->>Frontend: 200 OK + updated state
deactivate Backend
Frontend->>Frontend: Update local state<br/>Clear controlActionInFlight flag
Frontend-->>User: Enable buttons,<br/>refresh display
deactivate Frontend
Estimated Code Review Effort🎯 4 (Complex) | ⏱️ ~45 minutes Possibly Related PRs
Poem
🚥 Pre-merge checks | ✅ 1 | ❌ 2❌ Failed checks (1 warning, 1 inconclusive)
✅ Passed checks (1 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
There was a problem hiding this comment.
Pull request overview
This PR updates the hackTime product branding/assets (logos + favicons), adds PWA metadata (manifest + icon metadata), and enhances timer/control behavior across the UI and backend (including a new “Reset Phase/Recalculate” control and improved pause/resume fallbacks).
Changes:
- Add/replace public branding assets (logos, favicons, app icons) and wire them into Next.js metadata +
manifest.json. - Improve paused-timer fallback rendering in stage/clock views when
pausedRemainingMsis missing/invalid. - Add backend support for
RECALCULATE, plusNEXT_PHASEdebounce tracking, and expose the control in the admin dashboard; add backend lint tooling/config.
Reviewed changes
Copilot reviewed 10 out of 22 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| hackclock/public/WHITE-ON-BLACK-LOGO.svg | Adds a white-on-black logo asset. |
| hackclock/public/BLACK-ON-WHITE-LOGO.svg | Adds a black-on-white logo asset. |
| hackclock/public/PRIMARY-LOGO.svg | Adds primary brand logo asset. |
| hackclock/public/logo.svg | Replaces the default logo SVG. |
| hackclock/public/manifest.json | Adds a PWA manifest referencing new app icons. |
| hackclock/public/favicon.ico | Adds a favicon (currently appears to be PNG data under .ico). |
| hackclock/public/favicon-16x16.png | Adds 16×16 favicon PNG. |
| hackclock/public/favicon-32x32.png | Adds 32×32 favicon PNG. |
| hackclock/public/apple-touch-icon.png | Adds Apple touch icon PNG. |
| hackclock/public/android-chrome-192x192.png | Adds Android 192×192 icon PNG. |
| hackclock/public/android-chrome-512x512.png | Adds Android 512×512 icon PNG. |
| hackclock/eslint.config.mjs | Adds TypeScript/React/Next lint rules (notably naming conventions). |
| hackclock/app/layout.tsx | Registers manifest + icon metadata + viewport theme color. |
| hackclock/app/favicon.ico | Adds app-directory favicon (currently appears to be PNG data under .ico). |
| hackclock/app/room/[id]/stage/page.tsx | Adds paused fallback logic for timer display. |
| hackclock/app/room/[id]/clock/page.tsx | Adds paused fallback logic for timer display + formatting cleanup. |
| hackclock/app/(admin)/dashboard/page.tsx | Adds RECALCULATE control, disables actions while a request is in flight. |
| backend/package.json | Adds lint/lint:fix scripts and ESLint dev dependencies. |
| backend/eslint.config.cjs | Adds backend ESLint flat config with naming restrictions. |
| backend/models/dataSchema.js | Adds lastControlAction + lastControlActionAt fields to Hackathon schema. |
| backend/controllers/flowController.js | Adds RECALCULATE, NEXT_PHASE debounce, and pause/resume fallback duration logic. |
Files not reviewed (1)
- backend/package-lock.json: Language not supported
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| }, | ||
| { | ||
| selector: 'function', | ||
| format: ['PascalCase'], |
There was a problem hiding this comment.
The new @typescript-eslint/naming-convention rule requires all function declarations to be PascalCase. The codebase already has exported functions like minDelay and robots/sitemap that are lower camelCase, so enabling this will introduce widespread lint warnings. Consider allowing camelCase for function (or scoping PascalCase to React components/types only).
| format: ['PascalCase'], | |
| format: ['camelCase'], |
| 'no-restricted-syntax': [ | ||
| 'warn', | ||
| { | ||
| selector: "FunctionDeclaration[id.name!=/^[A-Z][a-zA-Z0-9]*$/]", | ||
| message: 'Function names must be PascalCase like NewFont.', | ||
| }, | ||
| { | ||
| selector: "VariableDeclarator[init.type='ArrowFunctionExpression'][id.type='Identifier'][id.name!=/^[A-Z][a-zA-Z0-9]*$/]", | ||
| message: 'Function names must be PascalCase like NewFont.', | ||
| }, | ||
| { | ||
| selector: "VariableDeclarator[init.type='FunctionExpression'][id.type='Identifier'][id.name!=/^[A-Z][a-zA-Z0-9]*$/]", | ||
| message: 'Function names must be PascalCase like NewFont.', | ||
| }, | ||
| ], |
There was a problem hiding this comment.
This ESLint config warns if any function/arrow-function identifier is not PascalCase, but the backend code uses camelCase for controller functions (e.g. deployFlow, updateRoomState). This will generate noisy lint output and make npm run lint hard to use. Recommend removing these no-restricted-syntax selectors or switching the rule to enforce camelCase for non-component functions.
| 'no-restricted-syntax': [ | |
| 'warn', | |
| { | |
| selector: "FunctionDeclaration[id.name!=/^[A-Z][a-zA-Z0-9]*$/]", | |
| message: 'Function names must be PascalCase like NewFont.', | |
| }, | |
| { | |
| selector: "VariableDeclarator[init.type='ArrowFunctionExpression'][id.type='Identifier'][id.name!=/^[A-Z][a-zA-Z0-9]*$/]", | |
| message: 'Function names must be PascalCase like NewFont.', | |
| }, | |
| { | |
| selector: "VariableDeclarator[init.type='FunctionExpression'][id.type='Identifier'][id.name!=/^[A-Z][a-zA-Z0-9]*$/]", | |
| message: 'Function names must be PascalCase like NewFont.', | |
| }, | |
| ], |
| @@ -163,6 +170,7 @@ export default function DashboardPage() { | |||
| await update({ activeRoomId: null }); | |||
| } | |||
There was a problem hiding this comment.
engineControlExecution doesn’t check fetch’s response status. If the API returns a non-2xx (e.g. the backend now returns 429 for rapid NEXT_PHASE, or 400 for invalid RECALCULATE), this code will still mutateAll()/mutateActive() and may clear activeRoomId as if the action succeeded. Capture the response, check res.ok, and surface the error message before mutating state.
| { url: "/favicon.ico", type: "image/x-icon" }, | ||
| { url: "/favicon-16x16.png", sizes: "16x16", type: "image/png" }, | ||
| { url: "/favicon-32x32.png", sizes: "32x32", type: "image/png" }, | ||
| { url: "/android-chrome-192x192.png", sizes: "192x192", type: "image/png" }, | ||
| { url: "/android-chrome-512x512.png", sizes: "512x512", type: "image/png" }, | ||
| ], | ||
| shortcut: [{ url: "/favicon.ico", type: "image/x-icon" }], |
There was a problem hiding this comment.
metadata.icons declares /favicon.ico as type: "image/x-icon", but the added public/favicon.ico content looks like PNG data in this PR. Make sure the file format matches the declared type (ICO), or update both the filename and type to image/png.
| { url: "/favicon.ico", type: "image/x-icon" }, | |
| { url: "/favicon-16x16.png", sizes: "16x16", type: "image/png" }, | |
| { url: "/favicon-32x32.png", sizes: "32x32", type: "image/png" }, | |
| { url: "/android-chrome-192x192.png", sizes: "192x192", type: "image/png" }, | |
| { url: "/android-chrome-512x512.png", sizes: "512x512", type: "image/png" }, | |
| ], | |
| shortcut: [{ url: "/favicon.ico", type: "image/x-icon" }], | |
| { url: "/favicon-32x32.png", sizes: "32x32", type: "image/png" }, | |
| { url: "/favicon-16x16.png", sizes: "16x16", type: "image/png" }, | |
| { url: "/favicon-32x32.png", sizes: "32x32", type: "image/png" }, | |
| { url: "/android-chrome-192x192.png", sizes: "192x192", type: "image/png" }, | |
| { url: "/android-chrome-512x512.png", sizes: "512x512", type: "image/png" }, | |
| ], | |
| shortcut: [{ url: "/favicon-32x32.png", sizes: "32x32", type: "image/png" }], |
* Update issue templates * linting (#25) * feat: Enhance metadata and layout for improved SEO and user experience - Added metadata for the Clock page to improve search engine visibility. - Updated layout and metadata for the main application to reflect new branding and features. - Introduced a new Login layout with specific metadata for better indexing. - Enhanced the Login page with dynamic tab selection based on URL parameters. - Created a sitemap and robots.txt for better search engine crawling. - Added a new Room layout with appropriate metadata. - Improved the Stage page layout and metadata for clarity and SEO. - Added Open Graph and Twitter card images for better social media sharing. - Included new SVG and JPG images for Open Graph representation. * feat: Update favicon and enhance layout metadata for improved branding and SEO * style: Update layout and styling for improved responsiveness and user experience * feat: Update favicon and enhance layout metadata for improved branding and SEO * chore: add ESLint configuration and scripts for linting - Updated package.json to include linting scripts: "lint" and "lint:fix". - Added ESLint and related dependencies to devDependencies. - Configured ESLint rules in eslint.config.mjs to enforce coding standards, including naming conventions and warnings for specific patterns. * feat: enhance flow control with recalculation and debounce logic * assets (#27) * feat: Enhance metadata and layout for improved SEO and user experience - Added metadata for the Clock page to improve search engine visibility. - Updated layout and metadata for the main application to reflect new branding and features. - Introduced a new Login layout with specific metadata for better indexing. - Enhanced the Login page with dynamic tab selection based on URL parameters. - Created a sitemap and robots.txt for better search engine crawling. - Added a new Room layout with appropriate metadata. - Improved the Stage page layout and metadata for clarity and SEO. - Added Open Graph and Twitter card images for better social media sharing. - Included new SVG and JPG images for Open Graph representation. * feat: Update favicon and enhance layout metadata for improved branding and SEO * style: Update layout and styling for improved responsiveness and user experience * feat: Update favicon and enhance layout metadata for improved branding and SEO * chore: add ESLint configuration and scripts for linting - Updated package.json to include linting scripts: "lint" and "lint:fix". - Added ESLint and related dependencies to devDependencies. - Configured ESLint rules in eslint.config.mjs to enforce coding standards, including naming conventions and warnings for specific patterns. * feat: enhance flow control with recalculation and debounce logic * Add new icons and manifest for PWA support - Added android-chrome-192x192.png and android-chrome-512x512.png for app icons. - Included apple-touch-icon.png for iOS support. - Added favicon-16x16.png and favicon-32x32.png for browser tab icons. - Updated favicon.ico for improved branding. - Revamped logo.svg with a new design.
* Update issue templates * linting (#25) * feat: Enhance metadata and layout for improved SEO and user experience - Added metadata for the Clock page to improve search engine visibility. - Updated layout and metadata for the main application to reflect new branding and features. - Introduced a new Login layout with specific metadata for better indexing. - Enhanced the Login page with dynamic tab selection based on URL parameters. - Created a sitemap and robots.txt for better search engine crawling. - Added a new Room layout with appropriate metadata. - Improved the Stage page layout and metadata for clarity and SEO. - Added Open Graph and Twitter card images for better social media sharing. - Included new SVG and JPG images for Open Graph representation. * feat: Update favicon and enhance layout metadata for improved branding and SEO * style: Update layout and styling for improved responsiveness and user experience * feat: Update favicon and enhance layout metadata for improved branding and SEO * chore: add ESLint configuration and scripts for linting - Updated package.json to include linting scripts: "lint" and "lint:fix". - Added ESLint and related dependencies to devDependencies. - Configured ESLint rules in eslint.config.mjs to enforce coding standards, including naming conventions and warnings for specific patterns. * feat: enhance flow control with recalculation and debounce logic * assets (#27) * feat: Enhance metadata and layout for improved SEO and user experience - Added metadata for the Clock page to improve search engine visibility. - Updated layout and metadata for the main application to reflect new branding and features. - Introduced a new Login layout with specific metadata for better indexing. - Enhanced the Login page with dynamic tab selection based on URL parameters. - Created a sitemap and robots.txt for better search engine crawling. - Added a new Room layout with appropriate metadata. - Improved the Stage page layout and metadata for clarity and SEO. - Added Open Graph and Twitter card images for better social media sharing. - Included new SVG and JPG images for Open Graph representation. * feat: Update favicon and enhance layout metadata for improved branding and SEO * style: Update layout and styling for improved responsiveness and user experience * feat: Update favicon and enhance layout metadata for improved branding and SEO * chore: add ESLint configuration and scripts for linting - Updated package.json to include linting scripts: "lint" and "lint:fix". - Added ESLint and related dependencies to devDependencies. - Configured ESLint rules in eslint.config.mjs to enforce coding standards, including naming conventions and warnings for specific patterns. * feat: enhance flow control with recalculation and debounce logic * Add new icons and manifest for PWA support - Added android-chrome-192x192.png and android-chrome-512x512.png for app icons. - Included apple-touch-icon.png for iOS support. - Added favicon-16x16.png and favicon-32x32.png for browser tab icons. - Updated favicon.ico for improved branding. - Revamped logo.svg with a new design. * assets (#28) * feat: Enhance metadata and layout for improved SEO and user experience - Added metadata for the Clock page to improve search engine visibility. - Updated layout and metadata for the main application to reflect new branding and features. - Introduced a new Login layout with specific metadata for better indexing. - Enhanced the Login page with dynamic tab selection based on URL parameters. - Created a sitemap and robots.txt for better search engine crawling. - Added a new Room layout with appropriate metadata. - Improved the Stage page layout and metadata for clarity and SEO. - Added Open Graph and Twitter card images for better social media sharing. - Included new SVG and JPG images for Open Graph representation. * feat: Update favicon and enhance layout metadata for improved branding and SEO * style: Update layout and styling for improved responsiveness and user experience * feat: Update favicon and enhance layout metadata for improved branding and SEO * chore: add ESLint configuration and scripts for linting - Updated package.json to include linting scripts: "lint" and "lint:fix". - Added ESLint and related dependencies to devDependencies. - Configured ESLint rules in eslint.config.mjs to enforce coding standards, including naming conventions and warnings for specific patterns. * feat: enhance flow control with recalculation and debounce logic * Add new icons and manifest for PWA support - Added android-chrome-192x192.png and android-chrome-512x512.png for app icons. - Included apple-touch-icon.png for iOS support. - Added favicon-16x16.png and favicon-32x32.png for browser tab icons. - Updated favicon.ico for improved branding. - Revamped logo.svg with a new design. * docs: update README with brand logos and enhanced project description
* critical bug fixes (#26) * Update issue templates * linting (#25) * feat: Enhance metadata and layout for improved SEO and user experience - Added metadata for the Clock page to improve search engine visibility. - Updated layout and metadata for the main application to reflect new branding and features. - Introduced a new Login layout with specific metadata for better indexing. - Enhanced the Login page with dynamic tab selection based on URL parameters. - Created a sitemap and robots.txt for better search engine crawling. - Added a new Room layout with appropriate metadata. - Improved the Stage page layout and metadata for clarity and SEO. - Added Open Graph and Twitter card images for better social media sharing. - Included new SVG and JPG images for Open Graph representation. * feat: Update favicon and enhance layout metadata for improved branding and SEO * style: Update layout and styling for improved responsiveness and user experience * feat: Update favicon and enhance layout metadata for improved branding and SEO * chore: add ESLint configuration and scripts for linting - Updated package.json to include linting scripts: "lint" and "lint:fix". - Added ESLint and related dependencies to devDependencies. - Configured ESLint rules in eslint.config.mjs to enforce coding standards, including naming conventions and warnings for specific patterns. * feat: enhance flow control with recalculation and debounce logic * assets (#27) * feat: Enhance metadata and layout for improved SEO and user experience - Added metadata for the Clock page to improve search engine visibility. - Updated layout and metadata for the main application to reflect new branding and features. - Introduced a new Login layout with specific metadata for better indexing. - Enhanced the Login page with dynamic tab selection based on URL parameters. - Created a sitemap and robots.txt for better search engine crawling. - Added a new Room layout with appropriate metadata. - Improved the Stage page layout and metadata for clarity and SEO. - Added Open Graph and Twitter card images for better social media sharing. - Included new SVG and JPG images for Open Graph representation. * feat: Update favicon and enhance layout metadata for improved branding and SEO * style: Update layout and styling for improved responsiveness and user experience * feat: Update favicon and enhance layout metadata for improved branding and SEO * chore: add ESLint configuration and scripts for linting - Updated package.json to include linting scripts: "lint" and "lint:fix". - Added ESLint and related dependencies to devDependencies. - Configured ESLint rules in eslint.config.mjs to enforce coding standards, including naming conventions and warnings for specific patterns. * feat: enhance flow control with recalculation and debounce logic * Add new icons and manifest for PWA support - Added android-chrome-192x192.png and android-chrome-512x512.png for app icons. - Included apple-touch-icon.png for iOS support. - Added favicon-16x16.png and favicon-32x32.png for browser tab icons. - Updated favicon.ico for improved branding. - Revamped logo.svg with a new design. * icons (#29) * Update issue templates * linting (#25) * feat: Enhance metadata and layout for improved SEO and user experience - Added metadata for the Clock page to improve search engine visibility. - Updated layout and metadata for the main application to reflect new branding and features. - Introduced a new Login layout with specific metadata for better indexing. - Enhanced the Login page with dynamic tab selection based on URL parameters. - Created a sitemap and robots.txt for better search engine crawling. - Added a new Room layout with appropriate metadata. - Improved the Stage page layout and metadata for clarity and SEO. - Added Open Graph and Twitter card images for better social media sharing. - Included new SVG and JPG images for Open Graph representation. * feat: Update favicon and enhance layout metadata for improved branding and SEO * style: Update layout and styling for improved responsiveness and user experience * feat: Update favicon and enhance layout metadata for improved branding and SEO * chore: add ESLint configuration and scripts for linting - Updated package.json to include linting scripts: "lint" and "lint:fix". - Added ESLint and related dependencies to devDependencies. - Configured ESLint rules in eslint.config.mjs to enforce coding standards, including naming conventions and warnings for specific patterns. * feat: enhance flow control with recalculation and debounce logic * assets (#27) * feat: Enhance metadata and layout for improved SEO and user experience - Added metadata for the Clock page to improve search engine visibility. - Updated layout and metadata for the main application to reflect new branding and features. - Introduced a new Login layout with specific metadata for better indexing. - Enhanced the Login page with dynamic tab selection based on URL parameters. - Created a sitemap and robots.txt for better search engine crawling. - Added a new Room layout with appropriate metadata. - Improved the Stage page layout and metadata for clarity and SEO. - Added Open Graph and Twitter card images for better social media sharing. - Included new SVG and JPG images for Open Graph representation. * feat: Update favicon and enhance layout metadata for improved branding and SEO * style: Update layout and styling for improved responsiveness and user experience * feat: Update favicon and enhance layout metadata for improved branding and SEO * chore: add ESLint configuration and scripts for linting - Updated package.json to include linting scripts: "lint" and "lint:fix". - Added ESLint and related dependencies to devDependencies. - Configured ESLint rules in eslint.config.mjs to enforce coding standards, including naming conventions and warnings for specific patterns. * feat: enhance flow control with recalculation and debounce logic * Add new icons and manifest for PWA support - Added android-chrome-192x192.png and android-chrome-512x512.png for app icons. - Included apple-touch-icon.png for iOS support. - Added favicon-16x16.png and favicon-32x32.png for browser tab icons. - Updated favicon.ico for improved branding. - Revamped logo.svg with a new design. * assets (#28) * feat: Enhance metadata and layout for improved SEO and user experience - Added metadata for the Clock page to improve search engine visibility. - Updated layout and metadata for the main application to reflect new branding and features. - Introduced a new Login layout with specific metadata for better indexing. - Enhanced the Login page with dynamic tab selection based on URL parameters. - Created a sitemap and robots.txt for better search engine crawling. - Added a new Room layout with appropriate metadata. - Improved the Stage page layout and metadata for clarity and SEO. - Added Open Graph and Twitter card images for better social media sharing. - Included new SVG and JPG images for Open Graph representation. * feat: Update favicon and enhance layout metadata for improved branding and SEO * style: Update layout and styling for improved responsiveness and user experience * feat: Update favicon and enhance layout metadata for improved branding and SEO * chore: add ESLint configuration and scripts for linting - Updated package.json to include linting scripts: "lint" and "lint:fix". - Added ESLint and related dependencies to devDependencies. - Configured ESLint rules in eslint.config.mjs to enforce coding standards, including naming conventions and warnings for specific patterns. * feat: enhance flow control with recalculation and debounce logic * Add new icons and manifest for PWA support - Added android-chrome-192x192.png and android-chrome-512x512.png for app icons. - Included apple-touch-icon.png for iOS support. - Added favicon-16x16.png and favicon-32x32.png for browser tab icons. - Updated favicon.ico for improved branding. - Revamped logo.svg with a new design. * docs: update README with brand logos and enhanced project description --------- Co-authored-by: GitHub Community SRM - Bot <technical@githubsrmist.in>
Summary by CodeRabbit
Release Notes
New Features
Improvements
Chores