Skip to content

Commit 7a410fe

Browse files
Refactor: Consolidate data files
Consolidate project, event, team, and alumni data into single files for easier maintenance.
1 parent 0fba55c commit 7a410fe

3 files changed

Lines changed: 53 additions & 29 deletions

File tree

Lines changed: 51 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
1+
/**
2+
* Combined data file for team members and alumni
3+
* Contains types, data, and utility functions for all people associated with OpenHardware
4+
*/
15

26
// Define interfaces for better type safety
3-
export interface TeamMember {
7+
export interface Person {
48
id: string;
59
name: string;
610
role?: string;
@@ -14,8 +18,8 @@ export interface TeamMember {
1418
isOpenPosition?: boolean;
1519
}
1620

17-
// Team data
18-
export const teamData: TeamMember[] = [
21+
// Combined data array for all team members and alumni
22+
export const peopleData: Person[] = [
1923
// Co-directors
2024
{
2125
id: "1",
@@ -258,49 +262,70 @@ export const teamData: TeamMember[] = [
258262
];
259263

260264
// Helper functions
265+
266+
/**
267+
* Returns all active team members
268+
*/
261269
export const getActiveMembers = () => {
262-
return teamData.filter(member => member.isActive);
270+
return peopleData.filter(person => person.isActive);
263271
};
264272

273+
/**
274+
* Returns all former members (alumni)
275+
*/
265276
export const getAlumni = () => {
266-
return teamData.filter(member => !member.isActive);
277+
return peopleData.filter(person => !person.isActive);
267278
};
268279

269-
export const getMemberById = (id: string): TeamMember | undefined => {
270-
return teamData.find(member => member.id === id);
280+
/**
281+
* Find person by their ID
282+
*/
283+
export const getPersonById = (id: string): Person | undefined => {
284+
return peopleData.find(person => person.id === id);
271285
};
272286

273-
export const getMembersByRole = (role: string): TeamMember[] => {
274-
return teamData.filter(member =>
275-
member.role?.toLowerCase().includes(role.toLowerCase())
287+
/**
288+
* Returns people with a specific role
289+
*/
290+
export const getPeopleByRole = (role: string): Person[] => {
291+
return peopleData.filter(person =>
292+
person.role?.toLowerCase().includes(role.toLowerCase())
276293
);
277294
};
278295

279-
// Function to get co-directors
280-
export const getCoDirectors = (): TeamMember[] => {
281-
return teamData.filter(member =>
282-
member.isActive && member.role?.includes("Co-Director")
296+
/**
297+
* Returns all co-directors (active)
298+
*/
299+
export const getCoDirectors = (): Person[] => {
300+
return peopleData.filter(person =>
301+
person.isActive && person.role?.includes("Co-Director")
283302
);
284303
};
285304

286-
// Function to get team leads
287-
export const getTeamLeads = (): TeamMember[] => {
288-
return teamData.filter(member =>
289-
member.isActive && member.role?.includes("Team Lead")
305+
/**
306+
* Returns all team leads (active)
307+
*/
308+
export const getTeamLeads = (): Person[] => {
309+
return peopleData.filter(person =>
310+
person.isActive && person.role?.includes("Team Lead")
290311
);
291312
};
292313

293-
// Function to get advisors
294-
export const getAdvisors = (): TeamMember[] => {
295-
return teamData.filter(member =>
296-
member.isActive && member.role?.includes("Advisor")
314+
/**
315+
* Returns all advisors (active)
316+
*/
317+
export const getAdvisors = (): Person[] => {
318+
return peopleData.filter(person =>
319+
person.isActive && person.role?.includes("Advisor")
297320
);
298321
};
299322

300-
// Function to get team members
301-
export const getTeamMembers = (): TeamMember[] => {
302-
return teamData.filter(member =>
303-
member.isActive && member.role?.includes("Team Member")
323+
/**
324+
* Returns all regular team members (active)
325+
*/
326+
export const getTeamMembers = (): Person[] => {
327+
return peopleData.filter(person =>
328+
person.isActive && person.role?.includes("Team Member")
304329
);
305330
};
306331

src/pages/Alumni.tsx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
1-
21
import React, { useEffect, useState } from "react";
3-
import { getAlumni } from "@/data/teamData";
2+
import { getAlumni } from "@/data/peopleData";
43
import {
54
Table,
65
TableBody,

src/pages/Team.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11

22
import React, { useEffect } from "react";
3-
import { getCoDirectors, getTeamLeads, getTeamMembers, getAdvisors } from "@/data/teamData";
3+
import { getCoDirectors, getTeamLeads, getTeamMembers, getAdvisors } from "@/data/peopleData";
44
import TeamMember from "@/components/TeamMember";
55
import { UserCheck, User, GraduationCap, Users } from "lucide-react";
66

0 commit comments

Comments
 (0)