diff --git a/src/components/sections/research-scholars-directory.tsx b/src/components/sections/research-scholars-directory.tsx index 039c1df..0b3e8ce 100644 --- a/src/components/sections/research-scholars-directory.tsx +++ b/src/components/sections/research-scholars-directory.tsx @@ -34,51 +34,38 @@ function initials(name: string) { .toUpperCase(); } -function ScholarImage({ scholar }: { scholar: ResearchScholar }) { - const [failed, setFailed] = useState(false); - - if (failed) { - return ( -
- {initials(scholar.name)} -
- ); - } - +function InitialsMark({ name }: { name: string }) { return ( - {scholar.name} setFailed(true)} - /> +
+ {initials(name)} +
); } function GalleryCard({ scholar }: { scholar: ResearchScholar }) { return ( - -
- -
-
-
+ + +
+
-

+

{scholar.name}

-

- {PROGRAM_LABELS[scholar.program]} ยท Joined {scholar.joined} +

+ {PROGRAM_LABELS[scholar.program]} +

+

+ Joined {scholar.joined}

- +
@@ -89,11 +76,9 @@ function GalleryCard({ scholar }: { scholar: ResearchScholar }) { function ListRow({ scholar }: { scholar: ResearchScholar }) { return (
-
-
- -
-

{scholar.name}

+
+ +

{scholar.name}

{scholar.program}

Joined {scholar.joined}

diff --git a/src/data/events.ts b/src/data/events.ts index 33cc328..c99cb04 100644 --- a/src/data/events.ts +++ b/src/data/events.ts @@ -17,6 +17,8 @@ export interface DepartmentEvent { collaborators?: string; description: string; source: "CSE events.xlsx" | "CSE archive"; + sourceLabel?: string; + sourceUrl?: string; featured?: boolean; } @@ -66,6 +68,22 @@ export const departmentEvents: DepartmentEvent[] = [ source: "CSE events.xlsx", featured: true, }, + { + id: "history-of-science-engineering-india-2026", + title: "Workshop on Doing History of Science and Engineering in India", + category: "workshop", + year: 2026, + displayDate: "23-24 Feb 2026", + startDate: "2026-02-23", + endDate: "2026-02-24", + organizer: "HSS IITGN and History of Mathematics in India (HoMI)", + collaborators: "Neeldhara Misra", + description: + "A workshop on doing history of science and engineering in India from a social-history perspective.", + source: "CSE archive", + sourceLabel: "Event website", + sourceUrl: "https://history-of-science-2026.netlify.app/", + }, { id: "modern-80211-wlans-2025", title: "Certificate Course on Modern 802.11 WLANs", diff --git a/src/pages/academics/courses.astro b/src/pages/academics/courses.astro index 51e9475..67c8095 100644 --- a/src/pages/academics/courses.astro +++ b/src/pages/academics/courses.astro @@ -7,5 +7,5 @@ import DefaultLayout from "@/layouts/DefaultLayout.astro"; title="Courses" description="Course catalogue for CSE at IIT Gandhinagar" > - + diff --git a/src/pages/people/postdocs.astro b/src/pages/people/postdocs.astro index 1421de7..778ebb5 100644 --- a/src/pages/people/postdocs.astro +++ b/src/pages/people/postdocs.astro @@ -1,6 +1,15 @@ --- import { POSTDOCS } from '@/data/postdocs'; import DefaultLayout from '@/layouts/DefaultLayout.astro'; + +const initials = (name: string) => + name + .replace(/^Dr\.\s+/i, '') + .split(' ') + .map((part) => part[0]) + .join('') + .slice(0, 2) + .toUpperCase(); --- @@ -18,20 +27,25 @@ import DefaultLayout from '@/layouts/DefaultLayout.astro';
{POSTDOCS.map((postdoc) => ( -
-

{postdoc.name}

-

{postdoc.period}

-
-
-
Doctorate
-
{postdoc.phd}
-
{postdoc.phdInstitute}
-
-
-
Working with
-
{postdoc.workingWith}
-
-
+
+
+ {initials(postdoc.name)} +
+
+

{postdoc.name}

+

Postdoctoral Researcher

+

{postdoc.period}

+
+
+
Doctorate:
+
{postdoc.phd}, {postdoc.phdInstitute}
+
+
+
Working with:
+
{postdoc.workingWith}
+
+
+
))}
diff --git a/src/pages/people/staff.astro b/src/pages/people/staff.astro index 83e9d14..3fdb9ce 100644 --- a/src/pages/people/staff.astro +++ b/src/pages/people/staff.astro @@ -1,10 +1,11 @@ --- -import { CSE_STAFF, CSE_STAFF_SOURCE } from '@/data/staff'; +import { CSE_STAFF } from '@/data/staff'; import DefaultLayout from '@/layouts/DefaultLayout.astro'; +import { Mail } from 'lucide-react'; --- -
+

People

Staff

@@ -14,44 +15,53 @@ import DefaultLayout from '@/layouts/DefaultLayout.astro';
-
+
{CSE_STAFF.map((member) => ( -
-
- {member.name} -
-

{member.name}

-

- {member.designation} -

-
-
-
Email:
-
{member.emailUser}@iitgn.ac.in
-
- {member.office && ( -
-
Office:
-
{member.office}
-
- )} -
+
+ {member.name} +
+
+
+

+ {member.name} +

+

+ {member.designation} +

+
+ +
+
+
+
Email:
+
{member.emailUser}@iitgn.ac.in
+
+ {member.office && ( +
+
Office:
+
{member.office}
+
+ )} +
))}
-

- Source: IITGN staff directory -

diff --git a/src/pages/research/projects.astro b/src/pages/research/projects.astro index ec7b25c..cffa5f5 100644 --- a/src/pages/research/projects.astro +++ b/src/pages/research/projects.astro @@ -10,6 +10,13 @@ type Project = { source: string; }; +type GrantAnnouncement = { + scheme: string; + faculty: string; + note: string; + source: string; +}; + const projects: Project[] = [ { title: 'Approximate Shortest Paths in Graphs', @@ -27,6 +34,22 @@ const projects: Project[] = [ period: 'July-September 2026', source: 'https://iitgn.ac.in/newsletter/projects/q3_2026', }, + { + title: 'Scalable Detection of Brick Kilns from Low-Resolution Satellite Imagery for Environmental Compliance', + faculty: 'Nipun Batra', + sponsor: 'Anusandhan National Research Foundation', + category: 'ANRF/SERB', + period: 'Announced in 2026', + source: 'https://www.linkedin.com/school/indian-institute-of-technology-gandhinagar-iitgn-/posts/', + }, + { + title: 'iGazeBuddy: Multimodal gaze-controlled learning system for dyslexia support', + faculty: 'Yogesh Kumar Meena', + sponsor: 'Anusandhan National Research Foundation (PMECRG)', + category: 'ANRF/SERB', + period: 'Announced in 2026', + source: 'https://www.linkedin.com/posts/ykmeena_hiring-research-assistivetechnology-activity-7406640584490336256-wDnH', + }, { title: 'Fair Federated Learning Framework in the Presence of Heterogeneous, Strategic, and Malicious Clients', faculty: 'Manisha Padala', @@ -126,6 +149,27 @@ const projects: Project[] = [ ]; const categories = ['ANRF/SERB', 'International', 'Sponsored', 'Industry/Research Lab', 'Consultancy']; + +const recentGrantAnnouncements: GrantAnnouncement[] = [ + { + scheme: 'ANRF Prime Minister Early Career Research Grant', + faculty: 'Manisha Padala, Shouvick Mondal, Yogesh Kumar Meena', + note: 'Recent CSE announcement listing department awardees under PMECRG.', + source: 'https://www.linkedin.com/posts/cse-iitgn_anusandhan-national-research-foundation-activity-7419330427775115265-v86v', + }, + { + scheme: 'ANRF Advanced Research Grant', + faculty: 'Mayank Singh, Nipun Batra, Abhishek Bichhawat', + note: 'Recent CSE announcement listing department awardees under ARG.', + source: 'https://www.linkedin.com/posts/cse-iitgn_anusandhan-national-research-foundation-activity-7419330427775115265-v86v', + }, + { + scheme: 'ANRF ARG MATRICS', + faculty: 'Bireswar Das, Manoj Gupta, Balagopal Komarath', + note: 'Recent CSE announcement listing department awardees under ARG MATRICS.', + source: 'https://www.linkedin.com/posts/cse-iitgn_anusandhan-national-research-foundation-activity-7419330427775115265-v86v', + }, +]; --- @@ -159,7 +203,42 @@ const categories = ['ANRF/SERB', 'International', 'Sponsored', 'Industry/Researc }
-
+
+
+

Recent ANRF announcements

+

+ Department faculty have secured multiple recent ANRF grants +

+

+ Recent public announcements list CSE faculty awardees across ANRF + PMECRG, Advanced Research Grant, and ARG MATRICS schemes. Project + titles are included below where they are publicly available. +

+
+
+ { + recentGrantAnnouncements.map((grant) => ( + + )) + } +
+
+ +

Selected project listings

+ +
{ projects.map((project) => (
diff --git a/src/pages/updates/events.astro b/src/pages/updates/events.astro index 4bc4503..9da133a 100644 --- a/src/pages/updates/events.astro +++ b/src/pages/updates/events.astro @@ -8,7 +8,7 @@ import { type EventCategory, } from "@/data/events"; import DefaultLayout from "@/layouts/DefaultLayout.astro"; -import { CalendarDays, Search, Sparkles } from "lucide-react"; +import { ArrowRight, CalendarDays, Search, Sparkles } from "lucide-react"; const categoryOrder: EventCategory[] = [ "conference", @@ -167,6 +167,20 @@ const groupedPastEvents = Object.entries(

{event.description}

+ {event.sourceUrl && ( + + {event.sourceLabel ?? "Event website"} + + )} {(event.organizer || event.collaborators) && (
{event.organizer && ( @@ -238,6 +252,20 @@ const groupedPastEvents = Object.entries(

{event.description}

+ {event.sourceUrl && ( + + {event.sourceLabel ?? "Event website"} + + )}
)) } @@ -298,6 +326,20 @@ const groupedPastEvents = Object.entries(

{event.description}

+ {event.sourceUrl && ( + + {event.sourceLabel ?? "Event website"} + + )}
{event.organizer && (