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.
|
@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. |
WalkthroughAdds ESLint configs and scripts; extends backend flow control with debounce, RECALCULATE action, and timer recalculation; persists lastControlAction/lastControlActionAt in schema; updates admin UI to lock control actions and add a "Reset Phase" (RECALCULATE) flow; refines paused-timer fallbacks in room clock/stage pages. Changes
Sequence Diagram(s)sequenceDiagram
participant AdminUI as "Admin UI\n(Dashboard)"
participant API as "Server API\n(/engine/control)"
participant Controller as "flowController"
participant DB as "Database\n(Hackathon record)"
participant RoomUI as "Room UI\n(clock/stage)"
AdminUI->>API: POST engine control (action e.g. RECALCULATE/PAUSE/NEXT_PHASE)
API->>Controller: forward action + roomId
Controller->>DB: read room record
alt rapid duplicate NEXT_PHASE
Controller-->>API: 429 (ignored - debounce)
else valid control action
Controller->>Controller: compute new timers (phaseEndTime / pausedRemainingMs) using current phase duration
Controller->>DB: update room (status, phaseEndTime, pausedRemainingMs, lastControlAction, lastControlActionAt)
Controller-->>API: 200 OK (action accepted)
API-->>AdminUI: response
Controller->>RoomUI: (via broadcast/socket) emit updated room state
RoomUI-->>RoomUI: update timers / UI using paused fallback logic
end
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.
Actionable comments posted: 2
🧹 Nitpick comments (1)
backend/eslint.config.cjs (1)
20-20: Consider addingvarsIgnorePatternfor consistency.The
argsIgnorePattern: '^_'ignores unused parameters prefixed with_, but unused variables with the same prefix will still trigger warnings. For consistent behavior:Proposed fix
- 'no-unused-vars': ['warn', { argsIgnorePattern: '^_' }], + 'no-unused-vars': ['warn', { argsIgnorePattern: '^_', varsIgnorePattern: '^_' }],🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@backend/eslint.config.cjs` at line 20, The 'no-unused-vars' rule currently sets argsIgnorePattern: '^_' but doesn't ignore standalone variables with a leading underscore; update the 'no-unused-vars' rule configuration (the entry with 'no-unused-vars': ['warn', { argsIgnorePattern: '^_' }]) to also include varsIgnorePattern: '^_' so variables prefixed with '_' are treated consistently with parameters and won't emit warnings.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@backend/eslint.config.cjs`:
- Around line 21-29: The eslint config currently conflicts: the camelcase rule
enforces camelCase while the no-restricted-syntax rule enforces PascalCase for
functions (causing warnings for existing functions like deployFlow,
buildArchivePayload, syncArchiveByRoomId, getRoomUsers, emitRoomUsers). Fix by
removing or changing the no-restricted-syntax entry that mandates PascalCase for
functions (the rule targeting
FunctionDeclaration/FunctionExpression/ArrowFunctionExpression names); instead,
restrict PascalCase only to class/constructor names or delete the PascalCase
function check so camelcase remains authoritative. Ensure the change references
the rules named camelcase and no-restricted-syntax and that constructor/class
naming remains unaffected.
In `@hackclock/eslint.config.mjs`:
- Around line 23-26: The rule object with selector: 'function' and format:
['PascalCase'] is too strict; change it to allow camelCase as well or
remove/restrict it. Update the rule for selector 'function' to use format:
['PascalCase', 'camelCase'] (or delete the selector entry or scope it to React
components only) so normal functions like minDelay are not flagged; ensure you
edit the rule where selector: 'function' and format: ['PascalCase'] is defined.
---
Nitpick comments:
In `@backend/eslint.config.cjs`:
- Line 20: The 'no-unused-vars' rule currently sets argsIgnorePattern: '^_' but
doesn't ignore standalone variables with a leading underscore; update the
'no-unused-vars' rule configuration (the entry with 'no-unused-vars': ['warn', {
argsIgnorePattern: '^_' }]) to also include varsIgnorePattern: '^_' so variables
prefixed with '_' are treated consistently with parameters and won't emit
warnings.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 0c556e73-c17b-400d-8cf5-fc3ca46cbd99
⛔ Files ignored due to path filters (1)
backend/package-lock.jsonis excluded by!**/package-lock.json
📒 Files selected for processing (3)
backend/eslint.config.cjsbackend/package.jsonhackclock/eslint.config.mjs
| camelcase: [ | ||
| 'warn', | ||
| { | ||
| properties: 'never', | ||
| ignoreDestructuring: true, | ||
| ignoreImports: true, | ||
| allow: ['^_$'], | ||
| }, | ||
| ], |
There was a problem hiding this comment.
Conflicting rules: camelcase vs no-restricted-syntax for functions.
There's a direct conflict between these rules:
camelcase(lines 21-29) enforces camelCase for identifiersno-restricted-syntax(lines 39-53) requires PascalCase for all functions
These rules will fight each other on function names. Additionally, PascalCase for regular functions is unconventional in JavaScript—it's typically reserved for classes and constructor functions.
From the context snippets, all existing controller functions (deployFlow, buildArchivePayload, syncArchiveByRoomId, getRoomUsers, emitRoomUsers) use camelCase and will trigger warnings.
Proposed fix: Remove PascalCase function requirement
- '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.',
- },
- ],Also applies to: 39-53
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@backend/eslint.config.cjs` around lines 21 - 29, The eslint config currently
conflicts: the camelcase rule enforces camelCase while the no-restricted-syntax
rule enforces PascalCase for functions (causing warnings for existing functions
like deployFlow, buildArchivePayload, syncArchiveByRoomId, getRoomUsers,
emitRoomUsers). Fix by removing or changing the no-restricted-syntax entry that
mandates PascalCase for functions (the rule targeting
FunctionDeclaration/FunctionExpression/ArrowFunctionExpression names); instead,
restrict PascalCase only to class/constructor names or delete the PascalCase
function check so camelcase remains authoritative. Ensure the change references
the rules named camelcase and no-restricted-syntax and that constructor/class
naming remains unaffected.
| { | ||
| selector: 'function', | ||
| format: ['PascalCase'], | ||
| }, |
There was a problem hiding this comment.
PascalCase for all functions is unconventional and will flag existing code.
The selector 'function' with format: ['PascalCase'] requires ALL functions to use PascalCase. Standard JavaScript/TypeScript convention is camelCase for regular functions and PascalCase only for React components and classes.
This will trigger warnings on existing utility functions like minDelay in hackclock/lib/min-delay.ts and likely many others. Consider either:
- Removing this rule and relying on natural convention
- Restricting it to React component files only
- Adding camelCase as an allowed format
Proposed fix to allow both conventions
{
selector: 'function',
- format: ['PascalCase'],
+ format: ['camelCase', 'PascalCase'],
},📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| { | |
| selector: 'function', | |
| format: ['PascalCase'], | |
| }, | |
| { | |
| selector: 'function', | |
| format: ['camelCase', 'PascalCase'], | |
| }, |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@hackclock/eslint.config.mjs` around lines 23 - 26, The rule object with
selector: 'function' and format: ['PascalCase'] is too strict; change it to
allow camelCase as well or remove/restrict it. Update the rule for selector
'function' to use format: ['PascalCase', 'camelCase'] (or delete the selector
entry or scope it to React components only) so normal functions like minDelay
are not flagged; ensure you edit the rule where selector: 'function' and format:
['PascalCase'] is defined.
There was a problem hiding this comment.
Pull request overview
Adds/adjusts linting rules for the Next.js frontend and introduces ESLint tooling/configuration for the backend.
Changes:
- Added additional ESLint rules to
hackclock(TypeScript naming conventions and a few React/Next warnings). - Added ESLint dependencies and
lint/lint:fixscripts to the backend. - Introduced a new flat ESLint config for the backend (
eslint.config.cjs).
Reviewed changes
Copilot reviewed 3 out of 4 changed files in this pull request and generated 3 comments.
| File | Description |
|---|---|
| hackclock/eslint.config.mjs | Adds extra lint rules (TypeScript naming convention + some React/Next warnings). |
| backend/package.json | Adds backend lint scripts and ESLint-related devDependencies. |
| backend/package-lock.json | Locks newly added ESLint dependency tree. |
| backend/eslint.config.cjs | Adds backend ESLint flat config and naming-related rules. |
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 naming-convention rule enforces PascalCase for all functions. This will immediately warn on existing camelCase utility functions in this app (e.g., hackclock/lib/min-delay.ts:1 minDelay). Consider allowing both camelCase and PascalCase for selector: 'function', or narrowing the rule so only React components are expected to be PascalCase.
| format: ['PascalCase'], | |
| format: ['camelCase', 'PascalCase'], |
| '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.
id-match currently allows both camelCase and PascalCase declarations, but later no-restricted-syntax enforces PascalCase for function identifiers. This combination is contradictory and will produce widespread warnings across the backend (most functions are currently camelCase). Align these rules (e.g., enforce camelCase, or allow both) and remove the redundant rule to avoid noisy lint output.
| '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.', | |
| }, | |
| ], |
| 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.
These selectors enforce PascalCase for function declarations/expressions, but the backend codebase primarily uses camelCase (e.g., backend/server.js:26 getRoomUsers, backend/lib/connectDB.js:18 connectDB). This will make npm run lint very noisy. Consider switching the regex to camelCase (or allowing both), and update the message ("NewFont") to something backend-relevant.
| 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.', | |
| selector: "FunctionDeclaration[id.name!=/^_?[a-z][a-zA-Z0-9]*$/]", | |
| message: 'Function names must be camelCase like connectDB.', | |
| }, | |
| { | |
| selector: "VariableDeclarator[init.type='ArrowFunctionExpression'][id.type='Identifier'][id.name!=/^_?[a-z][a-zA-Z0-9]*$/]", | |
| message: 'Function names must be camelCase like connectDB.', | |
| }, | |
| { | |
| selector: "VariableDeclarator[init.type='FunctionExpression'][id.type='Identifier'][id.name!=/^_?[a-z][a-zA-Z0-9]*$/]", | |
| message: 'Function names must be camelCase like connectDB.', |
There was a problem hiding this comment.
🧹 Nitpick comments (2)
hackclock/app/(admin)/dashboard/page.tsx (1)
156-173: Remove unusedlockKeyvariable.The
lockKeyis constructed but never used — the check on line 159 only tests truthiness ofcontrolActionInFlight, makinglockKeydead code. Either remove it or use it for more granular locking if that was the intent.🧹 Proposed fix
const engineControlExecution = async (roomId: string, action: 'PAUSE' | 'RESUME' | 'NEXT_PHASE' | 'STOP' | 'RECALCULATE') => { if (!userEmail) return; - const lockKey = `${roomId}:${action}`; if (controlActionInFlight) return; - setControlActionInFlight(lockKey); + setControlActionInFlight(action); try {🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@hackclock/app/`(admin)/dashboard/page.tsx around lines 156 - 173, The variable lockKey created in engineControlExecution is unused; remove its declaration and instead treat controlActionInFlight as a boolean flag: delete the line declaring lockKey, keep the guard if (controlActionInFlight) return, change setControlActionInFlight(lockKey) to setControlActionInFlight(true) and keep the finally block setControlActionInFlight(null) (or setControlActionInFlight(false) if the state is boolean) so the in-flight locking works correctly; reference: function engineControlExecution and variables lockKey and controlActionInFlight.backend/controllers/flowController.js (1)
240-248: Consider adding validation for unknown actions.If an unrecognized
actionvalue is passed, no branch matches and the request silently returns 200 with the unchanged room. This could mask client-side bugs or API misuse.🛡️ Proposed fix to reject unknown actions
if (['PAUSE', 'RESUME', 'NEXT_PHASE', 'STOP', 'ANNOUNCE', 'RECALCULATE'].includes(action)) { room.lastControlAction = action; room.lastControlActionAt = new Date(); + } else { + return res.status(400).json({ error: `Unknown action: ${action}` }); } await room.save();🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@backend/controllers/flowController.js` around lines 240 - 248, Add explicit validation for the incoming action: define the allowed actions array (the same list used in the conditional) and before mutating room fields or calling syncArchiveByRoomId/buildArchivePayload, check if action is in that array; if not, respond with res.status(400).json({ error: 'Invalid action' }) (or a descriptive message) and return early. Update the branch that sets room.lastControlAction and room.lastControlActionAt to run only after this validation to ensure unknown actions do not silently return 200.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Nitpick comments:
In `@backend/controllers/flowController.js`:
- Around line 240-248: Add explicit validation for the incoming action: define
the allowed actions array (the same list used in the conditional) and before
mutating room fields or calling syncArchiveByRoomId/buildArchivePayload, check
if action is in that array; if not, respond with res.status(400).json({ error:
'Invalid action' }) (or a descriptive message) and return early. Update the
branch that sets room.lastControlAction and room.lastControlActionAt to run only
after this validation to ensure unknown actions do not silently return 200.
In `@hackclock/app/`(admin)/dashboard/page.tsx:
- Around line 156-173: The variable lockKey created in engineControlExecution is
unused; remove its declaration and instead treat controlActionInFlight as a
boolean flag: delete the line declaring lockKey, keep the guard if
(controlActionInFlight) return, change setControlActionInFlight(lockKey) to
setControlActionInFlight(true) and keep the finally block
setControlActionInFlight(null) (or setControlActionInFlight(false) if the state
is boolean) so the in-flight locking works correctly; reference: function
engineControlExecution and variables lockKey and controlActionInFlight.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 3d662f30-a656-40d4-8d7b-183f209ad607
📒 Files selected for processing (5)
backend/controllers/flowController.jsbackend/models/dataSchema.jshackclock/app/(admin)/dashboard/page.tsxhackclock/app/room/[id]/clock/page.tsxhackclock/app/room/[id]/stage/page.tsx
* 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
New Features
Bug Fixes / Reliability
Chores