Skip to content

Data Schemas

The FiNAN website uses TypeScript interfaces to ensure data integrity, especially for content-heavy sections like Committee members and Events.

The CommitteeMember interface defines the structure for a committee member profile.

src/data/representation/committee/types.ts
export interface CommitteeMember {
id: string; // Unique identifier (kebab-case)
name: string; // Full name
role: string; // Role title (e.g., "President")
image: ImageMetadata; // Imported image object
email?: string; // Optional contact email
bio?: string; // Short biography
}

The Event interface structures event data.

export interface Event {
title: string;
date: Date;
location: string;
description: string;
link?: string;
}

The site navigation is defined in siteConfig.ts.

export interface NavItem {
label: string;
href: string;
subItems?: NavItem[];
}