Skip to content

Another Batch of Commits from Staged -> Master (March)#567

Draft
Debatreya wants to merge 3 commits intomasterfrom
staged
Draft

Another Batch of Commits from Staged -> Master (March)#567
Debatreya wants to merge 3 commits intomasterfrom
staged

Conversation

@Debatreya
Copy link
Member

No description provided.

Debatreya and others added 2 commits February 26, 2026 13:46
Co-authored-by: Debatreya Das <116421305+Debatreya@users.noreply.github.com>
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the website contributors page UI to a timeline-based layout (with richer contributor cards), adds production infrastructure runbook documentation for the self-hosted setup, and removes an unused icon dependency.

Changes:

  • Remove lucide-react from dependencies.
  • Add a reusable Timeline client component and use it to render contributors by batch/year.
  • Add infra/Production.md documenting the on-prem self-hosted production stack and operational procedures.

Reviewed changes

Copilot reviewed 6 out of 7 changed files in this pull request and generated 10 comments.

Show a summary per file
File Description
package.json Drops lucide-react from dependencies.
package-lock.json Removes the lucide-react package entry from the lockfile.
infra/Production.md Adds production infrastructure + backup/restore documentation for self-hosting.
components/ui/timeline.tsx Introduces a framer-motion based timeline UI component.
app/[locale]/contributions-for-website-development/page.tsx Refactors contributors page to build year groups and render via the new timeline.
app/[locale]/contributions-for-website-development/contributor-timeline.tsx Adds client wrapper that transforms grouped contributors into Timeline entries.
app/[locale]/contributions-for-website-development/contributor-card.tsx Expands contributor card UI with designation styling and social/email links.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +8 to +12
import React, { useEffect, useRef, useState } from 'react';

interface TimelineEntry {
title: string;
content: React.ReactNode;
Copy link

Copilot AI Feb 28, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The default React import is unused (only hooks are referenced). With the new JSX transform this should be removed to avoid @typescript-eslint/no-unused-vars warnings.

Suggested change
import React, { useEffect, useRef, useState } from 'react';
interface TimelineEntry {
title: string;
content: React.ReactNode;
import { useEffect, useRef, useState } from 'react';
import type { ReactNode } from 'react';
interface TimelineEntry {
title: string;
content: ReactNode;

Copilot uses AI. Check for mistakes.
const rect = ref.current.getBoundingClientRect();
setHeight(rect.height);
}
}, [ref]);
Copy link

Copilot AI Feb 28, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

useEffect depends on the stable ref object, so [ref] is effectively the same as [] and also triggers react-hooks/exhaustive-deps noise. Use an empty dependency array (or recompute height on relevant changes like resize/data updates) to keep this predictable.

Suggested change
}, [ref]);
}, []);

Copilot uses AI. Check for mistakes.
<h3 className="md:hidden block text-2xl mb-4 text-left font-bold text-neutral-500 dark:text-neutral-500">
{item.title}
</h3>
{item.content}{""}
Copy link

Copilot AI Feb 28, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

{item.content}{""} adds an unnecessary empty string node to the DOM. Remove the {""} to avoid extra rendering noise.

Suggested change
{item.content}{""}
{item.content}

Copilot uses AI. Check for mistakes.
Comment on lines 5 to 7
import ImageHeader from '~/components/image-header';
import { getTranslations } from '~/i18n/translations';
import { db } from '~/server/db';
Copy link

Copilot AI Feb 28, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Heading is imported but no longer used in this page. Please remove the unused import to satisfy linting and keep imports accurate.

Copilot uses AI. Check for mistakes.
linkedinId: true,
},
orderBy: (contributor, { desc, asc }) => [
desc(contributor.passoutYear),
Copy link

Copilot AI Feb 28, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The DB query ordering no longer includes a secondary sort (e.g. by name). With only passoutYear ordering, contributors within the same year can come back in an arbitrary order depending on the query plan, which can cause UI churn. Add a stable secondary orderBy (like asc(name) or asc(id)).

Suggested change
desc(contributor.passoutYear),
desc(contributor.passoutYear),
asc(contributor.name),

Copilot uses AI. Check for mistakes.
}

const FALLBACK_IMAGE = 'fallback/user-image.jpg';
const FALLBACK_IMAGE = '/fallback/user-image.jpg';
Copy link

Copilot AI Feb 28, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

FALLBACK_IMAGE now starts with /, but the repo’s Next image loader prefixes non-HTTP src values with env.NEXT_PUBLIC_AWS_S3_URL (see lib/loader.ts). This will produce a double-slash URL and likely point to a non-existent object key. Use the established key format without a leading slash (e.g. fallback/user-image.jpg) or bypass the loader for local assets.

Suggested change
const FALLBACK_IMAGE = '/fallback/user-image.jpg';
const FALLBACK_IMAGE = 'fallback/user-image.jpg';

Copilot uses AI. Check for mistakes.
Comment on lines 16 to 24
interface ContributorCardProps {
name: string;
rollNumber: string;
image?: string | null;
rollNumberLabel: string;
designation: 'developer' | 'designer' | 'devops';
githubId: string | null;
linkedinId: string | null;
}
Copy link

Copilot AI Feb 28, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

rollNumberLabel is still part of ContributorCardProps, and callers pass it, but the component no longer uses it. Either remove it from the props (and update call sites) or render it (e.g. for accessible text) to avoid dead/unused API surface.

Copilot uses AI. Check for mistakes.
Public access via Caddy:

```
http://SERVER_IP/files/nitkkr-public/...
Copy link

Copilot AI Feb 28, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

MinIO public URL examples here don’t appear to match the code’s current URL construction. getS3Url() appends an isaac-s3-images path segment (see server/s3/index.ts), so the documented /files/nitkkr-public/... pattern may be incomplete/misleading. Please align the documentation with the actual URL format used by the app.

Suggested change
http://SERVER_IP/files/nitkkr-public/...
http://SERVER_IP/files/isaac-s3-images/nitkkr-public/...

Copilot uses AI. Check for mistakes.
Comment on lines +2 to +8
import {
motion,
useMotionValueEvent,
useScroll,
useTransform,
} from 'framer-motion';
import React, { useEffect, useRef, useState } from 'react';
Copy link

Copilot AI Feb 28, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

useMotionValueEvent is imported but never used, and the import order will violate the repo’s import/order rule (React imports must come before other externals). Remove the unused import and reorder imports so react comes first.

Suggested change
import {
motion,
useMotionValueEvent,
useScroll,
useTransform,
} from 'framer-motion';
import React, { useEffect, useRef, useState } from 'react';
import React, { useEffect, useRef, useState } from 'react';
import {
motion,
useScroll,
useTransform,
} from 'framer-motion';

Copilot uses AI. Check for mistakes.
Comment on lines +36 to +45
# 🖥 Server Specs

| Resource | Value |
| -------- | ------------------ |
| CPU | 20 cores |
| RAM | 16 GB |
| Storage | Local disk |
| OS | Ubuntu 24.04 |
| Network | Institute intranet |

Copy link

Copilot AI Feb 28, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This doc includes environment-specific details (exact server username/path, hardware specs, network context). If this repository is public (or shared broadly), consider replacing these with placeholders and moving sensitive operational runbooks to a private/internal location to reduce information exposure risk.

Copilot uses AI. Check for mistakes.
@Debatreya Debatreya marked this pull request as draft February 28, 2026 09:32
Co-authored-by: Yashika Choudhary <161009245+yashika1221@users.noreply.github.com>
Co-authored-by: Aryawart-kathpal <aryawart.kathpal2909@gmail.com>
Co-authored-by: Kartik <ks25152005@gmail.com>
Co-authored-by: Arnav Sharma <145358467+ArnavSharma005@users.noreply.github.com>
Co-authored-by: soumil221 <soumiljain221@gmail.com>
Co-authored-by: Debatreya Das <116421305+Debatreya@users.noreply.github.com>
Co-authored-by: Navneet Kaur <navneet78141@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: heydoyouknowme0 <akrb2204@gmail.com>
Co-authored-by: Aryawart Kathpal <132134276+Aryawart-kathpal@users.noreply.github.com>
Co-authored-by: Abhay Agarwal <161469723+Abhay145@users.noreply.github.com>
Co-authored-by: Debatreya <debatreyadas@gmail.com>
Co-authored-by: Swastik Bhowmick <swastik200419@gmail.com>
Co-authored-by: Rahul Gupta <Rahul5g3d.official@gmail.com>
Co-authored-by: ArnavSharma005 <arnavoct.20@gmail.com>
Co-authored-by: Jayant Gautam <jayant10449@gmail.com>
Co-authored-by: Rizul Gupta <162694744+Rogan308Rylie@users.noreply.github.com>
Co-authored-by: Rizul Gupta <rizulgupta2811@gmail.com>
Co-authored-by: Saksham1143me <150987031+Saksham1143me@users.noreply.github.com>
Co-authored-by: Ayush Sur <145102142+SurAyush@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants